SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Operating System って
    なんだろう?


    おがさわらなるひこ
  naruoga at twitter, gmail, hatena
               @ Study Party Basics of Computer
その前に重要な注釈
    この資料を書いている人は
    OS の専門家でもなければ
カーネルのソース一つ読んだことがない
   たんなるうんちく好きです。
 間違ってもこの資料を本気にしないで
      自分で確かめてね。
   あと日立よりの記述が多いのは
  ぼくの大学の恩師が日立中研で OS の
    開発をやってたからです。

   さらに言うと組み込み系はなにも知らないので
     なかったことになってます。ひどい。
Agenda

    まずは歴史から

    OS の「本分」って何だろう?

    ネタになりそうなキーワード列挙
Agenda

    まずは歴史から

    OS の「本分」って何だろう?

    ネタになりそうなキーワード列挙
OS 前史

    コンピュータ黎明期には OS は存在しなかった

    昔のコンピュータはパンチカードやテープで
     プログラムを食わせて、順に実行していくの
     が普通だった
     
         複数のプログラム間を調停する必要はない

    プログラムはそのコンピュータ専用に機械語
     (後にアセンブラ)でかかれるのが当然
     
         ハードウェアの抽象化などいらない
OS の誕生①

    SHARE (IBM  のユーザーズグループ ) 
      
          アセンブリでコケたジョブは取り除くとか、暴
           走したジョブを殺すとか人手やるの大変
                GM と North Americal Aviation が GM/NAA I/O 
                  system  ってのを作ったよ! と自慢
         SHARE Operating System (SOS)  の提案
      
          IBM 704  にて実装 (1953)

    IBM 帝国の
      基礎となった存在
OS の誕生②

    こういう発想は SOS  が最初ではなかった
      
          簡単なジョブ管理をするソフト「モニタ」
      
          例えば日立中研ではモニタを 1963 年には自前
           で書いていた
               商用 FORTRAN の発売より必要とされた


   ポイントは、このようなソフトに Operating 
     System という名前がついたこと
      
          元々は IBM 用語
TSS ショック①

    OS でバッチジョブが効率化して分かったこと
     
         9 割のジョブは本体処理が非常に小さいので、
           前準備と後始末の時間がムダになる
     
         並列で実行していく方が効率がいい

    「タイムシェアリングシステム」考案
     
         CPU タイムを分割して複数ジョブを実行する
     
         マルチプロセス、マルチユーザの時代到来
     
         最初の実装は MIT の McCathy (Lisp の発明者 )
          主導 (1957) on modified IBM 704 
TSS ショック②

    「ジョブ」から「プロセス」へ
     
         逐次実効される「ジョブ」から並列実行される
          「プロセス」という概念の登場
     
         有限のハードウェア資源を分け合う
           
               「資源管理」が OS の機能として認識される
           
               特権レベルという考え方の導入



    ファイルの所有権といったセキュリティの概
     念の萌芽が産まれる
     
         管理者対ハッカーの長い戦いの始まり
MULTICS①

    MIT の Saltzer 教授を中心に、 GE ( 後にコン
     ピュータ部門を Honeywell に売却 ) 、 AT&T
     ベル研究所の共同研究による理想の OS
      
          高水準言語 (PL/I) による実装
      
          仮想記憶の実現
      
          完全なセキュリティモデル
      
          ダイナミックリンクライブラリ

    1964 年、 GE のフラッグシップモデル GE ー
      645 をターゲットに始まる
MULTICS②

    理想が高邁過ぎて実装が遅れに遅れる
        ベル研が撤退を決定 (1969)
     
         紆余曲折あったものの完成はした (1975)  が、
          ビジネス的には大失敗
     
         しかし、そこで提唱されたアイディアは非常に
          革新的であり、今の OS に取り込まれている
           
               仮想記憶などのアイディアについては論文とし
                て公開していたため、それを読んだ日立の技術
                者に実現の先を越されるという逸話あり
UNIX の誕生①

    ベル研の Ken Tompson と Dennis Ritche ほか
      
          MULTICS から撤退してちょっとヒマになった
      
          ちょっとした暇つぶしに研究所に落ちてるミニ
           コン (PDP­7) でゲームでも遊べる OS 作ろうか
             
                 仮想記憶? 要らね要らね。
             
                 ダイナミックリンクなんか役にたたんだろ
             
                 アセンブラでごりごり書いちゃえ
      
          んでできたのが UNIX (1970)

    後に Ritche  が「俺の作った言語で書こうよ」
     と持ちかけて C でポーティング (1973)
UNIX の誕生②

    UNIX の偶然
      
          研究者が使いたいものに割り切った仕様だった
           ので、研究機関や大学に好評
      
          AT&T は当時ソフトビジネスが禁止されていた
            
                欲しいところ(研究所や大学)に実費で配布
               規模もそこそこなので OS の研究にちょうどいい
               仕様が小さい言語 (C) で書かれていたので移植性
                 が高い

    研究機関・大学における標準の地位を得る
西海岸から来た悪魔君

    UNIX のソースコードを受け取ったところに
     UCB (the University of California, Barkeley)  が
       
           何人かのスキモノがハックしまくり
                  C­Shell, vi, TCP/IP socket,  仮想記憶 , ...
       
           これが Berkeley Software Distribution (BSD)
       
           ぶっちゃけ近代的 UNIX のネタは全部 BSD が仕
            込んだといっても過言ではない。
ちなみに Stanford 大で Stanford University Network というハードウェアを作って
 たハッカー Andy Bechtolsheim とビジネス屋の Scott McNealy らを誘って BSD
        のコアメンバー Bill Joy が起こした会社が SUN ですね。
