uchan note

プログラミングや電子工作の話題を書きます

人々が OS を自作するきっかけは何だろう

OS 自作はとてもニッチな趣味ですが,ときどきやっている人を見かけます。 「OS を自作してみよう」と思うまでには,まずコンピュータに触れる経験が必要で,加えて OS の存在に気付く必要があるはずです。 業務命令で OS を自作するようなケースを除けば,OS の存在に気づいた上で,さらに OS に興味を持つ必要があります。 彼ら/彼女らはなぜ「OS の自作」に興味を持つのかを調査してみました。

続きを読む

【技術書典 応援祭】OS 自作技術 ステップアップ問題集を出します

技術書オンリーの同人誌即売会技術書典 応援祭」が,2020/03/07(土)からオンライン開催されます。 『OS 自作技術 ステップアップ問題集』と『マイクロカーネルの設計と実装』を頒布しますのでお知らせします。

頒布情報

技術書典 8 は開催中止です。 その代わり「技術書典 応援祭」に出展します!以下,応援祭の情報です。

  • 日時 2020 年 3 月 7 日(土) - 4 月 5 日(日)
  • 場所 特設サイト
  • ブース 「bitnos」 OS自作技術ステップアップ問題集
  • 新刊1『OS自作技術 ステップアップ問題集』(@uchan_nos 著)
  • 新刊2『マイクロカーネルの設計と実装』(怒田晟也著)
  • bitnos ブースではその他の既刊も展示・頒布します。

f:id:uchan_nos:20200217102209j:plainf:id:uchan_nos:20200217102227p:plain
新刊の表紙画像

続きを読む

ファジングツール syzkaller は何を検査するものなの?

OSSセキュリティ技術の会 第七回勉強会 に参加してきました。 syzkaller が何を,どうやって検査するのか,原理を忘れないうちにメモします。

ファジング

ファジングはプログラム解析手法の 1 つです。入力値をいろいろ変えて与えてみてバグが発生するかどうかをテストします。 バグ=脆弱性バグではありませんが,バグがあれば脆弱性に繋がる可能性があり,脆弱性を見つけたい人たち(防御側および攻撃側)に人気があるそうです。

「入力」にはさまざまなものがあり得ます。Linuxコマンドラインツールであればコマンドライン引数や標準入力,ファイル,ネットワークなどが入力経路として一般的かと思います。 今回の OSS セキュリティ技術の会で取り上げられていた Linux カーネルに対するファジングツールである syzkaller(濁らせずに「シスコーラー」と読むらしい)は,Linuxシステムコールを色々な引数で呼んでみてバグを検査します。

続きを読む

プログラム解析の目的

来年からサイボウズ・ラボ株式会社に所属して研究活動をすることになりました。 研究テーマは今のところプログラム解析をやろうと思っています。 プログラム解析は初心者ですので勉強したことをブログにしてみます。

プログラム解析の目的の一つはデバッグ支援

プログラム解析はざっくり言えば,プログラムを解析して何らかの情報を得ることです。 プログラム解析の代表的な手法と応用先を知りたかったのでこの論文を読んでみました。

続きを読む

MikanOSの歴史

この記事は 自作 OS アドベントカレンダー 2019 の 2 日目の記事です。

MikanOS

筆者(uchan_nos)はここ数年,教育用 OS である MikanOS(ミカノス)を作っています。 MikanOS は「未完」と「蜜柑」を掛けた名前です。

MikanOS は教育用 OS と言っている通り,将来は大学などの授業で採用されたらいいなあと思って作っています。 今のところ 2020 年 12 月から 2021 年 1 月に東工大で開催する予定の自作 OS 講義のサンプルとして採用を予定しています。 (この講義については 筆者の宣伝ツイート を参照してください)

この記事は MikanOS 製作の進捗を過去から現在までまとめてみるものです。

続きを読む

「asm volatile」におけるvolatileの効果

インラインアセンブラは低レイヤプログラミングをする人にとっては有名な機能ですが,私はなぜ「volatile」を付ける必要があるのかイマイチ分かりませんでした。いままで「volatile」を付けずとも意図通り動いていたからです。しかし今回,「volatile」を付けない場合に意図しない最適化をされてしまったのでここで紹介します。

続きを読む

FIFOバッファ

この記事はプログラミング,とりわけ自作OSに興味を持った計算機科学初心者の方に向け,FIFOバッファの紹介,および具体的な実装例を紹介するものです. FIFOバッファとは何か,自作OSでの応用例,ナイーブな実装例と性能を多少考慮した改良例を紹介します.

続きを読む