タグ

カーネルに関するwnoguchi0727のブックマーク (7)

  • Linuxカーネルを読む前にやったこと - komukomo’s diary

    「カーネルのコードがよくわからない。Linuxカーネルに関するを読んでもいまいちしっくりこない。」 から、「読めば理解できそう..!」 になるまでにやったことのまとめ。 はじめに 低レイヤの話がわかるようになりたかった。 カーネルの中身が知りたかった。 とりあえずを読もうと思い詳解 Linuxカーネル 第3版を読んだが知識がなさ過ぎてよくわからない。 知らない用語だらけで都度調べればなんとなくはわかる気もするが、いまいち頭に入ってこない。 今思うとそもそもCPUの話なのかカーネルの話なのかさえよくわからない状態で読んでいたような気がする。 そんな状態を克服するためにやったことをまとめておく。 学習前 学習前の自分の知識はこんな感じだった。 知っていた データ構造とアルゴリズム 論理回路 C言語(研究室で数値計算に使える程度。構造体やポインタくらいならわかる。) よく知らなかった OSが

    Linuxカーネルを読む前にやったこと - komukomo’s diary
  • 弄りながらなんとなく学ぶLinuxのスラブアロケーター - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ

    この記事はLinux Advent Calendar 2017の1日目の記事です。Linuxのスラブアロケーター仕組みを多少弄りながら学んでみます。 スラブアロケーターとはなんぞやというところはSlab allocation - Wikipediaを参照してください。スラブアロケーターはSolaris5.4で最初に実装されたようです。 Linuxカーネルプログラミングで動的にメモリを確保するのに使用するkmalloc()もスラブアロケーターを使用しています。 目次 Linuxのスラブアロケーター SLAB SLUB SLOB 各スラブアロケーターのまとめ 実装 スラブ用のページ 弄ってみる 最低限必要な準備 実装開始 データ構造 ロック 初期化 kmem_cache_create() スラブオブジェクトのアロケート スラブオブジェクトのfree 実験 ボトルネック この後 Linuxのスラ

    弄りながらなんとなく学ぶLinuxのスラブアロケーター - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
    wnoguchi0727
    wnoguchi0727 2017/12/01
    ただただすごいということがわかる
  • linuxカーネルソースの統計情報 - Qiita

    はじめに 記事はlinuxカーネルのソース分析によって、このソフトウェアの様々な特徴を可視化します。ソースの総行数といったありがちなものから、1つのバージョン内のrelease candidate(rc)ごとのパッチ数の推移やサブシステムごとのデータなども出しています。 linuxには、v2.6.x, v3.x, v4.xで表す、Linuxのオリジナル開発者であるLinus Torvalds氏がリリースするmainlineカーネル(通常、単にLinuxと言えばmainlineカーネルを指す)があります。このうち、データ採取した範囲はgitで追える範囲のv2.6.12〜v4.10までです。ものによってはv4.0〜v4.10までの範囲です。 全体の傾向 総行数 行数は*.[chS]というパターンにマッチする行の数を使いました。v2.6.12では600万行そこそこ(それでも凄いのですが)だった

    linuxカーネルソースの統計情報 - Qiita
  • Linuxネットワークドライバの開発 - Handwriting

    この記事はLinux Advent Calendar 2016 9日目の記事です。 遅刻してしまい申し訳ございません。。。 とある事情があって1ヶ月半ほど独自NICのLinux向けのネットワークドライバを開発していた。 今回はARM用のデバイスドライバを開発した。NICはXilinx社のFPGAであるZYBOを用いて開発した。 まだ十分に実用段階というわけではないが、ひとまず独自NIC経由でのpingやiperfが通ったので、後学のために知見を残しておきたい(誰得だ、という感じだが)。 ソースコードはまだ公開されていないが、そう遠くないうちに公開する予定(たぶん)。 はじめに Linuxのデバイスには キャラクタデバイス - バイト単位のデータ通信 (e.g. シリアルポート) ブロックデバイス - ブロック単位のデータ通信 (e.g. ディスク) ネットワークデバイス の3種類がある。ネ

    Linuxネットワークドライバの開発 - Handwriting
    wnoguchi0727
    wnoguchi0727 2016/12/11
    すごいとしか言いようがない
  • The Linux Kernel Archives

  • はじめてのカーネル・ソース 第1回 どうしたら読めるようになるのか:ITpro

    なかなかハードルが高く,多くの人が踏み出せないでいるカーネルのソース・コードの読解。連載では,今までカーネル・ソースなんて見たことがないという人に,読みこなすコツをお教えします。今回は,どうしたらカーネル・ソースを読みこなせるようになるのか,筆者の経験をお話します。 Linuxユーザーなら誰しもカーネルのソース・コード(カーネル・ソース)を読んで,どのような処理を行っているのかを確認したり,自分なりの変更を加えたりしたくなるのではないでしょうか。しかし,カーネル・ソースの量は膨大な上,C言語で書かれているので,コンピュータ内部やOS(オペレーティング・システム)の仕組みを理解したプログラマでないとなかなか読みこなせません。そのため,カーネルを読むための第一歩を踏み出せない人が数多くいることは事実です。 講座では,プログラマではないごく普通のLinuxユーザーが,カーネルをある程度自力で

    はじめてのカーネル・ソース 第1回 どうしたら読めるようになるのか:ITpro
  • マイクロカーネル - Wikipedia

    モノリシックカーネル及びマイクロカーネルのOSの構成 マイクロカーネルの概念図 マイクロカーネル(英: microkernel)とはオペレーティングシステム (OS) の設計思想、及びそのようなOSのカーネル部の名称である。OSが担う各種機能のうち、必要最小限のみをカーネル空間に残し、残りをユーザーレベルに移すことで全体の設計が簡素化でき、結果的にカスタマイズ性が向上し、性能も向上できるというOSの設計手法のことである。カーネル体が小規模な機能に限定されるので「マイクロカーネル」と呼ばれるが、必ずしも小さなOSを構成するとは限らない。 マイクロカーネルの出現に伴い、従来型のOSを「モノリシックカーネル(一枚岩のカーネルという意)」と呼ぶようになった。マイクロカーネルの思想を更に推し進めたナノカーネルも提唱されている。 特徴[編集] 純粋なマイクロカーネルでは、まずカーネル空間で提供される

    マイクロカーネル - Wikipedia
  • 1