視点を変えて~言語マシン~

    厳密な定義は置くとして、 OS とはハードとソ
     フトと人をつなぐもの、と雑駁にいうと、
     「ある言語の中だけでそのコンピュータの全
     機能が扱える」ものがあったら、その言語は
     OS と言えるじゃないか!
     
         Lisp マシン (Symbolics, LMI, 
           InterLisp/D, ELIS)
             
                 今だと Emacs が近いかも。
     
         Pascal マシン (P­code  マシン )
        Smalltalk­80 (Alto)
マイコン登場

    Intel が出した 8080 というチップをきっかけに
      噴出した自作コンピュータブーム
      
          高水準言語を使いたいという声に、ダートマス
           大学で発明された BASIC という教育用言語に
           目をつけた人たちがいた
      
          その中にはヒットしたマイコンキット MITS 
           Altair 向けに BASIC を作って売った Bill Gates
           と Paul Allen のコンビも
             
                 これは「ソフトを売って儲けるってありなん
                  だ」というビジネスモデルを発明したというこ
                  とで画期的な事件ですが OS とは関係ないね
マイコン BASIC 時代

    初期のマイコン用 BASIC は初期汎用機のアセ
     ンブラと同じく OS 的機能はなかった
   Apple ][  での革新= OS 化
      
          電源 ON で ROM から BASIC
      
          フロッピーディスクのファイルを
           管理できる
   日本における各種 BASIC 標準搭載マシンにつ
     いても同様であり、これが「始めて触れた
     OS らしきもの」という人は多いのでは?
CP/M & DOS
   CP/M (by Digital Research Inc.)
       
           8 ビット時代を席巻した OS
   PC­DOS / MS­DOS (by Microsoft)
          DOS = Disk Operating System
       
           IBM が PC に搭載した OS
                  ほんとは IBM は CP/M 86 を考えてたんだけど、
                    約束をすっぽかされて急遽 MS が手をあげた
               
                   MS は他から買ってきて大急ぎで仕上げた

    肝心なのは、どちらもせいぜいファイル管理
     ぐらいしか機能を提供してなかったこと
笑ってお仕事 Windows!

    OS と言える初の Windows 、
     Windows 95  の登場
      
          ほぼ全ての資源管理は Windows 側に移る
               それまでは DOS や BIOS に多くを依存
               MS 自ら「 Operating Environment 」と言っていた
         32bit CPU の機能を利用し、今までの擬似マル
            チタスクでなく完全なマルチタスクへ移行

    ただし
      
          堅牢性やセキュリティよりも互換性を重視した
ちょっと脱線~マイクロカーネル~

    OS の機能はどんどん肥大化

    プラットフォームも増大
     
         OS から「本当に必要な部分」を切り出して、
          それ以外の機能はその上に載せればいいん
          じゃないか?
     
         そしたら移植しなきゃいけない部分が減るよね

    「マイクロカーネル」という概念の登場
     
         CMU の Mach カーネルが有名
        「これからの OS は全てマイクロカーネル」?
Mac OS X のご先祖 NeXTstep

    「ソーダ水売り」に Apple から追
     放された Steve Jobs が世に問うた
     ワークステーション NeXT Cube
      
          商売としてはまあアレでしたが……
   その OS 、 NeXTstep は Mac OS X のご先祖
         Mach  カーネルの上に BSD を載せる
      
          Interface Builder で GUI プログラミングも楽々
      
          Objective­C で先進的オブジェクト指向開発!
         Display Postscript によるクールな GUI
WNT == VMS++

    MS は DOS から発展した Windows の限界を感
     じ、もと DEC の Dave Cutler をスカウト
         NT = New Technology
      
          マイクロカーネルを採用
                 Win32 以外に POSIX (Unix)  なども動作
              
                  x86 以外に DEC Alpha 、 IBM PowerPC 、 MIPS
                   などの CPU アーキテクチャにも対応
                 新しいファイルシステム NTFS
              
                  詳しくは「闘うプログラマー」読め
         今の MS の繁栄を築いたが、時代とともに
           NTFS 以外はほとんどなかったことに……
国産 OS ってどうよ①

    1960 年代の汎用機全盛時代は各社 ( 富士通、
      日立、日本電気、東芝、三菱、沖など ) は独
      自アーキテクチャで OS 開発も行っていた
   1970 年代に入ると IBM System/360 という歴史
      的名機が誕生(話すと長くなるので割愛)
      
          非関税障壁で産業保護を狙うが守りきれない
      
          そこで 1972 年、業界再編により「互換機路
           線」を指示
               独自アーキテクチャ、独自 OS の道を断つ
            
                だから役人って奴は……
国産 OS ってどうよ②
   TRON (The Real­time Operating system Nucleus)
       
           東京大学、坂本健助教授 ( 当時 ) 提案
       
           いろいろ派生はあるけどここでは B­TRON の話
   B­TRON
          仮身・実身モデルを中心としたユニークな OS
       
           通商産業省の外郭団体 CEC によって全小学校へ
            の標準環境としての導入が決まりかける
             
                 が、アメリカから非関税障壁とのクレーム
                   
                       え?国際規格だから誰でも実装できるんだけど?
             
                 結局ビビってお流れ
             
                 だから役人って奴は……
Minix Operating System

    独禁法の縛りが解けて UNIX のソースコード
     は手軽に手に入れられるものではなくなった

    機能が増えた代償に OS の勉強として手軽に読
     んでいじるものではなくなってしまった

    アムステルダム自由大学の A.S.Tanenbaum 教
     授が自著の付録として 16bit PC で動く軽量な
     学習用 Unix like OS 「 Minix 」を開発
      
          だれもがいじれ、全容が把握できる OS
         書籍としての copyright だったため自由に改変で
           きない不満が募る (32bit 化、仮想記憶… )
まずは歴史から~ Linux 誕生~

    ヘルシンキ大学の院生 Linus Torvalds もこの状
     況にイライラしていた

    いっそのことフルスクラッチで作っちゃえ!
      
          できたよー、と Minix  コミュニティに投下
      
          一気に大ブレイク!

 これは別に Linus が天才だったわけでもなければ Minix がへぼかった
わけでもない。たまたまインターネットによるコラボレーションという
時代の波にうまく乗ったこと、 Minix が最初に書かれたころに比べると
   高性能の PC が入手しやすい時代になっていたということ。
               要はタイミングが全て。
AST 先生 vs Linus 論争

    詳しくはネットで見ろことで一点だけ、
        AST 「今更モノリシックカーネル開発するとか
          何?  Linux は i386 しか考えてないやん?」
     
         Linus 「じゃ成功したマイクロカーネルって?
           先生の例は商業的に成功してないよね」

    さて 2010 年になってみると
     
         今純粋な形で商業的に成功しているマイクロ
          カーネルは Mach ぐらいだが、これは偶然
     
         Linux は 10 を越えるプラットフォームに対応
まずは歴史から~まとめ①~

    非常に大雑把にいってしまうと組み込み系を
     除く OS は次の三つに集約されてしまった
      
          汎用機用 OS/360  系列
      
          POSIX  互換 OS (いわゆる Unix Like OS)
      
          Windows NT 系

    Mac  は?
      
          OS をどこまで OS として定義するかだけど、
           Mach + BSD  にガワをかぶせただけという
           オレ解釈(異論大歓迎)
まずは歴史から~まとめ②~

    研究レベルはともかくとして、完全に新しい
     概念の OS というのは長いこと現れていない

    しかし、別の潮流が
     
         趣味としての OS
     
         自分が作りたいから OS を作る
     
         今ある概念を一度捨ててみたり
     
         プロジェクトとして成立したものはなさそうだ
          が、多分作っている人たちが望んでいない
        OS 作りを個人のホビーとする動き
Agenda

    まずは歴史から

    OS の「本分」って何だろう?

    ネタになりそうなキーワード列挙
歴史を見てきましたが
出来事       概念
OS の誕生    簡易的なジョブ管理
TSS       マルチプロセスの実現( CPU の仮想化)
          プロセス管理
          特権レベルの導入
          3A ( 認証・権限・課金 ) の概念の導入
MULTICS   高水準言語 (PL/I) による実装(移植性)
          仮想記憶
          共有ライブラリ
UNIX      システム記述専用言語 (C) による実装 ( 移植性 )
マイクロ      ハードウェアに近い層とそれ以外の層の分離
カーネル

恣意的なまとめ: OS とは「資源を管理」するように進化してきた
OS = 「資源」の管理

    「資源」=「物理的資源」+「論理的資源」
     
         「物理的資源」=ハードウェア、もあれば
           
               物理メモリ
           
               記憶装置
              I/O…
     
         実体がない「論理的資源」もある
           
               タスク
           
               プロセス
           
               メモリ
           
               ファイル…
OS = 資源の「管理」

    「管理」といって具体的に何を指すのか
     
         新しい資源を作ったり、消したり、順序を入れ
          替えたりすること
           
               プロセス管理・ファイル管理・メモリ管理
     
         有限の資源を無限に見せかけること
           
               仮想記憶・タイムスライスによる擬似並列処理
     
         プログラマにいろいろな物理資源を抽象化して
          共通に見せること
           
               ファイルシステム・ Hardware Abstruction Layer
        移植性: H/W をアプリから隠す
UI は?  UI は OS じゃないの?

    一般的な定義では、 OS には含まない
      
          UI と OS は切り離して存在しうるため
      
          OS の上に「殻となって」機能するから「シェ
           ル」と呼ばれる

    でも GUI がない Windows や Mac OS X って?
      
          技術的には切り離し可能(のはず)
      
          しかし現実問題、シェルが提供している機能を
           アプリケーションが使いまくりなので不可分
      
          これは技術じゃなくて商品性の話
Agenda

    まずは歴史から

    OS の「本分」って何だろう?

    ネタになりそうなキーワード列挙
お詫び

    ちゃんとした内容で書こうと思ったんですが
     知識と時間がなくて余裕で間に合いませんで
     した。

    ということで思いつくキーワードをでたらめ
     に列挙します

    体系的な話をどうするかは検討しましょう
プロセスとスレッド

    プロセス=多くの OS における最小の実行単位
     
         独立したメモリ空間を持つ

    スレッドはプロセスと似ているがメモリ空間
     を共有するのが違い
     
         一個のプロセスの中で複数のスレッドが走る

    コンテキスト(実行環境)スイッチング
   CPU の時分割処理とマルチ CPU の割り当て

    擬似マルチタスクと真のマルチタスク
メモリ管理

    ハードウェアのアドレスマップと実メモリと
     仮想記憶の関係
     
         ページ IN ・ページ OUT の考え

    メモリ管理ユニット (MMU) の仕事

    メモリブロックの割り当て戦略
ファイルシステム

    そもそも OS においてファイルは必須の概念?
      
          例えば Palm OS  にはファイルはなかった

    ファイルシステムの基礎概念
      
          コンテンツと管理ブロック
      
          ジャーナリングファイルシステム

    Linux の次世代 FS (Raiser FS, Btrfs) のソースと
      か読むのも面白いかも
ハードウェアの抽象化

    UNIX における抽象化の例
      
          デバイスをファイルに見せる
         create / read / write / close
      
          ついでに Plan9  とか

    デバイスドライバ
         OS の提供する I/F にしたがうことで「 OS  (を
           経由してユーザー)から見てすべてのデバイ
           スを共通に扱える」ためのモジュール

    各 OS における H/W の自動認識
ユーザインタフェース

    一例として X の基礎
     
         ウィンドウの管理
     
         HID H/W イベントの振り分け
           
               キーボード割り込みを受けてから特定のアプリ
                ケーションがそのイベントを受けるまで



    シェルサービス
     
         OS ではない、シェルが提供しているサービス
        Windows のショートカットなど
特権概念

    ユーザーモードとカーネルモードの概念

    x86 を例にして特権モードへの遷移を見たり

    特権モードでできること、できないこと
勝手に書き散らして来ましたが

    私個人としては OS そのものを作ることにはあ
     んまり興味がないです(だから「 OS 自作入
     門」の輪読とかはちょっと違う)。

    もっと一般的な話を、微妙にハードウェアに
     はみ出したり、アプリ側にはみ出したり、っ
     て感じでやっていけたらいいな。

    こんな変な OS があるよ、という話もしたい。

    とはいえランダムな雑談はちとしんどい
     
         体系的なテキストが欲しいよね。
そこで提案。

    天下の MIT のテキストを拝借しませんか?
   http://ocw.mit.edu/OcwWeb/Electrical­
      Engineering­and­Computer­Science/6­828Fall­
      2006/CourseHome/
       
           Lecture Notesも一通り揃ってるし
       
           ボリュームがありすぎるというなら興味がある
            ところだけつまみ食いしてもいいと思う
       
           いかがでしょうか?
おしまい。
デタラメな資料でごめんなさい。

Mais conteúdo relacionado

Mais procurados

マルチプラットフォーム開発導入
マルチプラットフォーム開発導入マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
Daisuke Nikura
 
Linuxとオープンソースの世界
Linuxとオープンソースの世界Linuxとオープンソースの世界
Linuxとオープンソースの世界
Hiroe Orz
 
サーバーだけじゃない! Linux デスクトップを使い倒そう! その1
サーバーだけじゃない! Linux デスクトップを使い倒そう! その1サーバーだけじゃない! Linux デスクトップを使い倒そう! その1
サーバーだけじゃない! Linux デスクトップを使い倒そう! その1
Fuminobu Takeyama
 

Mais procurados (7)

お化け
お化けお化け
お化け
 
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送るXRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
 
Unixの歴史
Unixの歴史Unixの歴史
Unixの歴史
 
マルチプラットフォーム開発導入
マルチプラットフォーム開発導入マルチプラットフォーム開発導入
マルチプラットフォーム開発導入
 
Linuxとオープンソースの世界
Linuxとオープンソースの世界Linuxとオープンソースの世界
Linuxとオープンソースの世界
 
AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)AllwinnerタブレットのOSを作ってみる(中編)
AllwinnerタブレットのOSを作ってみる(中編)
 
