GRADUATION

プログラムがOSに何を頼んでいるかを、自分の目で見られるようになりました。

write()だけを呼ぶ、ごく単純なプログラムをstraceで観察し、printf1つの裏で何十ものシステムコールが動いていることを見ました。write(1, ...)という1行の呼び出しが、fd・バッファ・長さという3つの引数と、書き込んだバイト数という返り値を持つ、OSとの明確な契約だと理解しました。

おつかれさまでした。

持ち帰るもの

次にやるといいこと

  1. 次は、そのプログラムが動いている「プロセス」そのものをのぞくmini-procです。
  2. sec-cで見たバッファオーバーフローも、結局はこうしたシステムコール(read/writeなど)に渡すバッファの管理ミスから始まります。

次の行き先

ほかの言語を試食する

同じ「道具を作る」でも、言語によって手ざわりはずいぶん違います。

試食コーナーの一覧を見る →

本コースでじっくり作る

10章かけて、公開URL付きの成果物を1つ仕上げるコースです。

コース目次に戻る進捗データを書き出す