タグ

Linuxに関するledlizerdのブックマーク (75)

  • hatebu.me

    This domain may be for sale!

    hatebu.me
  • Linux Kernel ~ 割り込み処理 ~ - レガシーガジェット研究所

    概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は割り込み処理について見ていく。(*nは参考文献のn番目に対応する) 割り込み処理 例外ではほとんどの場合その例外の発生元となっているカレントプロセスにシグナルを送信することで処理する。例外処理もシグナルを受け取るまでは遅延される。 しかし割り込みの場合には別の無関係なプロセスが動作している際に発生することがあり、単純にカレントプロセスにシグナルを送信するだけではない。 割り込みは大きく3種類に分類される。 I/O割り込み 当該割り込みでは割り込みに対応する動作を決定するために割り込みハンドラからデバイスに対して問い合わせを行う必要がある。 タイマー割り込み ローカルAPICタイマや外部タイマなどが発生させる割り込みで

    Linux Kernel ~ 割り込み処理 ~ - レガシーガジェット研究所
  • 実践的低レベルプログラミング

    はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

  • Linuxネットワークコマンド新旧まとめ

    ipコマンドの実行例 / Ubuntu 18.04 LTS これまでLinuxディストリビューションではUNIX系オペレーティングシステムでよく使われているコマンドと、Linux独自のネットワーク系コマンドが混在したような状態になっていた。最近のLinuxディストリビューションではこうしたコマンドをipコマンドに一化する取り組みを続けている。 ipコマンドにはいくつものサブコマンドが用意されており、これまで個別のコマンドで実行していた処理をipコマンドのもとに集約するような作りになっている。なお、ipコマンドはLinux系に特有のコマンドで、他のUNIX系オペレーティングシステムでは使うことができない。記事では、非推奨になったコマンドを今後使うことはお薦めできないとしている。

    Linuxネットワークコマンド新旧まとめ
  • Linuxコマンドでボトルネックを調べる

    俺の話を聞け!!LT大会 #8でトークした資料です

    Linuxコマンドでボトルネックを調べる
  • Linuxカーネルのソースコードを機能とレイヤーで分類して表示してくれる「Linux kernel map」

    Linuxのカーネルは膨大な数のソースコードから成り立っており、どこに何の処理が書いてあるのかぱっと見当をつけるのにはかなりコードを読み込む必要があります。「Interactive map of Linux kernel」はそのソースコードを機能とレイヤーで分類して表示してくれるサイトということで、使い勝手を試してみました。 Interactive map of Linux kernel http://www.makelinux.net/kernel_map/ サイトにアクセスし、ロードが終わると下の画像のように6列6行の表が表示されます。列が機能の分類を表しており、「インターフェース」「システム」「処理」「メモリー」「ストレージ」「ネットワーク」という分類になっています。行はレイヤーを表しており、上からシステムコールなどの「ユーザースペースインターフェース」、「バーチャル」、「ブリッジ」

    Linuxカーネルのソースコードを機能とレイヤーで分類して表示してくれる「Linux kernel map」
  • Using Go as a scripting language in Linux

    At Cloudflare we like Go. We use it in many in-house software projects as well as parts of bigger pipeline systems. But can we take Go to the next level and use it as a scripting language for our favourite operating system, Linux? gopher image CC BY 3.0 Renee French Tux image CC0 BY OpenClipart-Vectors Why consider Go as a scripting language Short answer: why not? Go is relatively easy to learn, n

  • Linux コンテナの内部を知って ワンランク上のコンテナ遣いを目指そう / JTF2017

    July Tech Festa 2017 の講演資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。

    Linux コンテナの内部を知って ワンランク上のコンテナ遣いを目指そう / JTF2017
  • ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ

    他のプロセスを中断せずに、その出力をミラーリングして新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceやgdbといったコマンドは一体どういう仕組みで動いているのでしょうか。 ptraceシステムコールを使い、プロセスが呼ぶシステムコールを調べて出力を覗き見するコマンドを実装してみたいと思います。 ptraceシステムコール Linuxを触っていると、いかにプロセスを組み合わせるか、組み合わせる方法をどれだけ知っているかが重要になってきます。 パイプやリダイレクトを使ってプロセスの出力結果を制御したり、コードの中からコマンドを実行して、終了ステータスを取得したりします。 プロセスツリーやプロセスグループを理解し、シグナルやnohupコマンドを使ったりします。 プロセスの扱いに慣れると疑問に持つのがstraceやgdbの仕組みです。 プロセスの実行しているシステムコールを出力し

    ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ
  • NECを退職し、新会社を立ち上げました。 - KaiGaiの俺メモ

    ご報告が遅れましたが、6月30日付で新卒の2003年から14年あまり勤務したNEC退職しました。 また、日、東京法務局品川出張所においてヘテロDB株式会社の登記申請を行い、また、併せて新会社のチーフアーキテクト兼代表取締役社長に就任しました。 今後は、前職では実現できなかった、GPUSSDなどヘテロジニアスな計算機資源を活用する事で、高性能、低価格、使いやすさを両立するデータベース製品の事業化を目指していく事になります。 どうぞよろしくお願いいたします。 web: http://heterodb.com/ 弊社が入居する西大井創業支援センター(品川区) 10年以上も勤務した会社を辞めてスタートアップを立ち上げるというのは、おそらく人生の中でも上位にい込むビッグイベントの一つだと思うので、今の決意や創業に至る一連の流れについて記録を残しておこうと思います。 (書き下してみたら意外と長

    NECを退職し、新会社を立ち上げました。 - KaiGaiの俺メモ
  • いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita

    さくらインターネット Advent Calendar最終日は、硬派にLinuxのメモリに関する基礎知識についてみてみたいと思います。 最近はサーバーを意識せずプログラミングできるようになり、メモリの空き容量について意識することも少なくなりましたが、いざ低レイヤーに触れなければいけないシチュエーションになった際に、OSを目の前に呆然とする人が多いようです。 基的にLinux のパフォーマンスについて、メモリをたくさんつめばいいとか、スワップさせないほうが良い とか、このあたりは良く知られたことだと思います。 ただ、なんとなく ps コマンドや free コマンド などの結果を見るだけでなく、もう少しメモリのことについて掘り下げてみてみたいと思います。 メモリとキャッシュ Linux におけるメモリの状態を大きく分けると「使用中のメモリ」「キャッシュ」「空きメモリ」「スワップ」の 4 つに分

    いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita
  • Linux スケジューラーのコア実装とシステムコール - Qiita

    はじめに これは Linux Advent Calendar 2016 の第 11 日目の記事です。Linux のタスクスケジューラーのソースコードや関連するドキュメントなどを読んで分かったことをまとめました。とても長いです・・・ はじめにスケジューラーのアーキテクチャと重要な概念を紹介し、その後はスケジューラーコアとシステムコールの実装について分かったことを延々と述べます。調べきれなかったことや分からなかったことは TODO に残したので、コメント欄とかツイッターで教えてもらえると嬉しいです。間違いの指摘も大歓迎です。 ちなみに私が読み始めたきっかけは、スケジューラーのアーキテクチャ、スケジューリングアルゴリズム、スケジューリングアルゴリズムの切り替え方、nice 値やプロセッサアフィニティがスケジューリングに及ぼす影響、プリエンプションの流れ、マルチプロセッサにおけるタスクのロードバラ

    Linux スケジューラーのコア実装とシステムコール - Qiita
  • あなたの知らない less の世界 - Qiita

    最近 prezto 入れたんですよ。prezto。そしたらいつものシェル世界が見違えるほど使いやすくなって身長も 3 メートルくらい伸びたんですが、それは余談でして、prezto 入れた後に less 使ってみたら余りの変わりっぷりに驚いたんです。 これを機に man page を読み直してみたら更に驚き。less ってこんなスゴイ物だったのか!みたいな。今回はそんな less の底力を紹介します。 環境変数 $LESS less には様々なオプションがあるのですが、これを予め環境変数 $LESS に設定しておくと、毎度 less ファイル名 と打つだけでそれが有効になります。更に、後述しますが、この設定は less 起動中にオン・オフして切り替えることが可能です。 # 最低限でもこれくらいは設定しておこう export LESS='-i -M -R' # 僕は後述の物を全部付けてます(-

    あなたの知らない less の世界 - Qiita
  • あなたの知らない time(1) の世界 - kuenishi's blog

    自分が書いたプログラムのメモリ使用量を測定したいことがある。プログラムがOOM Killerによってお亡くなりになった場合や、ページフォルトをなくして高速化したい場合などだ。定常的に起動するサーバーのプログラムなら、sarや meminfo など(今なら Datadog とかだろうか)を使ってじーっと見つめるわけだ。もっとモダンにやるなら perf や DTrace を使ってもよいかもしれない。しかしこれらのツールは基的にプロセスIDを渡してサンプリングして外から覗く方法だ。 わたしのユースケースはデーモンプロセスではなく、 main から入って必要な計算をして、それが終わったら main を抜けるバッチジョブ(単にコンソールから実行して終わるまで待つ、いわゆる "Hello world!" 的なやつ)だ。これだと、プログラムが起動して終わるまでそこそこの時間で終わってしまって、外部プロ

    あなたの知らない time(1) の世界 - kuenishi's blog
  • Amazon Linuxがコンテナ化されたので、Macで動かしてみた。 - Qiita

    cloudpack大阪の佐々木です。 Amazon Linuxがコンテナ化され、ECSでもオンプレのDockerでも動かせるようになったようです。 https://aws.amazon.com/jp/blogs/aws/new-amazon-linux-container-image-for-cloud-and-on-premises-workloads/ 早速やってみます。 AmazonLinuxコンテナはECR上に保存されているので、ECRへのログインコマンドを取得します。リージョンはap-northeast-1でも取得できました。

    Amazon Linuxがコンテナ化されたので、Macで動かしてみた。 - Qiita
  • Linuxファイルシステム技術解説

    XFSは、巨大ストレージでの利用を視野に入れた64bitファイルシステムである。膨大な領域を効率的に利用するため、XFSにはさまざまな仕組みが組み込まれている。(編集局)

    Linuxファイルシステム技術解説
  • Linuxシステムコール徹底ガイド | POSTD

    要約 この記事では、LinuxカーネルにてLinuxプログラムがどのように関数を呼び出すのかについて紹介していきます。 システムコールを行う様々な方法、システムコールを行うための独自のアセンブリの作成方法(例あり)、システムコールへのカーネルエントリポイント、システムコールからのカーネルイグジットポイント、glibcのラッパ関数、バグなど多くの点について説明します。 要約 システムコールとは? 必要条件に関する情報 ハードウェアとソフトウェア ユーザプログラム、カーネル、CPUの特権レベル 割り込み モデル固有レジスタ(MSR) アセンブリコードでシステムコールを呼び出すことの問題点 レガシーシステムコール 独自のアセンブリを用いたレガシーシステムコールの使用 カーネル側での int $0x80 エントリポイント iret を使用したレガシーシステムコールからの復帰 高速システムコール 3

    Linuxシステムコール徹底ガイド | POSTD
  • 【初心者向け基本解説】Linuxのウィルスとその対策方法

    Linuxは基的に「ウィルス」いわゆる、「マルウェア」に感染しにくいという話はよく聞く。 しかし、実際には完全に安全なOSなどというものはありえない。Linuxを使っていても気をつけた方がいいに決まっている。 このページではLinuxのウィルス対策の初歩の初歩をお伝えする。 Linuxとウィルス Linuxは基的に「ウィルス」に感染しにくいと言われているのは、次の2つの理由からだ。 クライアントでの利用の場合Windowsとくらべシェア率が圧倒的に低いため狙われにくい パーミッションという概念のもと一般ユーザはシステムに書き込みができない、権限が厳格に管理されている。 しかしリスクが全くないというわけではない。実際、数は少ないが主にトロイの木馬が存在する。これらは脆弱性を放置したり、ユーザが意図しないうちにうっかりインストールしてしまった場合が多いだろう。 特にクロスプラットホームなア

    【初心者向け基本解説】Linuxのウィルスとその対策方法
  • 小さいLinux環境の作り方

    割と新しめのカーネルで、フロッピーディスク1枚に収まるLinuxディストリビューションを作る方法を解説します

    小さいLinux環境の作り方
  • RPi - Raspberry Pi で High Performance Computing! スパコンを作る方法。 : NETBUFFALO

    一般的なコンピュータを使って高速な処理を実現する場合には1つの目的を複数のコンピュータで分散・並列処理することになりますが、この実行基盤の1つが MPI (Message Passing Interface)と呼ばれる仕様・規格で MPICH, Open MPI など複数の実装系が存在しています。 MPI では Task と呼ばれる独立したアドレス空間で動作するプロセスをCPUコア/スレッド毎に生成し、このプロセス間でMPI 標準規格で定義された関数を使ってデータを分割・移動(Message Passing)しながら並列・協調動作を実現しています。

    RPi - Raspberry Pi で High Performance Computing! スパコンを作る方法。 : NETBUFFALO