サーバーだけじゃない! Linux デスクトップを使い倒そう! その1
サーバーだけじゃない! Linux デスクトップを使い倒そう! その1サーバーだけじゃない! Linux デスクトップを使い倒そう! その1
サーバーだけじゃない! Linux デスクトップを使い倒そう! その1
 

Destaque

8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
suno88
 
アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるには
ymmt
 
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
IGDA Japan
 

Destaque (16)

Dmedia
DmediaDmedia
Dmedia
 
自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史
 
N88-BASIC Language
N88-BASIC LanguageN88-BASIC Language
N88-BASIC Language
 
マイコンを語る
マイコンを語るマイコンを語る
マイコンを語る
 
技術書執筆とリモート
技術書執筆とリモート技術書執筆とリモート
技術書執筆とリモート
 
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかったAwful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
Awful Guy in Early Ages of Japanese Computer / 昔の人はえらかった
 
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
 
GC黄金時代
GC黄金時代GC黄金時代
GC黄金時代
 
アーキテクトになるには
アーキテクトになるにはアーキテクトになるには
アーキテクトになるには
 
プログラマ人生論
プログラマ人生論プログラマ人生論
プログラマ人生論
 
正しいプログラミング言語の覚え方
正しいプログラミング言語の覚え方正しいプログラミング言語の覚え方
正しいプログラミング言語の覚え方
 
