2016年5月20日金曜日
2016年5月18日水曜日
2016年5月2日月曜日
2016年5月1日日曜日
2016年4月29日金曜日
カーネルの本質を知り演習形式でLinuxの勘所を捉える
実習Linuxカーネル―理論と実習 カーネルを効率的に理解するための実習書
この書籍は概要編と実習編からなる
概要
- カーネルの本質はリソースの抽象化にある
- カーネルが提供する抽象化されたリソースに対しては、ある統一した手続きにで、デバイス(装置)にアプローチできる
- 本質的に、プログラムは計算機械(マシン)を操作する手段といえるが、マシンの細かい仕様(個々の装置に対してどのような信号を送れば動作するのか)を知らなくても、カーネルを通じて命令を送ることができる
- あるいは、仮想的な機械を想定して、コンピューター上に同じ手続きで装置を作ることもできる。メッセージやセマフォといった仕組みや、いわゆるデータ型オブジェクトといった概念も、このリソースの抽象化が実現させている
- プロセスとはリソースの中でも、プログラムを実行するCPU操作の抽象化である
- Linuxにおいてはリソースの操作はプロセスによって行われることが大前提である
- OSは「プロセスとリソースを管理」し、それらリソースの「メモリを管理」し、外部接続されていたり仮想的だったりする「デバイスを管理」し、それらデバイスへの媒体となる「ファイルを管理」する
実習
- とりあえずカーネル変数を/porcを使って読み込んでいく
- 並列処理を考慮に入れたLinux上のプログラミングを体験する
- ソーネルのソースを読んでみる
- カーネルの一部となる、スーパーバイザーモードで動くプログラムを作る
- システムコールの追加
- 共有メモリ機能の変更
- 仮想メモリ機構の理解とチューンナップ
- プロセス間の同期メカニズムである「イベント」について学ぶ
- スケジューラの変更
- プロセス間で利用するパイプをデバイスドライバとして実装
- ディスクドライバの変更
- ファイルシステムの作成
- 1973年 ニューヨークで開かれたSOSPのワークショップにおいてデニスリッチーとケントンプソンによって”The UNIX Time-Sharing System (Abstract).”が報告される
- 1969年からから開発が始められたUNIXの設計思想が知られ始めたのは1973年のSOSP報告書による
- UNIXの設計思想には二つの新たな方向性があった、一つはOSの小規模化と機能の軽量化であった
- 1973年時点で、OSと呼ばれるソフトウェアは大規模、多機能なソフトウェアという考え方が多い中、UNIXの設計思想は革新的だった
- 大学を中心にUNIXは普及し始め、1990年代にはメジャーなものになっていったが、同時に肥大化、巨大化していった
- 1991年に開発が始められたLinuxは初期の設計思想に基づいた小規模化、軽量化が推し進められている
2016年4月26日火曜日
2016年4月25日月曜日
Frothあれこれ
- Forthは1970年ころ、チャールズムーアによって開発された。
- Forthはスタック指向である。
- Forthの実装で活発なものはGNUのGForthである
- Forthは逆ポーランド記法に準拠している
- 逆ポーランド記法の略称はRPN(Reverse Polish Notation)
- 逆ポーランド記法は日本語の文法と相性が良い
- Forthはその透明感のある性質上、容易に暴走プログラムを作ることができる
- 全てのプログラムが論理的にLISPベースであるように、全てのプログラムは具体的にはForthベースである。
2016年4月22日金曜日
2016年4月17日日曜日
登録:
投稿 (Atom)