ウォンツテック

そでやまのーと

不可解な現象に遭遇

いつも通りsodexをqemuから立ち上げようと $ sudo qemu -fda bin/fsboot.bin -net nic -net tap,ifname=my-tap とした所、何故だかext2ファイルシステムの初期化の所で止まって先に進まずqemuが固まる。。 そういや昨日ちょっとnic回り書き換えたなぁと思いs…

復旧

前回の実験で起動しなくなったメイン開発機を復旧しようと思い http://openlab.jp/puppylinux/ からpuppy linuxを拾ってきてUSBメモリに http://linux.hakaede.com/Entry/3/ の方法で設定します。 これで起動出来たのでさて復旧だとディスクをマウントしてみ…

 Linuxカーネルの開発環境

Linuxのソースはtarballを拾ってくれば簡単に読めるのに肝心のカーネルをいじろうと思うと開発環境構築の日本語ドキュメントも少なくちょっと大変ですよね? という事でqemuを使った簡単Linuxカーネル開発環境の構築手法を載せておきます。(僕の開発PCはこ…

grub

ちょっとLinuxのスケジューラをいじろうかと思い、qemuを使ったLinuxカーネルの開発環境構築の実験中にメイン開発ノートPCのMBRを書き換えてしまった模様。。 再起動したら「GRUB 」という文字列が出力されて固まってます。僕も固まりましたorz Linuxカーネ…

OS作成 進まない

最近忙しいです。まぁ完全に僕の能力不足により忙しいのでそれはそれでいいのですがNICドライバの開発が全く進みません。なんかremote DMAの転送がうまくいってません。DMAバッファに書き込まれている様子がない。。あと水曜までに書かなければならないある…

帰りの電車で30代と思しきサラリーマン二人組みの会話 「おれ経営学と法学を勉強しなおしたいんだよね、でも余裕ないしな」 「おれは文学かな。あと民俗学の授業とかちゃんと聞いときゃ良かった」 今からやれよ。 勉学に年齢制限なんて無いし大学行かなきゃ…

OS作成 - NIC編

ne2000 NICドライバ実装中。 qemuはne2000に対応してるけどやっぱ実機でテストしたい。今度互換NIC探してこようかな。

わからない!!! s-m-n定理の証明に使われているゲーデル数の最初の(2の)冪数に1と3が使われている理由が全く分からない。必然性がないような気がする。2でも4でも5でもいいんじゃ。頭痛いお... 続き わかっちった。 著者が正規化されたNプログラムPをゲー…

OS作成 - NIC編

さて、いよいよNIC編をスタートさせました。TCP/IPの実装(または移殖)はsodex開発当初からの最上位課題で、その土台であるNICドライバの開発に取り掛かります。対象のNICは有名なNE2000とします。 NE2000ではDP8390という制御コントローラを使用しており、…

面白い定理。 述語 を とおくと、 は帰納的述語ではない。 ※とは簡単にいうとプログラムと入力列が与えられた時、計算結果を出すかいなかの述語。これから導かれる事柄として以下がある。 あるプログラムに対して、どんな入力に対しても必ず何らかの解答(エ…

帰納的関数の主要定理は大体理解したので一つ問題を解いてみる。 問題 1.4.9 問題 述語 の特徴関数 が帰納的関数のときpを帰納的述語という。 帰納的述語の最小関数 は (定義域が)の帰納的関数である事を示せ。 証明 帰納的述語の最小解関数 に最小値が存在…

あー

悩む

OS作成

NE2000の仕様読んでます。 初期化送受信自体はそれほどむずかしくなさそう。

アメリカのドラマがおもしろすぎる件について

24シーズン6は異常。先々週くらいの土日に2日で一気に見てしまった。今はLOSTシーズン1を見てるけどこれも結構おもしろす。

1chipMSXを先週の土曜に注文してまだ来ない件について。

でも今日非通知の電話あったからそれかな。どちらにしろそれの開発に携わった人が会社に居るので気にしてないですが 1chipMSXはFPGAでCPUが書かれていてVHDLで色々出来るらしいのでついつい衝動買いしてしまったのですが、VHDLの勉強をしようか悩み中。さく…

OS作成

mallocにややこしいバグが。。。カーネルからユーザランドにポインタ経由で渡した構造体の要素がおかしな値になってる。と思ったらユーザランド用のヘッダーファイル更新ミスでした(カーネルと共有しないとまずいよなぁ常識的に考えて。。)

が原始的関数である事を示すのに以下の補題が必要なんだけどその証明が4行しかなくて一読しただけでは分からなかったので論理的に細かく追ってみた。 前提 真偽の定まる関数pを述語と呼ぶ。 述語pに対してを特徴関数とよび、その定義は 述語pが真の時0、偽の…

計算機科学の数学的背景に興味があるので以下の本を購入。計算論 計算可能性とラムダ計算 (コンピュータサイエンス大学講座)高橋 正子 近代科学社 1991-08売り上げランキング : 135427Amazonで詳しく見る by G-Toolsとりあえず問をちょこちょこやっていく形…

OS作成 qemuのバグ?

またしてもカーネルサイズに依存して起動できない問題が発生。しかし今回はbochsでは起動出来るのでどうやらqemuが怪しい気がしてきました。qemu本体というよりint 0x13のBIOSシステムコール(FDCからの読み込み)が失敗してるのでqemuが使ってるBIOSの方く…

OS作成

signalとkillを実装しました。とりあえず問題なく動いてそうです。 下の画像は何もしない「test」コマンドでプロセスを生成してそのプロセスをkillでSIGKILLシグナル送って殺しているところです。 さて、次何やるかなー

OS作成

signal実装中。例によってpage faultが発生しまくります。とりあえずkillとsignalを実装して後は放置予定です。

MAC

Parallels Desktop for Mac上で動くwindowsを見てたらMac欲しくなってきた。。すごいさくさくなのれす。これ見るとWin上のエミュレータはゴミ。これにWinとLinux乗っけてメイン開発機にしたいです安西先生。 ※今は開発がノートPCに入れたLinuxでその他がデス…

OS作成

waitpid実装。昨日のpage faultは_exit()の中でprocessのstateをzombieにした後そのまま返ってしまっていてそのまま何のコードもない0x8048000付近を突っ走ったために起きた現象でした。eshellでwaitpidを使ってコマンドの終了を待たせるようにしたので余計…

OS作成

waitpid実装中。スケジューラ回りをcontext保存部、スケジューリング部に分離し、また親、子、兄弟プロセス関連を整備。exitするとプロセスはZOMBIE状態になるようにしwaitpidをした時、子プロセスにZOMBIE状態のプロセスがあればSTOPPED状態にして次回その…

MEG-OS

私の知る限り唯一64bit自作カーネル書いてるMEG-OSの中の人(id:megosさん)が64bitOS作成日記書いてるYO! ハァハァしながら読ませていただきますw

OS作成

PIT(8254チップ)でどうやってタイマとスケジュール割り込みを共有しているのか謎だったけどコード見て謎が解けた。以下Linux-0.12の該当コード。(このバージョンはいい教材です。僕はLinux 2.6.xxを読んでいて理解不能でつらいときはminixと共にこのバージ…

OS作成

PITを実装(といってもPITレジスタにカウンタ値設定するだけの3行コード)

OS作成

メモリ上のダンプを見たいけどqemu、bochsだとアドレス指定して一覧表示させて見るという方法があるにはあるけど面倒だという事でメモリダンプシステムコールを実装。これで特定プロセスのリニアアドレス上のメモリダンプをserial経由で以下のようにファイル…

OS作成 - シェル編

ユーザランドmallocのコード中にmuse_list(使ったメモリ構造体を連結しておくリストのhead)の操作中にpage fault起こすので調べてました。最初は.bss領域を初期化したのがまずいと思ったのですが。特に0で初期化されてまずい領域もなく、次にリストが空の時…

カーネル

カーネルは様々なパーツの一部だけど極めて重要なパーツだと思う。人間に例えれば心臓+静脈動脈+神経系だよ。数学で言えば公理系。物理学で言えば法則。そんじゃコンパイラは何かっつーと言語で書かれた定理を公理系に変換する機械。