Java9新機能概要
Java9新機能概要Java9新機能概要
Java9新機能概要
 
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
超連射68K 開発日記 -弾幕世代以前の90年代 STG のこと-
 
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
 
ソフトウェア開発の歴史を振り返る
ソフトウェア開発の歴史を振り返るソフトウェア開発の歴史を振り返る
ソフトウェア開発の歴史を振り返る
 
10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!10のJava9で変わるJava8の嫌なとこ!
10のJava9で変わるJava8の嫌なとこ!
 

Semelhante a What's Operating System?

Open Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pmOpen Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pm
Hirotaka Kawata
 
Fossライセンスとビジネス
FossライセンスとビジネスFossライセンスとビジネス
Fossライセンスとビジネス
Nobukuni Kino
 
コミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということコミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということ
Kazuho Oku
 

Semelhante a What's Operating System? (20)

最小セット
最小セット最小セット
最小セット
 
2017年に「伽藍とバザール」を読み返す
2017年に「伽藍とバザール」を読み返す2017年に「伽藍とバザール」を読み返す
2017年に「伽藍とバザール」を読み返す
 
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
 
OSの歴史 完成版
OSの歴史 完成版OSの歴史 完成版
OSの歴史 完成版
 
Os真髄
Os真髄Os真髄
Os真髄
 
