タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

unixとsourceに関するsyo-yuのブックマーク (2)

  • カーネルを読んでみる - Plan9日記

    UNIXカーネルがC言語に書き換えられたのは3rd editionであり1973年のことなので、このバージョンのソースコードはPDP-11のフルアセンブリである。しかし、4221行とコンパクトだし、コメントも満載なので、アセンブリに対するアレルギーがなければ、pre K&R Cの文法に惑わされなくてよい分、V6カーネルよりも読みやすかったりして。どちらにしろPDP-11アーキテクチャの理解がある程度必要だけど。Gordon BellのページにPDP-11 handbookのコピーがあったので、興味がある人はそちらもどうぞ。 まずはシステムコール呼出しから。次のコードは、cat.sのopenシステムコールを呼び出す部分の抜粋だ。 2: mov r0,0f sys open; 0:..; 0システムコールの実現には、sys命令によるトラップを利用する。この際にパラメータをどのようにユーザからカ

    カーネルを読んでみる - Plan9日記
  • UNIX 1st ed.カーネルのソースコード - Plan9日記

    以前、「よみがえるUNIX 1st ed.」というエントリを書いたが、そのソースコードが公開されていた(unix-jun72)。SIMHシミュレータを使って、当時のUNIX環境を再現することもできる。すばらしい! まず、Subversionからコードをチェックアウトする。 $ svn co http://unix-jun72.googlecode.com/svn/trunk/ unix-jun72-read-onlypagesの下にOCRから取り込んだカーネルのアセンブリコード(u0.s, ..., u9.s, ux.s)とinit、shがある。まだこのころはアセンブリでカーネルが書かれていた。各ソースコードの概要はこんな感じ。 u0.s: 初期化 u1.s: システムエントリ、システムコール u2.s: 残りのシステムコール u3.s: プロセススイッチ、スワッピング u4.s: キャラ

    UNIX 1st ed.カーネルのソースコード - Plan9日記
  • 1