builderscon tokyo 2018 2018-09-08 10:00-11:00 @ Track-C
![os-that-we-should-know?slide=81](https://cdn-ak-scissors.b.st-hatena.com/image/square/2d8e77f31b2044151fa0603f570f89f3ac61cbae/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fab3619702122450493e942dbe0b9f7dd%2Fslide_0.jpg%3F10717642)
builderscon tokyo 2018 2018-09-08 10:00-11:00 @ Track-C
東大の情報科学科では3年の秋学期にCPU実験という、自分たちでCPU、コンパイラ、シミュレーターを作ってレイトレーシングを動かすことが単位要件の名物実験があります。僕らの班では12月初旬に単位要件を満たすCPUは出来ていたので、2/20にあった成果報告会までの間にIwashi班という自作CPU上でlinuxを動かすことを目標とした余興班を作ってこのエントリのタイトルにあるような結果に終わったのでその報告をしたいと思います。 コンテキストスイッチしている画像: 目次 目次 対象とする読者 自己紹介 できたこととできなかったこと 技術的な詳細 ISA よかったところ 悪かったところ 結論 ステート管理 Floating point UART 自作OS/Shellの仕様 動機 やること 実装方針 増えるレジスタ 増える命令 MMUの挙動 タイマ割り込みの挙動 iretの挙動 Kernelの実装
MINIX 3.3がリリース。1万2700行ほどのマイクロカーネル、ARMサポートとクロスコンパイラなど対応 MINIXは名前から想像できるとおり、LinuxやBSDなどと並ぶUNIX系OSの1つで、もともとはオランダ・アムステルダム自由大学のアンドリュー・タネンバウム教授が学習用のOSとして開発したものです。名前の通りコンパクトな実装や、マイクロカーネルを採用した、いわゆる綺麗なアーキテクチャを備えていることも特長です。 そのMINIXの最新バージョンとなるMINIX 3.3が公開されました。 ARMプロセッサ対応、NetBSD互換性向上など 最新バージョンでもコンパクトな実装とマイクロカーネルアーキテクチャはそのままで、カーネルのコードや約1万2700行。カーネル以外のOSのコードは分離されたユーザーランドで実行されており、例えば実行中にドライバがクラッシュしたとしても自動的に再起動さ
プロセスとマルチタスクの実現 Linuxは、多数のプロセスを同時に動作させる事が出来るマルチタスク環境を実現しています。 psコマンドやtopコマンドを実行しプロセスのリストを取得すると多数のプロセスが実行中である事がわかります。 また、これらのプロセス全てが同時に平行して動作しているように見えます。 これはどのようにして実現されているのでしょうか。 一般的に、1つのプロセッサは同時に複数のプログラムを実行する事が出来ません1。 そこで、マルチタスクをサポートするOSでは複数のプロセスを非常に短い時間ずつ切り替えながら実行する事で、体感上は複数のプロセスが同時に実行されているように見せています(図1)。 このような仕組みを実現する為にどんな機能がカーネルへ実装されているのか順に見ていきましょう。 プロセスの切り替え CPU上で処理中のデータを失う事なく現在のプロセスから別のプロセスに切り替
まずは試してみるのが、一番分かりやすいかと思いますので、最初から実験です。 この実験は常識の範囲では、コンピュータが落ちたりすることはありませんのでご安心を。 まずはソースリストです。時間計測にgettimeofdayをつかいます。 Linuxではこの関数はマイクロ秒オーダの分解能があるようです。 Pentium以降のCPUを持ったパソコンで試す場合は -DUSE_RDTSC をつけてコンパイルすると、 Pentium 以降のCPUで装備されたRDTSC という、リセット時からのCPUクロックの数を数える命令をつかって時間を計ります。 TickPerMSec には CPUの動作周波数を1000で割ったくらいの数字を書いておけば、だいたいの精度はでます。 #include <stdio.h> #include <sys/time.h> #include <unistd.h> #include
0から作るOS開発について ここではOS(のようなもの)を自分で作るための 簡単で基礎的な技術を載せています。 このホームページはC言語の基礎的な知識がある方を対象としています アセンブラなども取り扱います 何故? プログラムってどうやって動いているんだろう? OSってなんだろう? どうやって動いているんだろう? プログラム作ったことあるけどmain関数が動く前ってどうなってるんだろう? と思ったことありませんか? こんなふうに考えてもんもんとして過ごしていませんか? そんな方のためのこのホームページです! その当時 ふと疑問に思って オペレーティングシステムに関する技術本を読んでみましたが、 メモリ管理とかプロセスがどうたらこうたらと小難しいことばかりで 具体的にどう動くのか(もちろん十分具体的に書かれており 頭がついていってないだけなのですが。。。。)、 もっと言えばどうやって作るのか
システムコールについてどれくらいご存じですか?:知ってトクするシステムコール(1)(1/2 ページ) 「システムコール」と聞いて、どういう印象を受けますか? 「難しくて、自分では手に負えない」とか「使う必要を感じない」という方は多いでしょう。しかし、コンピュータを使う人ならどんな人でも、システムコールについて知っておくといろいろトクをするんですよ。(編集部) システムコール? 聞いたことはあるけど…… 企業情報システムや、Webアプリケーション、携帯機器向けアプリケーション、あるいはちょっとしたツールの作成など、なんらかの形でソフトウェア開発に携わったことのある方なら、一度は、「システムコール」という言葉を耳にしたことがあるはずだ。しかし、先に挙げたような分野のアプリケーション開発現場で、明示的にシステムコールを利用する開発者は多くない。 システムコールは、低レベルのプログラミングやカーネ
GUI(グラフィカルユーザーインターフェース)を採用したパーソナルコンピューターとして、もっとも有名なのはApple Computer(後にAppleへ社名変更)Macintosh(マッキントッシュ)ですが、GUIを最初に同コンピューターへ持ち込んだのは、同社のLisa(リサ)です。初代Macintoshは1984年1月24日にデビューしましたが、Lisaが世に登場したのは1983年1月19日。ちょうど一年前でした。 そもそもLisaの開発は1978年からと言われていますが、それを裏付ける資料は今回発見することはできませんでした。その一方で明確なのは1979年頃の同社で行われていたプロジェクト資料。屋台骨となったApple IIの後継機種と、技術的な妥協をしない高性能なパーソナルコンピューター、そして低コストのコンピューターと三つの開発プロジェクトが進行中でした。この二つ目に当たるのが今回
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く