Mul light アプリケーション編 1.0
Mul light アプリケーション編 1.0Mul light アプリケーション編 1.0
Mul light アプリケーション編 1.0
 
Mul light マルチタスク編 1.0
Mul light マルチタスク編 1.0Mul light マルチタスク編 1.0
Mul light マルチタスク編 1.0
 
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
PCCC22:株式会社アックス テーマ1「俺ASICとロボットと論理推論AI」
 
WakameTech #3
WakameTech #3WakameTech #3
WakameTech #3
 
Oem pcのつくりかた
Oem pcのつくりかたOem pcのつくりかた
Oem pcのつくりかた
 
Open Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pmOpen Design Computer Project - Tsukuba.pm
Open Design Computer Project - Tsukuba.pm
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
DevConf.cz 2020参加報告
DevConf.cz 2020参加報告DevConf.cz 2020参加報告
DevConf.cz 2020参加報告
 
Mac OS Xの運用管理
Mac OS Xの運用管理Mac OS Xの運用管理
Mac OS Xの運用管理
 
Fossライセンスとビジネス
FossライセンスとビジネスFossライセンスとビジネス
Fossライセンスとビジネス
 
2007 03 17_osc2007spring_01
2007 03 17_osc2007spring_012007 03 17_osc2007spring_01
2007 03 17_osc2007spring_01
 
コミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということコミュニケーションソフトウェアを創るということ
コミュニケーションソフトウェアを創るということ
 
Openhard150114
Openhard150114Openhard150114
Openhard150114
 
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
エバンジェリストが語るパワーシステム特論 ~ 第1回:IBMオフコンはいかにして生き残れたのか?
 
Building libc++ for toy OS
Building libc++ for toy OSBuilding libc++ for toy OS
Building libc++ for toy OS
 

Mais de Naruhiko Ogasawara

Mais de Naruhiko Ogasawara (20)

さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
 
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
最新のデスクトップアプリを使おう:Snap, Flatpak, AppImage
 
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's next
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's nextLibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's next
LibreOffice Asia Conference 2019 Tokyo; what we had achieved, and what's next
 
小江戸らぐBBQ 2019
小江戸らぐBBQ 2019小江戸らぐBBQ 2019
小江戸らぐBBQ 2019
 
The Document Foundationについて / About The Document Foundation
The Document Foundationについて / About The Document FoundationThe Document Foundationについて / About The Document Foundation
The Document Foundationについて / About The Document Foundation
 
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certification
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certificationTDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certification
TDFと寄付、メンバーシップ、認定制度 / TDF and donation, membership and certification
 
Building a bridge between Japanese LibreOffice community and the world
Building a bridge between Japanese LibreOffice community and the worldBuilding a bridge between Japanese LibreOffice community and the world
Building a bridge between Japanese LibreOffice community and the world
 
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)
Happy Software Freedom Day! (Koedo Linux Users Group, Tokyo, Japan)
 
宣伝:SeleniumConf Tokyo 2019やりますよ!
宣伝:SeleniumConf Tokyo 2019やりますよ!宣伝:SeleniumConf Tokyo 2019やりますよ!
宣伝:SeleniumConf Tokyo 2019やりますよ!
 
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systems
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systemsUsing latest LibreOffice on openSUSE Leap 15 - by modern packaging systems
Using latest LibreOffice on openSUSE Leap 15 - by modern packaging systems
 
The Document Foundationについて
The Document FoundationについてThe Document Foundationについて
The Document Foundationについて
 
告知 ー OSnuC Kawagoe 2018
告知 ー OSnuC Kawagoe 2018告知 ー OSnuC Kawagoe 2018
告知 ー OSnuC Kawagoe 2018
 
LibreOffice: The Office Suite with Mixing Bowl Culture
LibreOffice: The Office Suite with Mixing Bowl CultureLibreOffice: The Office Suite with Mixing Bowl Culture
LibreOffice: The Office Suite with Mixing Bowl Culture
 
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...
Make It Better Together: コミュニティを主体としたLibreOffice翻訳 / : Community-centered Lib...
 
Hospital days in czech / チェコで入院した話
Hospital days in czech / チェコで入院した話Hospital days in czech / チェコで入院した話
Hospital days in czech / チェコで入院した話
 
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE usersopenSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
openSUSEユーザーに向けたLibreOffice入門 / Introduction of LibreOffice for openSUSE users
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
 
LibreOfficeの最新動向 / LibreOffice current status
LibreOfficeの最新動向 / LibreOffice current statusLibreOfficeの最新動向 / LibreOffice current status
LibreOfficeの最新動向 / LibreOffice current status
 
Vertical Writing: typical use-cases and current status in LibreOffice
Vertical Writing: typical use-cases and current status in LibreOfficeVertical Writing: typical use-cases and current status in LibreOffice
Vertical Writing: typical use-cases and current status in LibreOffice
 
LibreOffice, the free office productive suite and it's status of accessibilit...
LibreOffice, the free office productive suite and it's status of accessibilit...LibreOffice, the free office productive suite and it's status of accessibilit...
LibreOffice, the free office productive suite and it's status of accessibilit...
 

Último

Último (12)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

