新Linuxカーネル解読室

新Linuxカーネル解読室 - パケット受信処理 ~IPレイヤーにおける受信処理~

今回は、パケット受信処理 ~Ethernetドライバ ポーリング処理編~の続編として、受信パケットがIP層に到達した後の処理、特にルーティング処理を中心に解説します。

新Linuxカーネル解読室 - タスクスケジューラ (その2) - EEVDF

17年ぶりにFAIRクラスのタスクスケジューラが刷新され、CFSからEEVDFに置き換わりました。 今回は、この新しいEEVDFに焦点を当て、「どのタスクをどの程度実行するか」というタスクスケジューラの最重要機能を解説したいと思います。 スケジューラやEEVDFに…

新Linuxカーネル解読室 - リアルタイムカーネル

Linuxカーネルをリアルタイム化するための最後の拡張機能が、カーネル v6.12にて取り込まれました。 本ブログでは、Linuxカーネルの応答性を向上させるために行われてきた様々な施策について解説していきます。

新Linuxカーネル解読室 - カーネルモジュール

今回は、カーネルモジュール機能を見て行きます。 Linuxカーネルは、機能の一部をカーネルモジュールとして生成し、必要に応じて組み込む方式を採用しています。これらをどのような仕掛けで実現しているか解説します。

新Linuxカーネル解読室 - パケット受信処理 ~Ethernetドライバ ポーリング処理編~

今回は、パケット受信処理 ~Ethernetドライバ 概要編~の3章「ポーリングハンドラ(NAPI)による受信処理」で解説したポーリングハンドラの処理を深堀します。

新Linuxカーネル解読室 - タスクスケジューラ (その1)

今回から数回に分けて、タスクスケジューラについて解説します。今回は、基本的な概念や全体像を中心としたお話です。

新Linuxカーネル解読室 - パケット受信処理 ~Ethernetドライバ 概要編~

今回はデバイス(NIC)がパケットを受信し、パケットがIPレイヤーに渡るまでの過程を解説します。

新Linuxカーネル解読室 - netfilterにおける排他制御

本稿では、Linuxの排他制御の仕組みである読み書きスピンロック(RWロック)とRCUについて、netfilterにおける排他制御を具体例として、実際にLinuxでどのように使われているのかを解説します。

新Linuxカーネル解読室 - プロセスディスパッチャ(後編)

本稿では、タスクの切り替えに伴うレジスタの切り替え処理の内、前編 (7月11日公開: https://www.valinux.co.jp/blog/entry/20240711) では解説しきれなかった部分について解説します。

新Linuxカーネル解読室 - ソケットインターフェース (ソケット生成編)

前回の記事では、データ構造とともにソケット操作処理の流れを見てきました。 本稿では、socket(2)システムコールによってこれらの各種データ構造がどのように生成され、関連づけられていくのかを見ていきたいと思います。

新Linuxカーネル解読室 - プロセスディスパッチャ(前編)

本稿では、旧版1章で解説されていた「プロセススケジューリング」の内、プロセスディスパッチャ(タスクの切り替え処理)について、カーネルv6.8/x86_64のコードをベースに解説します。

新Linuxカーネル解読室 - ソケットインターフェース (データ構造と概要編)

カーネルv6.8のコードをベースに、プロトコルごとに異なる処理をソケットがどのように抽象化しているのか、またソケットがなぜファイルとして操作できるのかについて、データ構造を中心に解説します。

新Linuxカーネル解読室 - ソフト割り込み処理

「新Linuxカーネル解読室」プロジェクトの本稿では、ハード割り込みが発生してからソフト割り込み処理が実行されるまでの流れを、実行コンテキストの切り替わりを追いかけながらカーネルv6.8のコードをベースに紹介します。

Linuxカーネル解読室 再び

VA Linuxの若手技術者が中心となり、最新のLinuxカーネルコード全体を読み解くプロジェクトが進行中です。解析したコードのうち興味を惹かれたもの、重要そうなものを中心にブログ記事にまとめていきますのでどうぞお楽しみに!