レガシーガジェット研究所

気になったことのあれこれ。

Kernel

Linux Kernel ~ ext2ファイルシステム ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はrxt2のファイルシステムについて見ていく。 ext2 ext2は1994年に導入されたファイルシステムでLinuxにとって…

Linux Kernel ~ 仮想ファイルシステムの操作 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はプロセスの仮想ファイルシステム(VFS)の操作について見ていく。

Linux Kernel ~ 仮想ファイルシステムのデータ構造 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はプロセスの仮想ファイルシステム(VFS)のデータ構造について見ていく。 VFSの役割 VFS(Virtual File System)は…

Linux Kernel ~ プロセスアドレス空間 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はプロセスのアドレス空間について見ていく。 メモリ割り当ての指針 カーネルからメモリ要求は最優先とし即座に…

Linux Kernel ~ メモリ管理 スラブアロケータ編 ~

Linux Kernelを無限に読む会 ~ メモリ管理 Ver 2 ~ 概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 引き続きはメモリ管理について見ていく。 概要 メモリ割り当てに…

Unix xv6 ~ 起動 ~

概要 xv6のコードリーティングを通してUnixの動作を追う。今回はCPUの起動からカーネルの起動直前までを見ていく。 xv6 xv6は、ANSI Cによる、6th Edition Unixのマルチプロセッサx86システムへの再実装である。 xv6はMITにおけるオペレーティングシステムエ…

Unix xv6 ~ 起動イメージ ~

概要 xv6のコードリーティングを通してUnixの動作を追う。今回は起動イメージを見ていく。 リポジトリは以下。 https://github.com/mit-pdos/xv6-public xv6 xv6は、ANSI Cによる、Sixth Edition Unixのマルチプロセッサx86システムへの再実装である。 xv6は…

Linux Kernelへのパッチ作成及び送信手順

1. 変更を行う 2. コミットをrebaseし纏める git rebase -i [commit id] 3. パッチの作成 git format-patch [commit id] 4. パッチの確認 ./scripts/checkpatch.pl [patch file] ここで何らかのエラーが出力される場合には修正を行う。 変数宣言の空白行の有…

Linux Kernel ~ メモリ管理 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はメモリ管理について見ていく。 メモリ管理 x86ではセグメンテーションとページングによって物理メモリが管理…

Linux Kernel~ プロセススケジューリングにおけるロードバラシング ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はプロセススケジューリングにおけるロードバラシングについて見ていく。 マルチプロセッサ環境でのランキュー…

Linux Kernel ~ プロセススケジューリング ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はプロセススケジューリングについて見ていく。 概要 Linuxでは複数のプロセス間を非常に短いインターバルで切…

Linux Kernel ~ ソフトウェアタイマと遅延処理 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はソフトウェアタイマと遅延処理について見ていく。

Linux Kernel ~ 時間管理とタイマ割り込み ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は時間管理及びタイマ割り込みについて見ていく。

Linux Kernel ~ 同期機構 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は同期処理について見ていく。

Linux Kernel ~ ソフト割り込み ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はソフト割り込みについて見ていく。(*nは参考文献のn番目に対応する)

Linux Kernel ~ 割り込み処理 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は割り込み処理について見ていく。(*nは参考文献のn番目に対応する)

Linux Kernel ~ 例外処理 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は例外処理について見ていく。

Linux Kernel ~ 割り込みと例外 例外の種類と割り込みディスクリプタ ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は例外の種類及び割り込みディスクリプタの構造などについて見ていく。

Linux Kernel ~ 割り込みと例外 ハードウェア編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は割り込みと例外の概要と定義及び、それに関連するハードウェアについて見ていく。

キャラクタデバイスドライバを作ってみた。

概要 ラズパイのGPIOを対象としたデバイスドライバを作成した。基本的に行うことは以前書いた以下の記事と同じであるためレジスタなどの説明はここでは割愛する。 https://k-onishi.hatenablog.jp/entry/2018/11/24/112806

Linux Kernel ~ カーネルスレッドとプロセスの破棄及び削除 x86編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はカーネルスレッドとプロセスの破棄及び削除について見ていく。

Linux Kernel ~ 物理メモリレイアウトとプロセスのアドレス変換 x86編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回は物理メモリレイアウトとプロセスのアドレス変換について見ていく。

Linux Kernel ~ プロセス生成 x86編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はプロセスの生成について見ていく。

Linux Kernel ~ コンテキストスイッチ x86編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 ここではコンテキストスイッチを見ていく。

Linux Kernel ~ プロセス x86編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のソースコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はプロセスディスクリプタやカレントプロセスの取得方法、プロセスの実行及びスリープなどを見ていく。

Foreshadow/L1TF(Level 1 Terminal Failure)について

ソースは以下。 https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/queue-4.18/documentation-add-section-about-cpu-vulnerabilities.patch https://www.kernel.org/doc/html/latest/admin-guide/l1tf.html 当ドキュメントは…

Linux Kernel ~ ページング(物理機構) x86編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のソースコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 (今回に関してはハードウェアに関連する事項が多いので説明だけとなる) 今回の内容は前回の「ページング」の…

Linux Kernel ~ ページング x86編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のソースコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回の内容は前回の「セグメンテーション」の続きとなっており、アドレス変換機構のページングについて見てい…

Linux Kernel ~ セグメンテーション x86編 ~

概要 「詳解Linux Kernel」を参考にVersion 2.6.11のソースコードリーディングをしていく。CPUのアーキテクチャは書籍に沿ってIntelのx86とする。 今回はアドレス変換機構であるセグメンテーションについて見ていく。