全てのエンジニアに知ってもらいたいOSの中身について accepted

Abstract

はじめに

このセッションでは「私たちが普段から使っているOSについての技術的理解を深める事」を主眼に置き、OSの仕組みを徹底解説します。

以下のような人を対象としています。

  • OSレイヤに触れたことのないエンジニア
  • OSやコンピュータの仕組みや動作について興味がある人
  • 普段書いているプログラムが裏側でどう動いているか気になる人

私は、OSに関する理解を深めるため、書籍やインターネットの情報を元に簡素なOSを実装して動かしてみました。
実際に起動するまでの道のりや学習内容から、全てのエンジニアが知るべき基礎知識はたくさんあると確信し、その部分を初心者にもわかりやすくぎゅっと60分にまとめてお伝えします。
※自作OS開発の話題ではなく、アーキテクチャ理解に必要な知識体系を中心にお話しします。

問題提起

昨今はサーバレスやコンテナがWeb界隈の中心的な話題となり、急速に「OS離れ」が進んでいます。
しかし、どんな時代においてもその根幹を支え続けるのはOSであり、私たちが作り出すシステムやサービスを常に裏側で支えています。
私たちエンジニアがOSの知識を得る事は決して無駄ではなく、今までとは違った視点を得ることによって視野が大きく広がるはずです。

提案

最近は「知らないならググればいい」と言われる方も多いですが、「OSの仕組みってなんだか高度だしどうやってググったらいいかわからない」ですよね。
そこで、皆さんが基礎知識やキーワードを覚え、家に帰ってからググれるような情報をまとめてお伝えします。

これまでに一度は「OSってどうやって動いているんだろう?」と疑問に思ったことはありませんか?
疑問は持ってみたものの、何をどう調べたらいいかわからず、解決せずに断念していませんか?
そんな方に是非ご参加頂きたい内容を詰め込みました。

普段私たちが書いているプログラムはどのようにして動いてるのか、OSやCPUは中でどう処理しているのかという所に踏み込みながら、紐解いていきます。

アジェンダ

  • CPUを知る
    • CPUの歴史
    • CPUはどう動いてるんだろう?
  • アセンブラを知る
    • なんでアセンブラを読むの?
    • 基本的な構文
    • ポインタの中身
  • OSの仕組み
    • 割込とシステムコール
    • 特権管理
    • タスク管理
    • メモリ管理
  • ブートシーケンスを知る
    • BIOSとEFI
    • ブートローダ
    • カーネルローダ

変更履歴

  • 2018/9/1
    • ターゲットをより初心者向けにするため、アジェンダを変更しました
    • 全体的な説明を少し加筆修正しました

Video
Slides
Session Information
Confirmed confirmed
Starts On 9/8/18, 10:00 AM
Room Multi-Purpose Room 2
Session Duration Regular Session (60min)
Spoken Language Japanese
Interpretation Unavailable
Slide Language Japanese