かーねるさんとか

発言は個人の見解であり、所属する組織の公式見解ではありません。

2020-01-01から1年間の記事一覧

Linux カーネルハック実践入門

Linux のカーネルハックの実践的な入門方法について書いてみようと思います。カーネルハックをすると、OS の機能を改変したり、追加したりできます。OS の機能の例としては、スケジューラ、メモリ管理機能、ネットワークスタック、ファイルシステム、デバイ…

Linux カーネルハックを始める前に知っておきたいこと

カーネルハックの入門的な内容について、あまりまとまった情報がないように思ったので、記事にしてみようと思いました。これから勉強を始めてみようと思われる方の参考になれば幸いです。 ユーザー空間とカーネル空間 Linux のような UNIX 系 OS では、ユー…

mmap したファイル向けに malloc を作ってみた

ファイルを mmap した仮想メモリアドレスの上で、データ構造を操作して、そのままファイルに保存したいと思われたことはありませんでしょうか。実際にやってみようとすると、mmap された仮想メモリ領域の空き空間の管理を自分で行わなければならず、ファイル…

いい感じに仮想メモリアドレスとファイルオフセットを変換するスマートポインタを作った

ファイルを mmap した仮想メモリアドレス空間の上でデータ構造の操作を行い、変更をそのままファイルへ保存したいと思ったことはありませんでしょうか。面倒な点として、mmap されたファイルは、次回以降 mmap されたときに、同じ仮想メモリアドレスにマップ…

マルチコアでスケールするB木を書いてみた

Optimistic, Latch-Free Index Traversal (OLFIT) という手法を提案している、Cache-Conscious Concurrency Control of Main-Memory Indexes on Shared-Memory Multiprocessor Systems という論文を参考に、マルチコア環境でスケールするB木を書いてみました…

fsync はなぜ時間がかかるのか

fsync について調べたことをまとめます。特に、最新の研究も含めて、ジャーナリングやメタデータの整合性について書いていこうと思います。読んでいただけると、ファイルシステムが裏でどのようにデータを永続ストレージへ書き出しているかについての理解が…

ファイルシステムのメタデータについて

ファイルシステムのメタデータについて調べたことを書いてみようと思います。勉強のためにファイルシステム関連の資料を見ていると、メタデータの種類に関して列挙しているものはたくさん見つかったのですが、それらがどのように保存されるかについての記述…

ファイルシステムについてざっくり理解する

ファイルシステムについて勉強したことについて書いてみようと思います。今回は、概観について、ふわっと理解できるような資料になるように書いていきたいと思います。 読んでいただくと、read、write システムコールの裏側で何が起きているか若干想像がつく…

ふわっと理解するプロセススケジューラ実装のコンセプト

OS のプロセススケジューラの実装について調べました。UNIX や Linux のような洗練された OS のスケジューラの実装はとても複雑で理解するのが大変ですが、スケジューラ実装の根本的なコンセプト自体は、少し単純化して表現できそうに思いました。今回は、実…