Linuxカーネルコミッタの夢を見る

10年以内にLinuxカーネルにコミットしたい(2020/10/1).無理だって?まあ見てなさい.

低レイヤー学習記【19日目】

取り組んだ内容

OS自作入門,pp.312-335
Linux2.0 カーネルブック,pp.1-32
Linuxカーネルの教科書,pp.1-91

取り組んだ内容の詳細

OS自作入門

  • タスク管理を自動化するためにタスクの初期化関数や構造体を定義.タスク割り当てと実行が簡単になった
  • 時間を無駄に使うタスクをスリープさせるためにタスク管理用の構造体に対してずらし処理を行う関数を作成
  • バッファが入力を受けとったときにタスクを指定して実行できるようにFIFOを変更
  • タスク管理自動化の恩恵を感じるため表示ウィンドウを増やし,それぞれにタスクを割り当てた

f:id:oirom0528:20201129033506p:plain:w500
複数ウィンドウ表示しているよ!

  • タスク構造体に優先度を保持する変数を追加,この優先度をもとにタスク切替までの時間が決まる
  • 優先度の同じタスクが存在する場合により優先するタスクを決められるようにした

所感

前回はマルチタスクに取り組み始めたところだったんですね,期間が開きすぎて忘れていました.上記の内容の最後の部分でマウスの動きがかなりスムーズになりました.これってFIFOへの入力(マウス操作)が忙しいときにはマウス関連のタスクを優先してるってことでいいんですよね?疑問は残りますがとりあえず進めていきます.最近はLinuxカーネル関連の本を読み始めました.図書館に購入依頼を出していたものがやっと購入されたのです.Linux以外の書籍だとCPUやRISC-V,Rust,コンパイラなど低レイヤー関連の書籍が9冊ほど蔵書に加わりました.早く読んでレビュー(購入依頼者の義務)も提出したいです.個人的には「Linuxカーネルの教科書」という書籍が内容が易しく分かりやすいので気に入っています.今はタスクスケジューリングの章に差し掛かったところ,なぜかOS開発とリンクしていますね(笑).

余談

論文を書いたり資料作ったり学会で発表したりと忙しかったこともあり,一ヶ月ほど更新しておりませんでした.OS自作は進められてませんでしたが,コンピュータアーキテクチャLinuxカーネルに関する書籍を読んだり地道に低レイヤー学習は続けてました.いろいろな書籍を同時進行で読んでいると,頻出ワードや基本となるシステムなど自然と覚えていくのでいいですね.最近は書籍を読むときにあまり気合を入れず,分からない部分はスルーしてもいいやくらいの気持ちで読んでいます.誰かのブログに,知識には「知らない(聞いたこともない)」,「知ってる(聞いたことはある)」,「理解している」の3つの段階があり,「知らない」の段階から「知っている」の段階に遷移するだけでも成長だと書かれていました.このマインド,いいですね.