What's Operating System?

  • 1. Operating System って なんだろう? おがさわらなるひこ naruoga at twitter, gmail, hatena @ Study Party Basics of Computer
  • 2. その前に重要な注釈 この資料を書いている人は OS の専門家でもなければ カーネルのソース一つ読んだことがない たんなるうんちく好きです。 間違ってもこの資料を本気にしないで 自分で確かめてね。 あと日立よりの記述が多いのは ぼくの大学の恩師が日立中研で OS の 開発をやってたからです。 さらに言うと組み込み系はなにも知らないので なかったことになってます。ひどい。
  • 3. Agenda  まずは歴史から  OS の「本分」って何だろう?  ネタになりそうなキーワード列挙
  • 4. Agenda  まずは歴史から  OS の「本分」って何だろう?  ネタになりそうなキーワード列挙
  • 5. OS 前史  コンピュータ黎明期には OS は存在しなかった  昔のコンピュータはパンチカードやテープで プログラムを食わせて、順に実行していくの が普通だった  複数のプログラム間を調停する必要はない  プログラムはそのコンピュータ専用に機械語 (後にアセンブラ)でかかれるのが当然  ハードウェアの抽象化などいらない
  • 6. OS の誕生①  SHARE (IBM  のユーザーズグループ )   アセンブリでコケたジョブは取り除くとか、暴 走したジョブを殺すとか人手やるの大変  GM と North Americal Aviation が GM/NAA I/O  system  ってのを作ったよ! と自慢  SHARE Operating System (SOS)  の提案  IBM 704  にて実装 (1953)  IBM 帝国の 基礎となった存在
  • 7. OS の誕生②  こういう発想は SOS  が最初ではなかった  簡単なジョブ管理をするソフト「モニタ」  例えば日立中研ではモニタを 1963 年には自前 で書いていた  商用 FORTRAN の発売より必要とされた  ポイントは、このようなソフトに Operating  System という名前がついたこと  元々は IBM 用語
  • 8. TSS ショック①  OS でバッチジョブが効率化して分かったこと  9 割のジョブは本体処理が非常に小さいので、 前準備と後始末の時間がムダになる  並列で実行していく方が効率がいい  「タイムシェアリングシステム」考案  CPU タイムを分割して複数ジョブを実行する  マルチプロセス、マルチユーザの時代到来  最初の実装は MIT の McCathy (Lisp の発明者 ) 主導 (1957) on modified IBM 704 
  • 9. TSS ショック②  「ジョブ」から「プロセス」へ  逐次実効される「ジョブ」から並列実行される 「プロセス」という概念の登場  有限のハードウェア資源を分け合う  「資源管理」が OS の機能として認識される  特権レベルという考え方の導入  ファイルの所有権といったセキュリティの概 念の萌芽が産まれる  管理者対ハッカーの長い戦いの始まり
  • 10. MULTICS①  MIT の Saltzer 教授を中心に、 GE ( 後にコン ピュータ部門を Honeywell に売却 ) 、 AT&T ベル研究所の共同研究による理想の OS  高水準言語 (PL/I) による実装  仮想記憶の実現  完全なセキュリティモデル  ダイナミックリンクライブラリ  1964 年、 GE のフラッグシップモデル GE ー 645 をターゲットに始まる
  • 11. MULTICS②  理想が高邁過ぎて実装が遅れに遅れる  ベル研が撤退を決定 (1969)  紆余曲折あったものの完成はした (1975)  が、 ビジネス的には大失敗  しかし、そこで提唱されたアイディアは非常に 革新的であり、今の OS に取り込まれている  仮想記憶などのアイディアについては論文とし て公開していたため、それを読んだ日立の技術 者に実現の先を越されるという逸話あり
  • 12. UNIX の誕生①  ベル研の Ken Tompson と Dennis Ritche ほか  MULTICS から撤退してちょっとヒマになった  ちょっとした暇つぶしに研究所に落ちてるミニ コン (PDP­7) でゲームでも遊べる OS 作ろうか  仮想記憶? 要らね要らね。  ダイナミックリンクなんか役にたたんだろ  アセンブラでごりごり書いちゃえ  んでできたのが UNIX (1970)  後に Ritche  が「俺の作った言語で書こうよ」 と持ちかけて C でポーティング (1973)
  • 13. UNIX の誕生②  UNIX の偶然  研究者が使いたいものに割り切った仕様だった ので、研究機関や大学に好評  AT&T は当時ソフトビジネスが禁止されていた  欲しいところ(研究所や大学)に実費で配布  規模もそこそこなので OS の研究にちょうどいい  仕様が小さい言語 (C) で書かれていたので移植性 が高い  研究機関・大学における標準の地位を得る
  • 14. 西海岸から来た悪魔君  UNIX のソースコードを受け取ったところに UCB (the University of California, Barkeley)  が  何人かのスキモノがハックしまくり  C­Shell, vi, TCP/IP socket,  仮想記憶 , ...  これが Berkeley Software Distribution (BSD)  ぶっちゃけ近代的 UNIX のネタは全部 BSD が仕 込んだといっても過言ではない。 ちなみに Stanford 大で Stanford University Network というハードウェアを作って たハッカー Andy Bechtolsheim とビジネス屋の Scott McNealy らを誘って BSD のコアメンバー Bill Joy が起こした会社が SUN ですね。
  • 15. 視点を変えて~言語マシン~  厳密な定義は置くとして、 OS とはハードとソ フトと人をつなぐもの、と雑駁にいうと、 「ある言語の中だけでそのコンピュータの全 機能が扱える」ものがあったら、その言語は OS と言えるじゃないか!  Lisp マシン (Symbolics, LMI,  InterLisp/D, ELIS)  今だと Emacs が近いかも。  Pascal マシン (P­code  マシン )  Smalltalk­80 (Alto)
  • 16. マイコン登場  Intel が出した 8080 というチップをきっかけに 噴出した自作コンピュータブーム  高水準言語を使いたいという声に、ダートマス 大学で発明された BASIC という教育用言語に 目をつけた人たちがいた  その中にはヒットしたマイコンキット MITS  Altair 向けに BASIC を作って売った Bill Gates と Paul Allen のコンビも  これは「ソフトを売って儲けるってありなん だ」というビジネスモデルを発明したというこ とで画期的な事件ですが OS とは関係ないね
  • 17. マイコン BASIC 時代  初期のマイコン用 BASIC は初期汎用機のアセ ンブラと同じく OS 的機能はなかった  Apple ][  での革新= OS 化  電源 ON で ROM から BASIC  フロッピーディスクのファイルを 管理できる  日本における各種 BASIC 標準搭載マシンにつ いても同様であり、これが「始めて触れた OS らしきもの」という人は多いのでは?
  • 18. CP/M & DOS  CP/M (by Digital Research Inc.)  8 ビット時代を席巻した OS  PC­DOS / MS­DOS (by Microsoft)  DOS = Disk Operating System  IBM が PC に搭載した OS  ほんとは IBM は CP/M 86 を考えてたんだけど、 約束をすっぽかされて急遽 MS が手をあげた  MS は他から買ってきて大急ぎで仕上げた  肝心なのは、どちらもせいぜいファイル管理 ぐらいしか機能を提供してなかったこと
  • 19. 笑ってお仕事 Windows!  OS と言える初の Windows 、 Windows 95  の登場  ほぼ全ての資源管理は Windows 側に移る  それまでは DOS や BIOS に多くを依存  MS 自ら「 Operating Environment 」と言っていた  32bit CPU の機能を利用し、今までの擬似マル チタスクでなく完全なマルチタスクへ移行  ただし  堅牢性やセキュリティよりも互換性を重視した
  • 20. ちょっと脱線~マイクロカーネル~  OS の機能はどんどん肥大化  プラットフォームも増大  OS から「本当に必要な部分」を切り出して、 それ以外の機能はその上に載せればいいん じゃないか?  そしたら移植しなきゃいけない部分が減るよね  「マイクロカーネル」という概念の登場  CMU の Mach カーネルが有名  「これからの OS は全てマイクロカーネル」?
  • 21. Mac OS X のご先祖 NeXTstep  「ソーダ水売り」に Apple から追 放された Steve Jobs が世に問うた ワークステーション NeXT Cube  商売としてはまあアレでしたが……  その OS 、 NeXTstep は Mac OS X のご先祖  Mach  カーネルの上に BSD を載せる  Interface Builder で GUI プログラミングも楽々  Objective­C で先進的オブジェクト指向開発!  Display Postscript によるクールな GUI
  • 22. WNT == VMS++  MS は DOS から発展した Windows の限界を感 じ、もと DEC の Dave Cutler をスカウト  NT = New Technology  マイクロカーネルを採用  Win32 以外に POSIX (Unix)  なども動作  x86 以外に DEC Alpha 、 IBM PowerPC 、 MIPS などの CPU アーキテクチャにも対応  新しいファイルシステム NTFS  詳しくは「闘うプログラマー」読め  今の MS の繁栄を築いたが、時代とともに NTFS 以外はほとんどなかったことに……
  • 23. 国産 OS ってどうよ①  1960 年代の汎用機全盛時代は各社 ( 富士通、 日立、日本電気、東芝、三菱、沖など ) は独 自アーキテクチャで OS 開発も行っていた  1970 年代に入ると IBM System/360 という歴史 的名機が誕生(話すと長くなるので割愛)  非関税障壁で産業保護を狙うが守りきれない  そこで 1972 年、業界再編により「互換機路 線」を指示  独自アーキテクチャ、独自 OS の道を断つ  だから役人って奴は……
  • 24. 国産 OS ってどうよ②  TRON (The Real­time Operating system Nucleus)  東京大学、坂本健助教授 ( 当時 ) 提案  いろいろ派生はあるけどここでは B­TRON の話  B­TRON  仮身・実身モデルを中心としたユニークな OS  通商産業省の外郭団体 CEC によって全小学校へ の標準環境としての導入が決まりかける  が、アメリカから非関税障壁とのクレーム  え?国際規格だから誰でも実装できるんだけど?  結局ビビってお流れ  だから役人って奴は……
  • 25. Minix Operating System  独禁法の縛りが解けて UNIX のソースコード は手軽に手に入れられるものではなくなった  機能が増えた代償に OS の勉強として手軽に読 んでいじるものではなくなってしまった  アムステルダム自由大学の A.S.Tanenbaum 教 授が自著の付録として 16bit PC で動く軽量な 学習用 Unix like OS 「 Minix 」を開発  だれもがいじれ、全容が把握できる OS  書籍としての copyright だったため自由に改変で きない不満が募る (32bit 化、仮想記憶… )
  • 26. まずは歴史から~ Linux 誕生~  ヘルシンキ大学の院生 Linus Torvalds もこの状 況にイライラしていた  いっそのことフルスクラッチで作っちゃえ!  できたよー、と Minix  コミュニティに投下  一気に大ブレイク! これは別に Linus が天才だったわけでもなければ Minix がへぼかった わけでもない。たまたまインターネットによるコラボレーションという 時代の波にうまく乗ったこと、 Minix が最初に書かれたころに比べると 高性能の PC が入手しやすい時代になっていたということ。 要はタイミングが全て。
  • 27. AST 先生 vs Linus 論争  詳しくはネットで見ろことで一点だけ、  AST 「今更モノリシックカーネル開発するとか 何?  Linux は i386 しか考えてないやん?」  Linus 「じゃ成功したマイクロカーネルって? 先生の例は商業的に成功してないよね」  さて 2010 年になってみると  今純粋な形で商業的に成功しているマイクロ カーネルは Mach ぐらいだが、これは偶然  Linux は 10 を越えるプラットフォームに対応
  • 28. まずは歴史から~まとめ①~  非常に大雑把にいってしまうと組み込み系を 除く OS は次の三つに集約されてしまった  汎用機用 OS/360  系列  POSIX  互換 OS (いわゆる Unix Like OS)  Windows NT 系  Mac  は?  OS をどこまで OS として定義するかだけど、 Mach + BSD  にガワをかぶせただけという オレ解釈(異論大歓迎)
  • 29. まずは歴史から~まとめ②~  研究レベルはともかくとして、完全に新しい 概念の OS というのは長いこと現れていない  しかし、別の潮流が  趣味としての OS  自分が作りたいから OS を作る  今ある概念を一度捨ててみたり  プロジェクトとして成立したものはなさそうだ が、多分作っている人たちが望んでいない  OS 作りを個人のホビーとする動き
  • 30. Agenda  まずは歴史から  OS の「本分」って何だろう?  ネタになりそうなキーワード列挙
  • 31. 歴史を見てきましたが 出来事 概念 OS の誕生 簡易的なジョブ管理 TSS マルチプロセスの実現( CPU の仮想化) プロセス管理 特権レベルの導入 3A ( 認証・権限・課金 ) の概念の導入 MULTICS 高水準言語 (PL/I) による実装(移植性) 仮想記憶 共有ライブラリ UNIX システム記述専用言語 (C) による実装 ( 移植性 ) マイクロ ハードウェアに近い層とそれ以外の層の分離 カーネル 恣意的なまとめ: OS とは「資源を管理」するように進化してきた
  • 32. OS = 「資源」の管理  「資源」=「物理的資源」+「論理的資源」  「物理的資源」=ハードウェア、もあれば  物理メモリ  記憶装置  I/O…  実体がない「論理的資源」もある  タスク  プロセス  メモリ  ファイル…
  • 33. OS = 資源の「管理」  「管理」といって具体的に何を指すのか  新しい資源を作ったり、消したり、順序を入れ 替えたりすること  プロセス管理・ファイル管理・メモリ管理  有限の資源を無限に見せかけること  仮想記憶・タイムスライスによる擬似並列処理  プログラマにいろいろな物理資源を抽象化して 共通に見せること  ファイルシステム・ Hardware Abstruction Layer  移植性: H/W をアプリから隠す
  • 34. UI は?  UI は OS じゃないの?  一般的な定義では、 OS には含まない  UI と OS は切り離して存在しうるため  OS の上に「殻となって」機能するから「シェ ル」と呼ばれる  でも GUI がない Windows や Mac OS X って?  技術的には切り離し可能(のはず)  しかし現実問題、シェルが提供している機能を アプリケーションが使いまくりなので不可分  これは技術じゃなくて商品性の話
  • 35. Agenda  まずは歴史から  OS の「本分」って何だろう?  ネタになりそうなキーワード列挙
  • 36. お詫び  ちゃんとした内容で書こうと思ったんですが 知識と時間がなくて余裕で間に合いませんで した。  ということで思いつくキーワードをでたらめ に列挙します  体系的な話をどうするかは検討しましょう
  • 37. プロセスとスレッド  プロセス=多くの OS における最小の実行単位  独立したメモリ空間を持つ  スレッドはプロセスと似ているがメモリ空間 を共有するのが違い  一個のプロセスの中で複数のスレッドが走る  コンテキスト(実行環境)スイッチング  CPU の時分割処理とマルチ CPU の割り当て  擬似マルチタスクと真のマルチタスク
  • 38. メモリ管理  ハードウェアのアドレスマップと実メモリと 仮想記憶の関係  ページ IN ・ページ OUT の考え  メモリ管理ユニット (MMU) の仕事  メモリブロックの割り当て戦略
  • 39. ファイルシステム  そもそも OS においてファイルは必須の概念?  例えば Palm OS  にはファイルはなかった  ファイルシステムの基礎概念  コンテンツと管理ブロック  ジャーナリングファイルシステム  Linux の次世代 FS (Raiser FS, Btrfs) のソースと か読むのも面白いかも
  • 40. ハードウェアの抽象化  UNIX における抽象化の例  デバイスをファイルに見せる  create / read / write / close  ついでに Plan9  とか  デバイスドライバ  OS の提供する I/F にしたがうことで「 OS  (を 経由してユーザー)から見てすべてのデバイ スを共通に扱える」ためのモジュール  各 OS における H/W の自動認識
  • 41. ユーザインタフェース  一例として X の基礎  ウィンドウの管理  HID H/W イベントの振り分け  キーボード割り込みを受けてから特定のアプリ ケーションがそのイベントを受けるまで  シェルサービス  OS ではない、シェルが提供しているサービス  Windows のショートカットなど
  • 42. 特権概念  ユーザーモードとカーネルモードの概念  x86 を例にして特権モードへの遷移を見たり  特権モードでできること、できないこと
  • 43. 勝手に書き散らして来ましたが  私個人としては OS そのものを作ることにはあ んまり興味がないです(だから「 OS 自作入 門」の輪読とかはちょっと違う)。  もっと一般的な話を、微妙にハードウェアに はみ出したり、アプリ側にはみ出したり、っ て感じでやっていけたらいいな。  こんな変な OS があるよ、という話もしたい。  とはいえランダムな雑談はちとしんどい  体系的なテキストが欲しいよね。
  • 44. そこで提案。  天下の MIT のテキストを拝借しませんか?  http://ocw.mit.edu/OcwWeb/Electrical­ Engineering­and­Computer­Science/6­828Fall­ 2006/CourseHome/  Lecture Notesも一通り揃ってるし  ボリュームがありすぎるというなら興味がある ところだけつまみ食いしてもいいと思う  いかがでしょうか?