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

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

Linux

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番目に対応する)

CVE-2019-5736のPoC検証

概要 当該脆弱性のPoCを検証する。脆弱性自体の概要は以下。 k-onishi.hatenablog.jp 環境 $ uname -a Linux CVE-2019-5736-CentOS 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/redhat-rele…

CVE-2019-5736に関して

概要 当該脆弱性を悪用して細工したコンテナをユーザが実行した場合、ホスト上のruncバイナリが上書きされ、コンテナが起動しているホスト上でroot権限でコマンドが実行される恐れがある。 ここからは以下のドキュメントを雑に訳したものとなる(間違いがあ…

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とする。 今回はカーネルスレッドとプロセスの破棄及び削除について見ていく。

Raspberry Pi 3でGPIOライブラリを作ってみた。

概要 Raspberry PiのGPIOを対象としたライブラリを作成する。既存のライブラリなどは数多く存在するが実際に自分で作成することでその内部を理解できると思う。 環境 Paspberry Pi 3 Model B $ sudo cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 …

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とする。 今回はアドレス変換機構であるセグメンテーションについて見ていく。