CMagazine2004年7月号に「オリジナルOSを作ろう!」と言う記事があり、 私もこれを見て買った一人です。 今現在OSらしきものを作っていることはこのブログで書いている通り。 CMagazineも参考にさせてもらっていますが、 私が参考にしようしようと思うと、ど…
以下の図書を参考にしています。 まずCPUの動作の原理などに関してはこれ。はじめて読む486―32ビットコンピュータをやさしく語る作者: 蒲地輝尚出版社/メーカー: アスキー発売日: 1994/09メディア: 単行本購入: 20人 クリック: 165回この商品を含むブログ (8…
昨日の日記は書き直しましたが、 本当に言いたかったことを書いてみる。 今後は私の事や考えを中心に書く事にする。 そこに他人の発表物を引き合いに出さない。 今後はこのブログは、完全に「私のOS作りの発表場」になる。 昨日書いていた事の題名を考えるな…
プログラミングに関する用語では、車輪の再発明という言葉があります。 C++のお蔭でソースコードの再利用が進んでいますが、 ブラックボックスのまま利用しているわけで、実はこれは恐ろしいことだと気づいていないわけです。 ブラックボックスで塗り固めら…
はい、タイトル通り成功しますたよ。 とは言っても、まだ完全な対応ではありません。 スタティックな変数のための領域に関しては未実装だからです。 とは言ってもプログラムヘッダーを見れば大体分かるわけで、すぐに実装できます。 とりあえず必要性が出て…
実は今までiretを使用していなく、普通にC言語の関数として、割り込みハンドラを定義していました。 割り込みハンドラと同じコードセグメント上でプログラムが動作しているときは、 全く問題がありませんでした。 しかし今後はユーザアプリをOSから独立させ…
あのね、今確かにWinnyは問題視されているけど、貴方達は「セキュリティ」という言葉の元に、 税金のはけ口を探っているのですかと聞きたい。 「セキュリティ」というものには二種類ある。 まずソフトウェアによる情報流出に関するセキュリティ。 これは基本…
やっとダイアリー市民になれたぁぁ。 と言う事は置いといて、久しぶりに画像を上げてみる。 白文字で数字が並んでいるのは、読み込んだファイルのデータなので、 無視してもらっていいとして、問題は「A」と「S」いう文字ですよ。 この2つの文字は交互に色が…
とりあえずユーザタスク用に確保したメモリに FAT12からファイルを読み出し実行できる事を確認するために、 ELFではなく、そのままのバイナリで実行できるプログラムを作成し、 実際に実行して、その動作を確かめてみた。 やはりFAT12を解析できる事はとても…
さて、さきほどからFAT12の解析によるファイルの読み込み作業に取り掛かり、出来た。 これが出来ると、ELF形式のアプリを任意のアドレスに確保することが出来るようになるわけで、 つまりタスクの実現に大きな一歩を踏み出したことになるのである。 しかしプ…
>なぜdataセクションは0x1080なのか。0x0080は余計じゃねぇかと思うだろう。 という書き出しでdataセクションについて書いたが、間違っていました。なぜページの最初ではなく、あえて途中なのかと言う理由は、 例えば0x1000から始まるページにデータをおくと…
一日でELFの解析が終わるとは思っていなかった。 前に書いたが半月と読んでいたが、こんなに早く終わるとは。 この前調べたときよりもかなりいい感じで理解が進んだ。 やはり体を動かして、実際にELFの構造をダンプするプログラムを作る事は ELFの理解に大い…
開始アドレスが標準で0x80000000辺りにある謎はおいておいて、 ひとまずELFの構造を知る作業に取り掛かった。 まずはとりあえずELFヘッダ、プログラムヘッダ、セクションヘッダの構造体を 定義し、適当に作ったELFファイル(apptest.elf)を読み込んで、 その…
ELFのロードと言う変態度満点の作業に突入したどぉぉ。 でもまずはCygwin上でELFファイルの構造を 色々と調べるためのプログラムを作る。 これに半月を要すると予想してます。 とりあえず固定アドレスを0x00000000にすることで、 ページングを利用しないで、…
特に報告はしていませんが、微々たるものではありますが進んでいます。 今現在プロテクトモード、つまり32bitモードに突入し、 FAT12というファイルシステムの解析プログラムを作成しています。 これによりファイルの読み込み、および書き出しが可能となりま…
あぁ〜、疲れた。皆さん一日お疲れ様でした。
OSの機能の一つにメモリ管理機能というものがある。 とりあえずFATの解析をするためには、FDのセクタを読み込んでごにょごにょと 解析をする必要があるので、とりあえずメモリ管理でもやってみようと思った。 別に unsigned char data[512]; としても、たぶ…
ホントアセンブリでFDC制御プログラムを書いたときよりも すっきりしすぎていて、怖いくらいだ。 まぁ前回も書いたが、毎回毎回つまづく人間です。 また今回も例によって、つまづいたのであります。 out8(0x81, (char)(addr & 0x00ff0000) >> 16 ); こんなコ…
新しい事を一つ始めると、必ず足踏みをしてしまう。 よう時間がかかるもんだ。キーボード割り込みにしてもそう。 まぁ俺が雑誌を鵜呑みにしたから、悪いんだけど。 何とか割り込みも受け取れるようになって、 これからはとりあえずFDの内容を読み取れるよう…
「エミュレータと実機における動作の違いによるバグ死」 まるで何かの研究名みたいな見出しにしてみましたが、 要はエミュレータのいい加減な振る舞いのお蔭で、実機との動作の違いがあって、 今までずうっと悩み続けてきたわけさ。 具体的に言えばFDCの制御…
えぇ某はりぼてOS本を出しているKさん、凄いなぁ。 俺が数日悩んだ事を二秒で解決しちゃった。 知識こそ全てって感じっすなぁ。 エミュレータ上では何とかFDCの制御も出来るようになり、かなりいい感じである。 ところがぁぁぁぁ、実機ではなぜか動かないの…
とりあえず全アセンブリで書いているからかなぁ、挙動がおかしい。 これが出来れば、ELFなども色々と扱えて面白くなるのにぃ。 「ELF形式」で検索してくる人がいるなぁ。 申し訳ない。もう少しお待ちください。
FDからブートしてsecond.binというファイルを探し出し、読み込んで実行する。 ここまで出来ています。 さてsecond.binでは32bitへの移行など重要な作業を行います。 これくらいは問題が無いわけですが、今回IDTというまぁ32bitにおける 割り込みを初めて扱っ…
久しぶりに真面目にプログラミングをした。 アセンブリプログラミング。 アセンブリでブートセクタを書いていた。 具体的にはFATを解析して、 ルートディレクトリに存在するSECOND.BINを探し出し、 メモリに読み込むというもの。 これだけで512バイト行って…
本当は春休み中にシングルタスクは最低でも達成したかったのだが、 FAT12操作ツールの完成で春休みは終わった。とりあえずFAT12の解析が完璧に終了したので、 暇を見つけて、FAT12の構造をネットに公開したい。まぁ大したものではない。金を掛けて学ぶほどで…
春休みも終わり、新たな気分で勉学に望めそうです。しかし、私の恩師が亡くなっている事が分かり、 凄くショックです。まさか亡くなるなんて夢にも思っておりませんでした。本当に昨日から泣きっぱなしです。人はいつか死ぬのは分かっておりますが、 こんな…
せっかくの春休み。意味は無いが、やる気が出ない。 CSを買って、寝不足だからだろうか、とにかくイライラする。 う〜ん、困っちんぐ。 どうしたものか。休み疲れか。バイト落ちてから、何だかやる気が出ない。 あぁアンパンマソ様、僕に新しい顔を下さい。 …
バイトの面接に落ちて、凹んで何もする気にならんちゅうねん。 何で落ちたんだか不明やね。 でも新しいバイトを探して、偵察してきたんだが、 全然悪くない雰囲気だったので、やろうかと考え中。 後、生活がめちゃめちゃになっているんで、 書く気が起きなか…
危なかった。助かりました。というか自作自演に近い感じですな。ただアンテナの調整が甘かった。予想をはるかに凌ぐ微妙っぷりでした。 えぇっとホントミリ単位の世界ね。びっくりんこ。とりあえず夜も安定して映るようになり、泣きそうなほど嬉しいっす。今…
激しく邪魔だな。GoogleAdsenseだけでもウザイだろうに、 こんなのが付いたら、 「こんな糞ブログの分際でぇ〜!!キィィーー!」 って言いたくなるだろう。 ネロ「分かっているよ、パトラッシュ。もう眠いよ。」 パトラッシュ「ネロさっさと寝ろ」 ネロ「そ…