「30日でできる!OS自作入門」
プログラミングの基礎からはじめて、
30日後にはウィンドウシステムを有する32bitマルチタスクOSを
フルスクラッチで作り上げるという入門書。
ビギナーでも無理なく作成できるようPCの仕組み・アセンブラ・Cの解説から始まり、
試行錯誤を繰り返しながらアルゴリズムを学びつつ、
たのしく自由な雰囲気でOSをゼロから構築していくという、
他に類を見ない手法による、
趣味と実用と学習を兼ね備えたOS作成の入門書です。 ム板かOSASKスレでやってくれ。
以下しりとりスレ 付録CDをAthlon64 X2マシンに入れてブートすると
はりぼてOSが起動せずにリセットを繰り返すのは仕様?
古いDuronマシンでは起動した monaすれがム板おいだされたのを考えると
こっちでやるべき話題じゃねーの?
過疎板なんだしこっちでヤローヨ monaはム板だけでなくOS板からも追放されたわけだが。 ひげぽんが2chの雑魚のレベルを遥かに超えてしまったからもう用済みなのだ これ通販で買って読んでみたけど「何これ?」って感じ
スクラッチから作るっていうくせに、たしかに作ってはいるが単なるCDからコピーすればいいだけ
自作入門なんだからコード全てにコメント入れるべきなんじゃないの?
OSlib使ってOS組んで「スクラッチから書きました」っていってるのと変わらないと思うんだけど >>16
この本についているソースコードはオマケ。
最終日にそう書いてあります。
最終日以降に自分のOSを作り始めてからが本当の自作。 本を読み終わっても自分のOSを作り始めた人などいないわけだが('A`) 読み終えてからOS自作しろっていわれても
本文にこういうものだとか、こうするとしか書いてなくて
技術的な解説なんてほとんどないから、読み終えても一からは作れないわな >>22
教科書に1+1=2しか載ってなかったら2+2で行き詰るタイプ? 例えが下手だな
ちなみに自作本よんだ?
自作本は九九を暗記させるようなもの。
1x1=1, 1x2=2, ----, 9x8=72, 9x9=81って感じで
9x9がどういう理屈で81になるのかを説明してないの。
9x9は"9を9回足した数"と言う説明があれば、9x9=81と言うのを覚えてなくても
9を9回足してみるなり、9x10=90; 90-9=81,っていう感じでも考えられる。
これが解説っていうもので、自作本の"これはこういうもの"的な説明だと別の方法を考えられない
だから自作本を読んだあとにOSを別の設計で作る人は出てこない
いいとこソースをちょっと触ってみるなりして、派生が出てくるくらい
俺もへただな つまりあれだろ?ハウツーだけで、理論的なことは説明されてない。
だから勉強にはならないし、そこから発展もない。
ただの自己満足に終わるだけ。
ただ本当に勉強したい奴は、こんな本なんか読まずに、はじめて読むi486→タネ本→Linuxカーネルの解説本だろ。
>>25
たとえが下手なのは弁解しないけど
> ちなみに自作本よんだ?
よんだよ
すぐ人にあげたけど
> 9x9がどういう理屈で81になるのかを説明してないの。
使いながら自分で原理を考えるくらいでないとOSなんか作るの無理でしょ
帰納的推論能力といえば分かるかな
> つまりあれだろ?ハウツーだけで、理論的なことは説明されてない。
それは演繹至上主義だな
ハウツーで使い方を見て自分で背景を推論する
演繹的な説明は自己流推論の答え合わせ
必要に応じて作られてきた理論は自分で必要性を感じるのが一番
そういうのは放任じゃなく適度のサポートすれば成り立つよ >>27
>演繹的な説明は自己流推論の答え合わせ
だからその演繹的な説明がないんだって Kの本のサポート
質問「ここのこれがよくわかりません」(実際には場所とわからない理由をちゃんといってる
Kの解答「よく読み直してください。 一般的な人ならわかるように書いてあるはずです」
すばらしいサポートだな
>>28
うん
だから放任じゃなく適度のサポートって書いたわけ
KにWikiでサポート受けることが前提の本なんだと思う
>>29
あちゃーそれじゃだめだな
オナニーじゃん
前言撤回
もう消える
ごめんね〜ノシ >>30はKのことを知らないでしゃべってたのか… orz >>26
はじめて読むi486→タネ本→Linuxカーネルの解説本
これでOSなんて作れるようになるんかな。
せいぜいこの近辺でウンチクをたれるだけの人になるだけの気が。
OS自作入門も卒業できないで、はじめて読むi486を読んでもさっぱり意味がわからないと思うよ。
本を読んで勉強するという発想自体がアナクロなわけだが('A`) >>35
おまいが作ったOS見せろ
それができなければ信用できない OS作れもしないカスに信用されるいわれもないわけだが('A`) >>38
最初は誰でも物真似
おまいは自分でゼロの概念を発明できたのかと小一時間(ry >>42
ふーん偉いんだね
文部大臣になって教育改革をしてくれ
話はそれからだ こ こ は 激 し い K の 自 演 で す ね ! スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、
釣り師 ↓
. /| ←竿
○ / |
. (Vヽ/ |
<> |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
|
餌(疑似餌)→.§ >゚++< 〜
の組み合わせだと思ってたんだけど、
最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
これは、どっちかというと、
,〜〜〜〜〜〜 、
|\ ( 釣れたよ〜・・・)
| \ `〜〜〜v〜〜〜´
し \
゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ
~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト>゚++<
ノ)
かと思うんだけど、どうよ? \ ∩─ー、 ====
\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんな餌に俺様が釣られクマーッ!!
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
(´⌒; (´⌒;;; 中田氏とか言いながらオナニーしてるわけだが('A`) この中に一人、童貞がおる。お前やろ?
「うん」
お前やー!!
生 活 が か か っ て る か ら 、
売 る の に 必 死 ! ! むぅ・・・、漏れは立ち読んだだけなんだが、
値段と厚さの割りに、つぶしが利きにくい本に見えたから、買ってない。
あまり続き物を意識させない構成で、三分冊ぐらいにして、
一冊あたりの単価を下げた方が、セールス的には良かったかも。 受験参考書みたいに分母が大きければ色々と奇抜な企画本も出せるだろうけど
プログラミング本なんて5000冊売れればベストセラーだからな・・・ 作者のレベルが微妙なのに、こんな本出されても・・・ねぇ。
擁護する訳じゃないけど、作者のレベルは高い方だと思うよ
ただ人間性は・・・ OSは、学べば学ぶほど現代のOSの巨大さ、そしてその思慮の深さに恐れ入ることになる レベル高いか?
サイト見てたらちゃんとDHCPすら理解できてないようだけど。
あと中学生相手に必死になるなよw
これは人間性の問題か 技術ドカタにもなれなかった奴に、厨房が群れてるようにしか見えない・・・
俺デバドラ書きだけど・・
自分がレベル高いとは思わないけどKがレベル高いとは思えない 厨房に自分がやっていることを教えられるかという違いかな
奴のやってることはこれに尽きる
俺は日常的にHaskellを使っているがガキに教える自身はない 実際は教えてるんじゃなくて、ただソース提示してこれコンパイルしたらできるよって言ってるだけ。
馬鹿を馬鹿としてしか評価できない人は今を貪る消費者
馬鹿を上客として評価できた人だけが未来を作る開拓者 Intelの資料読んだ方がよくないか?CPUに関しては。 まあ、そりゃC言語の本としても、アセンブラ(CPU)の本としても、イマイチ、っつうかお話にならないだろう
そういう趣旨の本じゃないし はぁ?俺がリア厨の頃は生入れ中田氏当たり前だったけど30のおっさんでもできてないじゃん! >>80
( ´_ゝ`)フーン
セックスできれば他のことより偉いんだ 当たり前じゃん
いくらOSを作って厨房集めてお山の大将やってても
男の永遠の夢のハーレムには近づけないだろ? あれ?リア厨の頃にやりまくったってのは日本人じゃないの?w >>89
現実はそんなに甘くないよ
中卒でドカタになって人生終了がデフォ そんなことよりおまいら
/.にキタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜ー!!
今OSを自作する意味は?
ttp://slashdot.jp/askslashdot/article.pl?sid=06/07/17/0652257&threshold=-1 >>64
OS自作入門はAmazonで300位だよ! >>95
>今OSを自作する意味は?
フリーなBTRON Kがレベル高いとかいってるけど、作り出してからもう5年以上たってんでしょ?
基礎知識がある上から5年でこれだとはずかしいんでないかい?
PC初めて触るってとこから初めても、5年あれば十分つくれると思うが >>99
M$にも同じこと言ってやって、よろしく ノシ チラシの裏
4日目
PUSHFD、POPFDが今回の俺の山場だった。ふう、疲れた。 その辺の野良犬にすら相手にされない奴よりはましだけどね。 叩かれているうちが華
>>104
そういうことにしたいのですね >>109
そういうことにしたいのですね
つうか、おまいが相当嫌っていることは今までのカキコからイタイほどよく分かるよ
ジエンはもう少しうまくなってからにしたらどうかな?
ま、好きにしてくれていいけどね 本気で俺をKタンだと思ってんの?
思っているんだろうなw チラシの裏
五日目。なげーよ。最後は明日に持ち越し。 チラシの裏って書いたら日記書いていいと思ってんのか?
まじでチラシの裏にでも書いとけよ いいんじゃね?
Cloverのことくらいしか話題がないみたいだから。 おまえらはNGワードにチラシと打ち込むことも出来ないのか? 一日目に使うnaskをネットから入手したいけど、ネットで調べてもダウンロード先が見つからないけどどうしたらいいの? >119
普通に ttp://hrb.osask.jp の tolset じゃだめなの? >>118
お前はNGワード機能を持つ2chブラウザを見てる全員が使ってると思ってるのか あるからなんなんだよw
使わなけりゃ見れないわけじゃないんだから
使ってることを前提にするのはおかしいだろw 誰か、大変だから、はりぼてOSを直接ダウンロード出来るようにしてや チラシの裏
7日目
Cのプログラムはよくわかったけど、ハードウェア制御のところは難しかったなぁ。 >126
普通に ttp://hrb.osask.jp のディスクイメージじゃだめなの? 学校の図書館に入ったから読みたいんだけど誰かが借りてて返却日七月5日なのに
返ってこないんだ・・・ オリジナル云々を言っても、所詮
mbrや 55 AAが何を意味するかさえ分からない輩が多過ぎる!
まず、本を読んでbootの仕組みを理解しなければ何も始まらん。
まあ、お釈迦様の手の平で踊るのが嫌だったら、x86系や68系の
アーキテクチャから脱する自分専用のCPUを作ることから
始めねばならないのだ! <チラシの裏>
45日目
TCP/IPの実装は成功したけど、htmlの解釈が難しい
</チラシの裏> <チラシの裏>
46日目
html解釈は適当に済ませて、フォントレンダラを仮実装。
ウインドウのレンダリング方法も、従来のものから変えてみた。
重いから戻そうかな。
</チラシの裏> >>132
ここは俺俺ブートローダーOSで満足している人たちはいないから。
もっと面白いことに時間をかけようね。
自作本をはるかに凌駕する実力になってしまったら自作CPUでも作ればいい。 >>141
>自作CPU
発想が貧困。
人工知能でも作れ。 人工知能とは、稚拙であっても人工知能の基礎理論の原初原理を実装したものを指す。
結果としてのパフォーマンスではなく、内部原理を評価する。
現代の、対人応答や人間との比較は人工知能研究にとって意味がなく害がある。 >>143
負け惜しみワロタ
>>142
それを突っ込むのなら141ではなく132では? >>141
自作CPUが高度な知的作業だと思ってる奴がいるとは驚いたw
汎用CPUを実装してその上で自作OSを動かすなんて、わざわざ速度を落とすようなことをするくらいなら
どうしてアプリを直接HDL(ハードウェア記述言語)で実装しないのかな?
自作CPUで自作OSなんてlinux上でlinuxエミュレータを走らせる位アフォらしいw
OSなんて他人に使ってもらってナンボのなんじゃ(自分一人でやることをオナニーというのだよ少年)
他人がそんな手間のかかるような真似すると思ってるのかなw >>146
こりゃまた低脳だな。
他人をけなすぐらい自信があるなら
人工知能を実装してみろよ。 これさ、確かにまともにOS作ろうとしたらかなり無理のある本だけど、
それがおまけと考えれば、パソコンのことについてはある程度知識得られて楽しいね。 >>156
プログラムを学ぶ気がない人にとっては楽かと。 普通ならxor eax,eaxで書くとこを「わかりやすく」mov eax,0で書いたりするの
却って逆効果だと思うんだよなー
アセンブラにはまる奴は、そういうテクニカルな部分に引かれると思うし。 xor eax,eaxて何時の時代の化石テクニックですか?(^^; <チラシの裏>
47日目
単漢字変換の小さなFEPを装備。辞書は仮に某所の奴を流用。
以前あるスレで配布されてたフォントを改造して、日本語が扱えるようになった。
</チラシの裏> >>165
公開の予定は有りますか?(スクショだけでも 0日目は読みました。
夏休みにやってみようと思います。
しかし明日はまだテストがあるから進められない。
ここに経過を書いてもいいですか?
|д゚)ダメ? <チラシの裏>
48日目
テキストブラウザ風のものをとりあえず作成
</チラシの裏> <チラシの裏>
49日目
シェルやコマンドを強化。軽くなったけど、見た目が退化した・・・
FSにも近々手をつける予定。
</チラシの裏>
>>147
人工知能などと寝言をほざく前に自分の知能をなんとかしろ >>173
そこまで見せびらかすんなら最後には公開してほしいな。 夏休み開始です。
しかし8/4,5,6と実家へ帰り、とある大会の運営のお手伝いをせねばなりませんので
自作OSづくりが始めれるのはそれ以降になりそうです。
経過はここに書いていいですかなんて書いておきながらなかなか始められなくて、なんか申し訳ないです。 ダメだ
gcc、nasm、ldを使ってOS自作入門でやってるのと同じことをするにはどうすればいいのかわかんね
それぞれのドキュメントにもっとじっくりあたるしかないよね・・・、がんばるか >>180
MonaのMakefileの真似してみ
>>181
どうせ教えてくれないよ >>180
ttp://d.hatena.ne.jp/papamitra/searchdiary?word=%2a%5bHariboteOS%5d
やっている人はいるけど、なにをわざわざ・・・という感じだね。 >>182
いくら Makefile を真似てもそれだけじゃ駄目だよ。
あと、そんなにケチじゃないよ。 教えるもクソもBayOSのMakefile見たら一目瞭然なわけだが >>184 >>186
バカだな、そうやって大したことないのにもったい付けるから人間以下なんて反感買うんだよ。
太郎に変な競争意識持たないで人間性で勝負してみ。 >>183
うは、すごい参考になりそう、助かる
>>182,186
ああ、そういえば以前MonaのMakefile読めばいいか、と思ったことあったわorz
BayOSのMakefileにもあたってみます
情報サンクス <チラシの裏>
50日目
簡単にFSの設計だけしてみた。
理論上問題点がかなりあって、本格的に手をつけるのは先になりそう。
とりあえず最初からアセンブラの勉強でもしようと思った。
ということで今日は、かな漢字変換システムの辞書を鍛えることに時間を割いてます。
</チラシの裏>
Makefile を真似るだけじゃ駄目な理由:
・はりぼてOS(OSASKも一緒)のリンカはKタン謹製独自リンカを使っている
・はりぼてOS(OSASKも一緒)のバイナリ形式は独自
・だから ld でリンクしても本書に付属のブートローダじゃ起動しない
・gas と nask の記法は全然違うから本書のソースコードそのまま使えない
BayOS の Makefile は C++ 使っている以外ははりぼてOSと一緒なので、
gcc + nasm + ld の参考にはなりませんよ。
このスレはOSASKを超えるOSを作るスレですか? OSASKを超えたかは分からないけど、
Minixは越えたんでないかい。
まぁ、参加者が多くなればおのずとよいOSになっていくんでないかな。 みんな勝手に作ってても
元が同じだからパクり易そうだもんな この本、独自アセンブラが気に食わんと批判する奴がいるけど、gasの例を見ると、
煩雑すぎてやる気にならんな。 >>198
gasは論外だと言うがgccはどうなるんだ? >>199
gasの文法でアセンブラを勉強するのは論外ということ。
もちろんgcc含めてGNU自体が論外なわけだがそれは別の話。 gcc = 汎用コンパイラ
とりあえずどこでも使えるから使ってます、って感じ ,,,,,,,,,,,,,,,,,,,,
/": : : : : : : : \
/-─-,,,_: : : : : : : : :\
/ '''-,,,: : : : : : : :i
/、 /: : : : : : : : i ________
r-、 ,,,,,,,,,,、 /: : : : : : : : : :i /
L_, , 、 \: : : : : : : : :i / Emacs使ったら
/●) (●> |: :__,=-、: / < 負けかなと思ってる
l イ '- |:/ tbノノ \
l ,`-=-'\ `l ι';/ \ 童貞(35・男性)
ヽトェ-ェェ-:) -r'  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヾ=-' / /
____ヽ::::... / ::::|
/ ̄ ::::::::::::::l `──'''' :::| ムズイけど、
だんだんと分かってくるから
あーら 不思議! MASMかgas以外をアセンブラと認めない俺は古いのか?
擬似命令ばっかりな気がしてな > NASM
LASMなんて知らなかった。スマソ
もっともわかりやすいアセンブラの教科書のような気がしてきた。 第1日目
まずはバイナリエディタで全て入力。EB 4E 90 48 45 4C 4C 4F 49 50 4C 00 02 01 01 00 ・・・
途中からは 00 00 00 00 ・・・ だけど、コピー&ペーストをしてもめんどい・・・。計1440KBの入力でした。
機械語を直接打つのって超しんどいですね。どっか打ち間違えてそうだし・・・。
ツールの転送
CDからUSBメモリへ。実家にいるので居間のPCを使って転送。
USB1.1なので遅い。しばし休憩。
バッチファイルはちょこっといじって「install xxxx」で、xxxx.imgに働くように改造。
ツールの準備は完了。
はじめての起動
PCへフロッピーを入れて電源ON
わーい成功♪とりあえず、うれしいよね。
さらにQEMUから起動。
こっちは手軽だね♪
次はようやくアセンブラかと思ったが、機械語がソースに書かれてるなあ。
まあ、アセンブラの動作確認ということで書いてみる。
できたらアセンブラして書き込みっと♪ほい成功♪
1日目はここまでで終了〜。
FAT12の構造がちと気になったのでぐぐっておいた。
この辺が参考になりそう( http://www.mega-tokyo.com/osfaq/FAT12%20document ) いいかも
LFS
Linux From Scratch >>217
そのレベルの読書日記なら、チラシの裏にしてくれるかな。 >>219
何もしないで、ただ見てるだけ〜ってより
とっても価値があると思うけどな。
何だかんだと言っても Kさんや ひげぽんさんのようにOSを自作する人の最初の
キッカケは、すごく単純で明解だったような気がする。 >>219
じゃあ次からはせめてもっとまとめて短く書きます(^_^.) >>220
何を言いたいのか良く分からんが、>>219のようなゴミ日記でこのスレが
埋まったほうがいいということなのかな。 >>217
何だろう。この馬鹿っぽい読書日記は。社会人が書く文章ではないな。 >>219
おまえのレスはゴミ日記だって>>222が言ってるよw チラシの裏{
第2日目 - 今回からはチラシの裏に…
今回の収穫(新たに知ったこと)
AXを計算に使えば機械語にしたとき命令が短くて済む。
[]で囲むとメモリのアドレスを示す。
今までよく知らずに使ってたMakefileのことが少しわかった気がする。
} >>227
ここでも読んどけ。
ttp://d.hatena.ne.jp/hariboteOS/?of=16 ゚+.(ノ。・ω・)ノ*.オオォォ☆゚・:*☆ 先人だ〜♪
しかし俺はTeraPad信者じゃないな・・・。今回使ってるのもサクラエディタだし。
確かに、機械語をアセンブリにしましたよってことはあるといいなぁ。
アセンブリを少しでもしてれば気づくだろうけど…。
しかし、マルチタスクあたりは難しいのか…。覚悟しときます。 >>222
言いたいことは、人につまらんケチをつけるなってこと。
人につまらんレスする暇があったら、netでも組み込んで
telnet等でリモートコントロールでもやってみたらどうよ。
static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent){
struct net_device *dev;
struct cp_private *cp;
int rc;
void *regs;
long pciaddr;
unsigned int addr_len, i, pci_using_dac;
u8 pci_rev;
#ifndef MODULE
static int version_printed;
if (version_printed++ == 0)
printk("%s", version);
#endif
pci_read_config_byte(pdev, PCI_REVISION_ID, &pci_rev);
if (pdev->vendor == PCI_VENDOR_ID_REALTEK &&
pdev->device == PCI_DEVICE_ID_REALTEK_8139 && pci_rev < 0x20) {
printk(KERN_ERR PFX "pci dev %s (id %04x:%04x rev %02x) is not an 8139C+ compatible chip\n",
pci_name(pdev), pdev->vendor, pdev->device, pci_rev);
printk(KERN_ERR PFX "Try the \"8139too\" driver instead.\n");
return -ENODEV; } Googleってスゲーよなぁ。何のコードかすぐにわかった。 チラシの裏( day 3 ){
本日の失敗
FDから読み出すとき、ループのカウントならカウンタレジスタのCX使えばいいんじゃないの?
と思ってしまった。CL/CHをINT 0x13で使うんだな…。
↑同様にnextでAX使うから、ALも再設定しなきゃいけないことを忘れていた。
自分の好みの順番に命令を並べ替えているのでこういうミスが…。EXを使うって言う手もあるのかな?
思ったこと
早くharib00iの追加された100行を理解したいな。
そのうち解説されるようなのでそれまで待ちます。
} 投稿確認
・投稿者は、投稿に関して発生する責任が全て投稿者に帰すことを承諾しま
す。
・投稿者は、話題と無関係な広告の投稿に関して、相応の費用を支払うこと
を承諾します
・投稿者は、投稿された内容及びこれに含まれる知的財産権、(著作権法
第21条ないし第28条に規定される権利も含む)その他の権利につき(第三者
に対して再許諾する権利を含みます。)、掲示板運営者に対し、無償で譲渡
することを承諾します。ただし、投稿が別に定める削除ガイドラインに該当する
場合、投稿に関する知的財産権その他の権利、義務は一定期間投稿者に
留保されます。
・掲示板運営者は、投稿者に対して日本国内外において無償で非独占的
に複製、公衆送信、頒布及び翻訳する権利を投稿者に許諾します。また、
投稿者は掲示板運営者が指定する第三者に対して、一切の権利(第三者
に対して再許諾する権利を含みます)を許諾しないことを承諾します。
・投稿者は、掲示板運営者あるいはその指定する者に対して、著作者人格
権を一切行使しないことを承諾します。 チラシの裏:
4日目終了
C言語をアセンブリに翻訳したものを提示されるたびに(。・ρ・。)ヘーと思う。
ポインタの本質が分かった気がした。そうか、それで不正な型とかいわれていたのか!と思った。
配列の記述もそういう風に翻訳されてたんだ〜と思った。
ただ、なんかPCが不調で再起動してから(OS作りではパレットの設定を始めたあたりから)
make run で haribote.imgの書き出しに失敗することがあるようになった。
何回かやり直せばうまくいくけど…、なんでなのかよくわからない。
それから、これ第5刷なんですけど、P90〜91のnaskfunc.nasで
ソースの9行目 io_stihlt は _io_stihlt かな〜と思った。
ソースの _io_out16: のあたりで MOV EAX,[ESP+8] は MOV AX,[ESP+8] ではないかなー
と思った(16bitだし)。が、こっちはなんとなく自信なし。(アセンブリ経験浅過ぎなんで) >>247
> P90〜91のnaskfunc.nasでソースの9行目 io_stihlt は _io_stihlt かな〜と思った。
ソースの _io_out16: のあたりで MOV EAX,[ESP+8] は MOV AX,[ESP+8] ではないかなー
チラシの裏に書いておくだけじゃ、モッタイない(死語)
こっちにも書いて問い合わせてみたら、いいやん。
ttp://hrb.osask.jp/wiki/index.php?bugs ◆teNezgnnCoにとっては、小さな一歩だが。
人類にとっては、偉大な一歩なのだ。
”なーんちゃったりして ”
「書き込みが的を得ていたみたいで、
K氏より回答があったみたいじゃん」
まずは、オメデトー。 >>250
おー本当ですね〜。
MOV EAX,[ESP+8] はこっちの方がいいからなのか〜。
なるほどなー。勉強になるなぁ〜。 三日目〜十日目終了。
いちいちコードを吟味する暇はねぇんだよ。 5日目完了
まぁやったことっていうと、文字・マウスポインタを書いて
GDT/IDTについてちょこっと知ったくらいですかね。
引き続き6日目へいきます。 11日目〜12日目終了。
さすがの俺様もペースが落ちてきたぜ。 6日目終了
分割コンパイル、Makefile整理、ヘッダファイル使用、PIC初期化、割り込み処理が完了
9日目突入〜
基本的には1章読んでは、エミュで実行してみるという流れで
ほぼ読むだけで進めてるのに、全然終わる気配が無いw
はやく改造したりして遊びたいYO だんだん飽きてきた…
少しずつ着実に進めるのが正解だろうな いつの日にか必ず再開する予定なので
それまで保守ヨロシコ 反骨精神で帰ってきた(`・ω・´)
まずはPCは起動せずに、本だけ通読してみます 金土日は部活なので進めれませんでした。
しかーし。
今日から再開ですよ。 <チラシの裏>
68日目
テストカキコ
</チラシの裏>
<チラシの裏>
69日目
調子に乗ってHDDに書き込みしたら、大変なことになった
</チラシの裏> <chiraU>
OS自作が面白くてFF3どころじゃないやい
</chiraU> これでしょ。DSリメイク版のFF3
ttp://www.famitsu.com/topics/2006/06/02/601,1149223096,54260,0,0.html
当然それ
最新PCで動く自作OSよりも
遅いCPUの携帯ゲーム機のほうが描画がすごいのが悲しい それを言ったら、
昔のCPU
Z80を使ったアーケドゲーム機に最新のPCゲームは及ばないよ。 PS3が売れたらパソコンが売れなくなりそうで、それが楽しみ。 みんな、ガンバレ。
日本の、OS自作の夜明けは近い! 平均して一日一ページくらいのペースの今日この頃ですが
みなさま如何お過ごしでしょうか ∧_∧
( ´∀`) <チラ裏を独り占め
/, つ
(_(_, )
しし' 〃∩ ∧_∧
⊂⌒( ・ω・) ふむふむ、チラチラ解消か…
`ヽ_っ⌒/⌒c
⌒ ⌒
ただいまの進捗率 31% -‐-
__ 〃 ヽ
ヽ\ ノノノ)ヘ)、!〉 / ̄ ̄ ̄ ̄
(0_)リ (┃┃〈リ | はわわ〜
レVlト " lフ/ n <
l^ヾヽ!v‐' 犯 | 次はいよいよマルチタスクだモナ…もとい、ですよー
ヽ `'´ >ァ'l|´ \____
〉-イ'´ ||
進捗41%までアップ 本の課題に挑戦した人たち
本当に30日でOSが出来上がるのかを試してみるBlog
ttp://d.hatena.ne.jp/hariboteOS/
『30日でできる!OS自作入門』Linux環境でチャレンジ!
ttp://homepage2.nifty.com/hanpen/index2.html
[HariboteOS][本]
ttp://d.hatena.ne.jp/papamitra/searchdiary?of=15&word=%2a%5bHariboteOS%5d
OS製作やOS/プログラミングに関する話題を収集するWiki
osdev
ttp://wiki.osdev.info/index.php OS Wiki
ttp://community.osdev.info/
30日でできる! OS自作入門」のサポートページ
ttp://hrb.osask.jp/ うっしっし
コードの部分を全く見ずに文字だけ読んだら大分進んだぞ
進捗およそ90% >>295
それでいいの?
なんか目的が、OSが自作できるようになることから、
ただ早く読み終わることに成り下がっているんじゃないかと、心配だよ。 >>296
なんでもいいから一旦読み終えてしまいたい(;´Д`)…
フルカラーにして壁紙つけたりしてささやかな俺様OSを作りたいのに
読み終えないと、最終ソースから改造できないし
まともに読むのはもう飽きちゃったから仕方ないんだYO なるほどそういうことかー。
最終ソースからの改造が目的なら、
改造の過程で必要なところは復習できそうだから、
その読み方でもいいかもしれないですね。 ∧__∧
( ´∀`) <100%達成したよ!
( O┬O
≡◎-ヽJ┴◎
だが、真の戦いはこれからだ!
結局2週目読み直すはめになりそう(苦ワライ osの本で検索しても見つけられずにいたが(無意識にスルーしていた?)、
最近知った良さそうな本の紹介
APIで学ぶWindows徹底理解
http://www.amazon.co.jp/exec/obidos/ASIN/4822228266 なんか良さげですね
丁度サービスコールの役割がいまいち理解できなくて
お手本が見たかったところでした 形から入るならこんなもの買わないで、はじめて読むシリーズとタネ本、汗本を全巻揃えろよな
はじめて読む本も、「30日でできる!OS…」本も、持ってるけど
「30日でできる!OS…」本のほうがためになったなぁ。 >>304
はじめて読むシリーズは
MASMと8080と486は持ってる罠
タネ本と汗本って何ですか? >>307
駱駝とかと同じで表紙のイラストかとオモッタ
タネンバウムはOS博士なのね
ググったら9千円くらいの本があったけど、そんなの要らね HDDがあるのに使えない。使わない。 ってのはイライラするOSだね。 >>310
MINIXの本なら読んで損はしないよ。
マルチポストになるけども、どうしても分からないのでご教授お願いします。
向こうだと、書きにくいので。
分からないところは、p208のsheet_slide関数でのマウスの移動です。
シートが出てくるまでは移動前のマウスカーソルの有った範囲を塗りつぶして、
新しいマウスカーソルを書いていました。
harib07cのsheet_slide関数では、どのタイミングで以前有ったマウスカーソルが塗り潰されるのでしょうか?
sheet_refreshsub(ctl, vx0, vy0, vx0 + sht->bxsize, vy0 + sht->bysize)で
1、sht_backの移動前のマウスカーソルがある場所だけを塗りつぶす。
2、移動前のマウスカーソルを書く。
sheet_refreshsub(ctl, old_vx0, old_vy0, old_vx0 + sht->bxsize, old_vy0 + sht->bysize);で、
3、sht_backの移動後のマウスカーソルのある範囲だけを塗りつぶす。
4、移動後のマウスカーソルを書く。
の順になると思うのですが、移動前の書き換えられる範囲から外れたマウスはなぜ
画面に残らないのでしょうか。
シートと言う仕組みを使っても結局はVRAMにマウスカーソルを重ね書きしているわけで、
例えば(152,78)からマウスカーソルが(100,100)に移動した場合(152,78)に
以前のマウスカーソルが残るような気がするのですが。
(152,78)から(168,94)を塗りつぶす→(152,78)から(168,94)にマウス書く。
(100,100)から(116,116)を塗りつぶす→(100,100)から(116,116)にマウス書く。
これでは、(152,78)から(168,94)にマウスが残りそうなのですけれども。
>>315
sheet_refreshsub関数を2回呼ぶ前に、以下でシート階層上は、マウスカーソールは、論理的に移動している、ということを頭にいれてソースを読み直すとよいと思う。
sht->vx0 = vx0;
sht->vy0 = vy0;
移動前と移動後のマウスカーソルの矩形イメージが重ならないなら、
sheet_refreshsub(ctl, old_vx0, old_vy0, old_vx0 + sht->bxsize, old_vy0 + sht->bysize);で、
1、sht_backのイメージで移動前のマウスカーソルがある場所だけを塗りつぶす。
sheet_refreshsub(ctl, vx0, vy0, vx0 + sht->bxsize, vy0 + sht->bysize);で
2、sht_backのイメージで移動後のマウスカーソルのある範囲だけを塗りつぶす。
3、移動後のマウスカーソルを書く。
になると思うけど。 >>316
エ、エスパー?
>sheet_refreshsub関数を2回呼ぶ前に、
>以下でシート階層上は、マウスカーソールは、
>論理的に移動している、ということを頭にいれてソースを読み直すとよいと思う。
>sht->vx0 = vx0;
>sht->vy0 = vy0;
ズバリ自分が勘違いしていたところです。
そりゃ、{2、移動前のマウスカーソルを書く。}なんてことが起こるはずだよ。
こんなことで紙とペンもって一日中考えていたとは・・・・
いい経験になりました。ご助言有難うございます。
もしよければこっちでも質問してよいですかね?
むこうのwikiは使いづらいので。 あの、すごく低レベルな質問で申し訳ないんですが・・・
harib08h、sheet_refreshmap関数からの疑問点です。
sht = ctl->sheets[h];
sid = sht - ctl->sheets0; /* 番地を引き算してそれを下じき番号として利用 */
という代入文なのですが、普通の変数に番地を代入する事はOKなのでしょうか?
p77にもありますが、「C言語は普通の数値とメモリ番地は根本的に違うのだ
という考え方で設計されていまして〜」とあり、
番地変数に普通の数字を代入するときはその数値がメモリの番地だと分かるように
キャストしてあげなければいけませんでした。
今回もキャストのようなことはしなくて良いのかなと思ったので。 >>318
http://www.st.rim.or.jp/~phinloda/cqa/cqa3.html#Q16
ある一次元座標上の座標位置A,Bを引き算して出てくる値は、位置Aを原点とする座標から見れば、位置に違いないけど、今使っている座標から見れば、位置の意味がなくなって、
位置Aと位置Bの距離になるでしょ。同じように
コンピュータが今使ってるアドレス空間上の番地A,Bを引き算して出てくる値は、コンピュータが想定しているアドレス空間上の番地の意味はなくなって、番地A,Bのデータ型のサイズでスケールされた番地A,B間の距離(符号つき整数型)になる。
>>319
ほぇ〜。回答有り難うございます。
ポインタに代入されているアドレスが引き算されるんじゃなくて、添え字の引き算の結果になるんですね。
例えば
sht = ctl->sheets[2];
とすると、
sid = sht - ctl->sheets0;
は
sid = ctl->sheets[2]-ctl->sheets0;
となってsidは2が代入されるわけですね。
でも、その場合
sid = ctl->sheets[2]-ctl->sheets0[0];
じゃないとおかしくなるんじゃ無いんでしょうか。
ctl->sheets0の場合、「配列名は配列の先頭要素のアドレス」と本に書いてあったので、
やっぱりポインタに代入されているアドレスが引き算されるのではないのでしょうか? >>320
>ポインタに代入されているアドレスが引き算されるんじゃなくて、添え字の引き算の結果になるんですね。
何でそういう二者択一になるの?
リンク先で言っているのは、ポインタ同士の引き算は、
ふたつのポインタが、同じ配列上のいずれかの要素を指していて、
ポインタの指す型が、要素の型と一致すれば、
ポインタに対応する要素の添字の引き算と結果的に同じになると言ってるんですけど。
ポインタの引き算は、アドレスを引き算して、ポインタの指しているデータ型のサイズで割るんだから
同じになるでしょ。
>例えば
>sht = ctl->sheets[2];
>とすると、
>sid = sht - ctl->sheets0;
>は
>sid = ctl->sheets[2]-ctl->sheets0;
>となってsidは2が代入されるわけですね。
いいえ。可能的には、符号つき整数の全範囲の値のいずれか。
プログラムが正しく動いていると仮定すれば、 0からSHEETS_MAXの範囲の整数のいずれかの値です。
多分、ctl->sheets[2] の添字が2で、ctl->sheets0が最初の要素を指しているいて、添字が0だから
2マイナス0は2と考えているんだろうと思うけど、ctl->sheets配列とctl->sheets0配列は、要素の型も
存在する場所も異なる、まったく別の配列だから添字を引き算しても意味がないでしょ。
実際は、ctl->sheets[2]は、ctl->sheets0配列の要素のどれかを指しているから、まあ添字の引き算で考えるなら、ctl->sheets0配列の要素のどれかの添字マイナス0と考えないと。
わかったぁ!
メモリって言うのは道路なんだ!
ポインタって言うのは、道路の上の標識みたいな物なんだ。
今まで「ポインタって言うのはメモリのアドレス(特殊な数値)」とだけ念じてプログラムを読んできたけれど、
それじゃ理解が不十分で、こうやってイメージしながらプログラムを読むことが大事なんだ!
>>319さん
すいません、リンク先だけ見てました。
>コンピュータが今使ってるアドレス空間上の番地A,Bを引き算して出てくる値は、
>コンピュータが想定しているアドレス空間上の番地の意味はなくなって、
>番地A,Bのデータ型のサイズでスケールされた番地A,B間の距離(符号つき整数型)になる。
勉強になりました!
>>320,321さん。
詳しい解説有り難うございます。
つまり
int型メモリ番地0x00000003-int型メモリ番地0x00000000を行った場合
答えは番地0x00000003になる(←今までの自分の誤解していた点。メモリ番地は数値だから引き算できて当然と思っていた)。
実際はそうではなくて
0x00000003はメモリ番地の意味が無くなってint型だから1になるわけですね。
>>323
水を差すようだけどあまり考え込まない方がいいと思うよ。
これだ!って確実に理解できるイメージがないから、
結局使いながら使い方を覚えるしかなくてみんな苦労するんだよ。
> メモリって言うのは道路なんだ!
> ポインタって言うのは、道路の上の標識みたいな物なんだ。
たとえに突っ込むのも野暮だと思うけど、
メモリは家でポインタは住所の方が近い。
int a[3];
printf("%d\n", &a[3] - &a[0]);
これの結果は3になる。
家と住所のたとえでいえば、
a[0] a[1] a[2] a[3]
と並んでいて、
3は0の3軒隣ということ。 >>324
うぉー、ご助言感謝です。
>int a[3];
>printf("%d\n", &a[3] - &a[0]);
>これの結果は3になる。
>家と住所のたとえでいえば、
>a[0] a[1] a[2] a[3]
>と並んでいて、
>3は0の3軒隣ということ
OKです。
つまり、さっきの例でいくと、
(a[3]のアドレス-a[0]のアドレス)/int=3と言うわけですね。
プログラムの勉強をしていると数学が大事と言うことが分かったので、
オイラーの贈り物という本を買って今クロネコで届きました。
プログラムの勉強をするともれなく数学の勉強も一緒にできるなんて、プログラムは便利な学問だなぁ。
>>323
> 今まで「ポインタって言うのはメモリのアドレス(特殊な数値)」とだけ念じてプログラムを読んできたけれど、
> それじゃ理解が不十分で、こうやってイメージしながらプログラムを読むことが大事なんだ!
イメージが間違っていると変な癖が付いたりするから、
たとえとか持ち出さないでケースバイケースで使い方を覚える方が良いと思うよ。
ポインタはある程度経験を積まないと見えてこないから難しい。
> int型メモリ番地0x00000003-int型メモリ番地0x00000000を行った場合
> 答えは番地0x00000003になる(←今までの自分の誤解していた点。メモリ番地は数値だから引き算できて当然と思っていた)。
> 実際はそうではなくて
> 0x00000003はメモリ番地の意味が無くなってint型だから1になるわけですね。
配列の添字とアドレスがごっちゃになってないかな?
int a[3];
printf("%d,%d,%d\n", &a[3], &a[0], &a[3] - &a[0]);
こうやるとアドレスの値を見ることができる。
実行するとたとえばこんな結果になる。
2280668,2280656,3
※最初の2つはOSによって数字が違うので注意
この場合、a[3]の3が添字で、2280668がアドレス。
a[3]とa[0]のアドレスを単純に引き算すると12になる。
これがなぜ3になるかというと、intが1つにつき4バイト必要だから、
12÷4=3でintが3つ分という意味で3となる。 >>325
> (a[3]のアドレス-a[0]のアドレス)/int=3と言うわけですね。
ここではintじゃなくて「intのサイズ」と言う方が良い。
C言語の書き方ではsizeof(int)。
ちなみに全部をC言語で書くとこうなる。
(((char*)&a[3])-((char*)&a[0])/sizeof(int)
> プログラムの勉強をしていると数学が大事と言うことが分かったので、
> オイラーの贈り物という本を買って今クロネコで届きました。
>
> プログラムの勉強をするともれなく数学の勉強も一緒にできるなんて、プログラムは便利な学問だなぁ。
数学力をプログラムで鍛えるなら3Dがお勧め。
人類の至宝とまで言われるオイラーの等式e^(i*pi)=-1とか普通に使うよ。 >>326,327
本当に親切な解説有り難うございます。
ところで、結局「30日でできる!OS自作入門」を読み切るにはどの程度のC言語の知識が必要なんでしょうか?
今回自分が躓いたようなことは、自分が参考にしている本「やさしいC 第二版 高橋麻奈 著」(コレしか持ってない)
には書いてありませんでした。
「30日でできる!OS自作入門」のオビには「どんなプログラミング言語でも良いので、
簡単なプログラムなら書いたことあるよ位のセンスがあれば、それでOK」
とあるので、プログラム書いたこと無いけどセンター試験でBASICの勉強したからイイかなぁと思って購入したんですけど。
10日目までの内容は、アセンブラも含めてほぼ理解している自信はあります。
ただ、ソースコードを読んで疑問に思う→インターネットで調べる→理解して本に書き込む
を繰り返した結果10日目なのに本がボロボロになってしまって・・・
これ以上本の内容が難しくなると、やさしいCじゃもう対処できそうにないし
今の自分のレベルで次は何という参考書を買えばよいのでしょうか?
C言語の本がたくさんありすぎて迷ってしまいます。
>>328
内容を全部理解しようと力みすぎ。
細かい所は気にしないでざっと進めた方がいいよ。
完全に理解するのははっきり言って無理。
C言語で書きながら頭の中でアセンブリに翻訳できるくらいの実力が必要。
そんなレベルをいきなり目指すのは
掛け算九九もできないのに微分積分に手を出すようなこと。
プログラミングは理屈じゃなくて年季だから、
本を必死に調べるよりもあれこれ改造したりして経験を積む方が良い。
たとえばC言語のポインタは数学的ではない。
必要な算数の知識は四則演算だけで小学校低学年レベル。
だけど難しいのは理解に経験が必要な類の知識だから。 >>328
C言語の本のお薦めは「プログラミング言語C ANSI規格準拠」
B.W. カーニハン (著), D.M. リッチー (著), 石田 晴久 (翻訳)
¥ 2,940 (税込) >>330
これは値段も手頃だし147x210x20(mm)とコンパクトでいいよ。翻訳が硬いのが
難だけど、安いからしかたないね。 >>329,330,331
有難うございます。
お勧めされた本、凄く有名みたいですね。
amazonから1000円のクーポンが送られてきたので買ってみます。
本当に有難うございました! 凄くくだらないことなんですが、質問です。
p240の
struct TIMER *timer_alloc(void)
{
int i;
for (i = 0; i < MAX_TIMER; i++) {
if (timerctl.timer[i].flags == 0) {
timerctl.timer[i].flags = TIMER_FLAGS_ALLOC;
return &timerctl.timer[i];
}
}
return 0; /* 見つからなかった */
}
という関数で戻り値の型が、struct TIMER型のポインタなのは、
戻り値が構造体timerctlのメンバ(struct TIMER型の)timerのアドレスだからという理解でOKですよね?
周りにプログラミングをしている人が居ないので、とても疑心暗鬼になってしまって申し訳ないです。 それと、もうひとつイマイチ理解に苦しむものが・・・
p248の
timer_settime関数で一番最初のタイマ(timer,1000)を登録する場合なのですが、
for (i = 0; i < timerctl.using; i++) {
if (timerctl.timers[i]->timeout >= timer->timeout) {
break;
}
}
timerctl.using++;
の時点で変数は、i = 0 ,using = 1が代入されていますよね。
/* うしろをずらす */
for (j = timerctl.using; j > i; j--) {
timerctl.timers[j] = timerctl.timers[j - 1];
}
/* あいたすきまに入れる */
この↑の処理で
どこのメモリ番地が代入されているか分からないポインタ (timerctl.timers[1]に
どこのメモリ番地が代入されているか分からないポインタ(timerctl.timers[0]が代入される
という処理が行われるという理解で良いのでしょうか?
timerctl.timers[i] = timer;
↑この時点でポインタに代入していますよね? >>333
さいですな。
>>334
そうなるんでないかい。
変な所を見に行くとか心配なら、timerctl.usingの役目も
考えてあげてください。
アルゴリズムを解説している本を一冊読んだ方がよいと思いますです。
>>335
合ってましたか。
値を代入していないポインタの演算が初めて出てきたので、
解釈があっているかなと心配になって質問してみました。
有難うございます。 >>336
>値を代入していないポインタの演算
こんな処理はあり得ない。無意味。
本持ってないので未確認だけど、
配列がグローバルならNULL初期化されているので、
値が代入されていないわけではない。
それ以外に考えられることとして、
文字列みたいにNULL終端の配列なら
1つ後ろまでずらすということも考えられる。
後は誰か本持ってる人お願い。 >>337
なるほど、サンクスです。
ポインタもグローバル変数だったら、
普通のグローバル変数が0で初期化されるのと同じようにNULLで
初期化されるわけですね。
勉強になりました!
intelのマニュアルでCPU勉強したり英語のサイトでBIOS勉強したり
していた俺を君達はほんの数週間でこえていく('A`)
この本おそろしい というかOSに頼らずFDで起動できるメガデモが作りたい >>342
LILOで豪腕ブートすればいいんじゃねぇの?
ファイルシステムというかHDDアクセスの紹介無い・・・・
買って損した orz >>348
自分で調べろよ
というか和製OSでHDDサポートしてる奴って少ない気がする。 >>348
まあ30日でそこまでいくのは無理だろう。
つうか買う前に目次とか確認しなかったのか?
>>334
スーパー遅レスだけど
俺の持ってる本だと timerctl.using++; は /* うしろをずらす */ という for ループの
後にあるなあ。もしかしてその本は typo (バグ) のある版だったのかも。
>>337
>配列がグローバルならNULL初期化されているので、
グローバル変数の初期化って、要は変数が占めるメモリ領域の全ビットが
0になることだと思っていいんですかね?
なおこの著者は初期化ルーチンで構造体の必要な要素を設定しているようですが。 >>351
そういう意味でしょうな。
とりあえずこの本はC言語の参考書としては話にならんので、
まじめに勉強したけりゃ別な本をちゃんと読みましょう。
USB 接続したフロッピードライブからブートすることってできないの?
QEMU じゃ満足できなくなってきた・・・ >>353
USB-FDDからのブートに対応したBIOSであれば、
リアルモードでのint 0x13によるUSB接続のFDDアクセスに対応しています。
しかしプロテクトモードに移行した後は、BIOSの力を借りる事は出来ません。
つまりUSB-FDDにアクセスするには、USBの制御をしなければならないわけです。
USBの制御というとPCIの制御とUHCI、OHCIやEHCIの理解とそれに対するプログラミングが必要となります。
私は今USBの勉強中ですが結構大変だと思います。
16bitのOSを作るのであれば、BIOSの力を借りれば良いわけです。
32bitのOSを作るのであれば、カーネルを16bitモードの時点でどこかに読んでおいて、後で移動してあげるといいでしょう。
しかし自作ユーザプログラムの起動に関しては、先ほども言ったようにUSBの制御か、HDDを制御することが必要となります。
よって一番簡単なのは16bitモード専用のOSを作る事だと思います。
試しにBPB(FDDの第一セクタ)にプログラムを書き込んで、USB-FDDからブートすれば、
例えばint 0x10などの文字表示プログラムは動きます。ここら辺の話は、この本の知識だけでは厳しいかもしれませんね。 私はこの本を読んでいないのでハリボテOSの起動の仕組みは知りません。
本を読んで勉強して知識を得てください。
あとBPBじゃなくて、ブートセクタと書いた方が良かったかな。
とりあえず第一セクタね。 >>356
いや、タダの名無しだ。
自作OSは作っているが、表立って活動は無い。 >>354
USB-FDD動かすなら、自爆覚悟でHDD動かした方が簡単でないかと思います。
USB使えるようにしたほうがUSB-Memoryとか外つけHDDなんかが使えるようになって
遊びやすいんでしょうけど。
>USB 接続したフロッピードライブからブートすることってできないの?
はりぼてOSはBIOSでFDDにアクセスしてるから、問題なくUSB-FDDでもブートできるよ? >>358
いえ、まさにそのとおりでしょうね。現に私はHDD起動で動かしていますし。
FAT16はむしろFAT12よりも楽という面では、本当に扱いやすいです。
そこが現実的な落としどころなのかもしれませんね。
やっとこさウィンドウ作成まで辿り着いたぜ
文系出身の俺でもここまでは理解できるんだよな
ってかマウスカーソルもそうだけど、内部で変な配列作ってるのが気になるな
Windows とか Linux もそうなのだろうか?・・・違うよね
どうにかファイルでやれないものか・・・
でもフロッピーじゃあな・・・
とりあえずバージョン0にしといて
あとで自分で考えるしかないのか・・・ どうせ使うときは配列に突っ込まなきゃいかんので、最初から定義しておくのも
手抜きとしてはありじゃないですかねえ。
まあちゃんとやるならファイルから読めるようにしとくべきでしょうな。
肝心のファイルシステムの説明がないけど。
まあ作り終わったらタネンバウム先生の本でも読めばいいと思う それなら最初からそっちを読んだ方がいいと思うわけで
まともな本読んだら投げ捨てたくならないかい? まともな本を読んでも理解できない人が、
自己満足するための本じゃないの? まっとうな本→挫折→これ
というお金持ちはまあどうでもいい。というか投げ出した本くれ。
これ→物足りない→まっとうな本
だと最初のお金がもったいないべということで。
一通り終わった
結構良い勉強にはなったかな
少なくとも情処試験の勉強よりかは遙かに有意義だったと思う
実用的じゃないOSだけど、必要な基礎知識はWindowsやLinuxもほぼ同じでしょ
で、これからだけど、まずは真面目にOS作る時にも使えそうな関数や仕組みを抽出することから始めるかな
メモリ管理とかプロセス管理あたりなら実際にカーネルの一部とかに流用(アルゴリズムの修正は必要かな)できそうだし、
OS本体をキックしている部分(IPL+α)は他でも大いに参考になるだろし(大して変わらんでしょ)、
シート管理あたりも改造すればカーネルの外側部分にUIの一部として被せられる様な気がする
ま、とりあえずはショボイ組み込み系/制御系のOSでも作ってみるかな >>369
こりゃ!
「在日」は差別用語だぞ!
使っちゃあならねえ!
「戦時中に密入国した朝鮮民族の子孫」と言いなさい!
略して「チョンガー」だ! HariboteOSってモノリシックカーネルだよね?
だってカーネル空間ってか1つのアドレス空間で全部やってるじゃん
これをマイクロカーネルに変えるにはどうしたら良いのかな?
メモリ管理、プロセス管理、プロセス間通信だけをカーネル空間に置いて、
残りの機能(ファイル管理とか描画系(GUI)とか)は全部ユーザ空間で
実現する必要があるんだよね?
プロセス間通信ってのをどうやって実現すれば良いのか・・・
Windowsで言うところのメッセージみたいなもの? なんでこの著者は typedef とか switch を使わないのだろうか? >>371
>HariboteOSってモノリシックカーネルだよね?
いいえまったく違います。カーネルもシェルもグラフィックシステムも
ウィンドウマネージャもファイルマネージャもひとつにまとめた
新次元のアーキテクチャです。
>これをマイクロカーネルに変えるにはどうしたら良いのかな?
改悪は好きにすればいいさ。 >>372
使うとtypedefやswitchの説明を本文に書かなきゃいけなくなるからだとか言っていたよ
Cの知識は必要最小限にしたかったらしい
確かループはforオンリーでwhileも使ってないはず >>374
でもさ、typedef とかをこちょっと説明するだけで
結構ソースがすっきりすると思うんだけどな。。。
毎回 struct なんて書かなくて済むし、
if(...) {
} else if(...) {
} else if(...) {
} else {
}
なんて書かなくて済むよね。。。 まあ、プログラミングスタイルについて俺みたいな昨日今日プログラミングを
覚えたようなガキが語って良いことじゃないんだろうけどね。。。 >>373
モノリシックカーネルよりも更にモノリシック(一枚岩)ってこと?
あまりよろしくないな・・・
EXEとDLLみたいなファイルを作って別プロセスで動かしたいんだよな・・・ >>377
>モノリシックカーネルよりも更にモノリシック(一枚岩)ってこと?
そう。 >>375
31日目の内容から著者の考えを好意的に邪推すると
毎回structを書くのがダルいとかelse ifの羅列がうっとうしいと思わせた上で
typedefやswitchを説明したかったんじゃないかな
結局紙面の都合か書き忘れか何かでそれらの説明はないんだけど
不便さが感じられるのならそれは狙った効果なのかもしれない
そうだとしたら375がソースをtypedefやswicthを使った形に改めるのは
立派な進歩じゃないかな この本でC言語を学んではいけないと言うのが前の方にあったような気がするが…
厶板の方だったかなあ。
>>377
だからはりぼてなんだろう。
30日でまとめるために見栄え以外の部分は激しく適当だからな。
>>381
この本でCをマスターできるわけじゃないみたいな事も言っていたよ
最初からそんなことは狙っていないみたい
30日でできることは限られているんだし、もしこれ一冊でそこまでできるとしたら
他のCの教科書の立場が無いじゃんw だからそれでいいんだと思う
はりぼてはまともなOSを目指したわけじゃなくて、あえてツッコミ所満載にしてあって
読者が不満を募らせてそれを改良したくなるように仕向けているらしい
最初から立派過ぎるとやる気なくすから、自作を助ける本としては間違いだと
少なくとも昨年のOSCではそう言っていた だから>>373は悪意のある煽りだと思う 最近ではハイブリッドカーネルなるものが存在するらしいが・・・ >>383
それはOSサーバとカーネルを分けているが同じ空間で動かしているもの ド素人を感化させて取り込むための本
宗教みたいなもん >>387
そういう自覚があるなら、きっちり基礎から勉強したほうが
後々のためだと思うわけです。
この本買ってパラ読みしたけど、不要だと思ったからプログラミングしたことが
無いっていう新入社員にあげた。
そして2ヵ月後くらいに研修を見に行ってみたら、そいつだけ落ちこぼれてたな。
わけの分からないソースの書き方するわ、わけの分からない知識を持ってるわで
めちゃくちゃだったらしい。 可哀想なことをしたよ。
3ヵ月間の研修受けさせた後に、可哀想だから俺の下に置いたんだけど暇になった
時にちょっとしたツール作ってもらおうとしたら、"echo"すら作れないでやんの。
確かに研修は1ヵ月間入門書を教えて、後の2ヵ月間は自習させてたけど他の連中は
そこそこのツールは書けるようになってたのになぜだ?
そんなにこの本って悪いの?
とりあえず、プログラミングを始めて挑戦する人には向かないって事だけはわかった。 スレを見る限り、Linuxの理解には役立つかなぁとド素人的に思ったけど、
そーでもないの?
詳解 Linuxカーネルとか、パラ見したけど、サーパリわからなかった。 >>391
あー、そういう用途なら止めとけ。
間違いなく役に立たん。
>>390
本も悪いがおまいはさらに悪いな
責任とって教育しなおせよ
これはKとかLみたいな廃人になりたい奴のための本だろ >>394
カーネルの中身を知りたいんだろうからそれも違うような…
まあ考え方とか読んでおいても損はしないか。
定番はTanenbaum先生本あたりだが…これも読むための基礎知識を
先に身に着けないと厳しいだろうなあ。
この本をプログラミング入門用と判断する上司は嫌だな プログラミング入門書としてじゃなくて、不要だから上げたんじゃないん?
彼女に恋愛小説でおすすめを教えてくれと頼まれて
何食わぬ顔で官能小説の題名を教えて
後日ひっぱたかれて「この本は彼女には向かないってことだけはわかった」
ってたとえられそうなくらいにアフォだなこいつ
390には新入社員に本をすすめるだけの能力がないだけ
この件に限っては新入社員も本も悪いとはいえない この本は入門書として悪いっていう見本じゃないか?
「プログラミングの知識が無い奴が読むとこうなる」
っていう、見本にはなったと思う。 信者は意地でも養護したいんだな
意味の分からない例え話もちだして
どうしたいのだか 擁護とか言われてもこの本がまともだと言ってるわけでもないけどな >>394-395
レスありがとうです。
詳解 Linuxカーネルがサーパリだった自分には、理解出来なそうな予感、
だが、とりあえず、Tanenbaumの本探して読んでみる。
ググッてみたら基本と書かれてたので、
理解出来る様、気長にジタバタしてみる
先は長そうだな(´・ω・`) 信者とかどうでもよいが、プログラム未経験者にOS自作についての本を与えて
プログラムスキルが上達しなかったと言われても、?と思うんだ
それともこの本は世間ではプログラム入門向けとして評価されているのか?
C言語を学んだとき、OSについての知識はなかったよ。LinuxでもWindowsでも関係なく学べた
本を読まずに評価しているのは悪評が多い傾向がある、が見事に実現していますね >>403
stdioあたりでOS絡みの話が出てくると思うが。
うまく書いてある本なら意識させないで適当に話を進めるか。
>>405
たしかにC言語を解説するならシステムの話は出てくる。だが、WindowsでもC言語は学べた。
言語はシステムに依存しないように向かって説明される努力がなされている。i/oあたりは依存部分と非依存部分
に分けてプログラムするように解説してたよ。C言語なら必ずシステム依存部分について一言触れていると思う。
それでもIA32とか関係なく学習できましたよ。 そりゃまあ普通の本にCPU依存の話書いた所で誰も読まんだろう。
別に知らなくても普通に使ってりゃ困らんし。
昔はポインタの説明でセグメントまで出てきて、さらに難解な物に
してくれたものだが…
I/O回りはいろいろあるから一通り書いとかないとねえ。
買って損はしなかった
OSの仕組みを知るにはいいと思う
自分はファイルシステムとHDDアクセスに興味あったから少々物足りなかった
それを考慮しても夢のある本だと思います
次回はosaskの本出して欲しいな
10000円以内だったら絶対に買うとおもう >>412
お前の意見も聞いてねぇよw
無駄だろ?で、ここは誰の意見なら聞くんだい? 2ちゃんねる は誰かの意見を聞くところなのか?
公式ドキュメントのどこにその記述がある? まあ満足しているならいいんじゃないでしょうか。
ただ、1万あったら悪魔本かTanenbaumせんせいの本を買うべきだと思います。 c言語、アセンブラの説明は全部リファレンスとして付録にしてもらいたかった
おっさんの独り言・・・ 家の建て方って本がでたと例えるなら、その中でsin関数やら建築法の話が出てきて
その解説も一緒に載せろというのと言われてもなぁ。触れる程度で十分だと思う。
もっと極端に表現すると、数学を学びたいが日本語で書かれていて、日本語の解説も載せろって感じ。 誤 : その解説も一緒に載せろというのと言われてもなぁ
正 : その解説も一緒に載せろと言われてもなぁ
ごめん。夜更かしは駄目だね。 >>417は、
おれは、おじさんだから(ベテランだから)C、アセンブリ言語の解説は、本文にいらない。
って言ってんじゃない?
>>420
ベテランならこの本の中で欲しいのはブート手順の説明だけじゃねぇの?
悪いけど折れOSつくったから
DOS−Vパソコンネイティブ対応のやつ
デバイスドライバーは比較的広い層をカバーする予定
少しまちなー こういう場合は
もうすぐ折れOSが起動しそうです。
ご連絡先
な方がいいんでないかい。
あぁ?
いっとくが今日折れは不良を一人倒してきた
からんできたから、回し蹴りと顎にチンを食らわせたら泣いて命乞いしてきたよ
折れは眉毛も剃っているし頭もリーゼントだからな
その辺の不良には負けない。 アンドリュー・S・タネンバウム教授著の
「モダンオペレーティングシステム」
って本を買った
7千円(+税)という値段に驚いた 失礼
途中で書き込んでしまったYO
とりあえずこの本を色々と参考にして、
ハリボテOSをいじくってみようと思う
以上 >>429-430
参考にならんと思うが…
原型をとどめない所までいじればいいのか。
何だかんだと、言っても「30日でできる!OS自作入門」は、
通算、3万部売れたようだ!
こういう技術書は、1万部も売れりゃヒット本にランクされるようだから、
大ヒットだな。 その中で後悔してる人は何割くらいかな?
周りに4人買ったやつがいるが、一人は全く読んでなくて
2人は途中で読むのをやめ、一人は最後まで読んで後悔してた。 そう、売れたということは内容の証明にはならない。
出版社が儲かったというだけだろう。 後悔したやつらがこの本に何を期待していたのかはわからないな。
>>390みたいなバカが後悔しているのだとしたら、気にする必要はない。
バカに合わせて内容を落とす必要はない。
バカが損をするのはバカだから仕方ない。
内容を調べてから買えばいいだけの話だ。
いっぽうで、
ttp://d.hatena.ne.jp/hariboteOS/
とかをみると、この本が気に入ったやつがとりあえずいることは確かだろう。
もちろんごくわずかかもしれないが。
俺が言いたいのは、この本がいいか悪いかなんていう話は信者とアンチのキモイ言い合いでしかないってこと。
本当にこの本を必要としているやつがこの本を読めばいいし、
そうでないやつが買わずに済めばいいだけだと思う。
信者が「この本はいい」と一方的に言えば、勘違いしてよく考えずに買うやつが出てくるかもしれない。
アンチが「この本は悪い」と一方的に言えば、勘違いして読むべき人が読まずに終わるかもしれない。
だからどっちのカキコも有害。
まあ、この本に限らず、書籍ってそういうもんだろ? >まあ、この本に限らず、書籍ってそういうもんだろ?
オレは「書籍は気になったら買っておけ」派。
買ってみたけど役に立たなかった後悔より,絶版になってから気にかかる悶々とした後悔の方がはるかに大きい。
うちの書棚は95%が「役に立たなかった後悔」で埋まっているわけだがw
信者とアンチの評価する観点が違っているような気がするわけですが。
技術的に問題外なのでダメといっているのがアンチ扱いされているのはわかるが、
信者がどういう点で評価しているのかよくわからん。
分数の出来ない子にとって、分数電卓は神。当然信者になる。
が、分数出来る人から見れば分数電卓なんて邪道の極み→ゆとりを馬鹿にせずにはいられない。 >>437
>信者がどういう点で評価しているのかよくわからん。
これ本気で言っているのか?アンチでわざと言っているのでなければ、
かなり心が捻じ曲がっているんじゃないのか?
信者というか評価しているコメントは>>435のリンクとか、wikiにいけば容易に見つかるけど、
根拠はこの本でOSが作れるようになったと実感したとか、
ポインタがわかるようになったとか、そういう単純なこと。
どうして>>437にこんな簡単なことが読み取れないのか、むしろそれがわからん。
むろん、本当にわかったのかどうかは知らないよ。わかったつもりになっただけかもしれないしな。
でも実際に読後にOS書いている人たちもいるみたいだから、本当にわかった人もいくらかはいると思う。 >>433
よくわからんけど、ダイエット本とか禁煙本とか英会話本とかで、
書籍購入者のどのくらいが実際にやせたり禁煙できたり話せるようになるものなの?
もうちょっと近い分野で比べるとはじめて読む486の読者のどのくらいがアセンブリ使いになっているんだ?
その割合と比較してOS自作入門の達成率の悪さは突出しているのか?
その辺がわからないとなんともいえない気がするけど?
つうかまあ、>>433が危惧するまでもなく日本に3万人のOS開発者がいなさそうなことからも
達成率がかなり少なそうなのは自明だと思う。 >>440
あまり本題に関係ないが「はじめて読む486」はアセンブラを勉強する
本じゃないと思うですよ。
アセンブラを勉強するなら『はじめて読むMASM』だろうな。
最近だとTECH-Iから出てるアセンブラの本かな? >>441 >>442
今どきMASMやTASMでは萎える。。それなら俺様アセンブラのNASKの方が
ずっと良い。
GCC/Binutils依存じゃなくMASMなんかの骨董品でもないNASKな環境が
アセンブラ学習用にはいい線ついてると思っている。 ふっ、滑稽な連中よのぅ
こんなん作るくらいなら Linux のカーネルいじった方が勉強になるのに >>444
プ。
あなたは本当はアンチ Linux ですね >>444
挫折した人がこういうのに引っかかるんでないかと。
というよりか初めに何から取り組んでいいかわからん人を釣ってるって感じだろ 1日目のフロッピーにファイルがコピーできないんだけど
installコマンドでフロッピードライブ動いてるんだけど
なにも書き込まれてない
これはフロッピーが安物なのが悪いのかな? フロッピー変えて出来たらそのフロッピーのせいだろう
変えても変えても駄目ならドライブとかそのほかも考えられるし。
・・・・何を当たり前のことを言っているんだろうなぁ俺 >>448
なにも書き込まれていないことはどうやって確認したの? それはファイルとして見えていないだけじゃないかと
ためしに起動するかやってみた? 容量も変わってないし起動しなかったと思います
やり方悪いのかもしれないけど
なんか今エミュレーターで起動してます やべ、ハリボテのIPLいじり倒してたらHDにインストールしちまった…orz なにがおもしろいんだ?
秀実のネタに笑えるようになったのか?
namu 立ち読みで読み終えたよ。
とりあえず、OSの仕組み分かったから自作してみる。 >>457
秀吉のタコっぷりがちょっと笑えるくらいしかないよ いや、CD-ROMでも可能だよ。その時はBIOSの設定でCDドライブの読み取りを最優先にしておけばいい。 >>462
俺は今20日目までやったところだよ。がんばってください。
ちなみにこの本では、自作OSをウィンドウズ上でエミュレータとして機動させて動作確認してる。
実を言うとメモリ管理の章がほとんど分かってないんだが、無視して先に進んでいるよ。 >>466
無視せずきちんと理解してから次に進め
先に進んでから必要になった時、戻って理解し直す時間がもったいない 往々にして後で戻ってくる方が理解が早かったりする。 >>468
それは無視せずにわからないなりに読んだりしたらだろw
466は無視して先に進んでいるしそれはないかと思われる しかし、この本説明の密度あげろよ
割り込み禁止をションベン我慢にたとえてなんかいないでw
確かに俺もそこは?だったが、まあ全体的には分かりやすくて初心者でもとっつきやすいと感じているよ。 hariboteOSをネットワークに継なげてほしい。 >>476
読んでないのでよくわからないが、これ一冊読破した奴が一体どこで難儀してるの? とりあえず、シリアルを拡張したヒトは居たよね?
あとパケットドライバなんかはシステムコールみたいな感じでやりとりしてた筈だから
そのまま移植出来たりはしないんだろうか? デバイスドライバーのロードって
char snull_names[16];
struct device snull_devs[2] = {
{
snull_names,
0, 0, 0, 0,
0x000,
0,
NULL,
snull_init,
}
…
てな風に書けばよいのかな? 推奨されている書き方があるのならそれに従えばいいんじゃないのかな?
まあ自分専用ならそもそもロードなんか考えずに手抜きしてモノリシックに行っても
いいと思う。要は呼ばれなければいけない時にちゃんと呼ばれれば動くんじゃない?
色々言われてるが昨日買ってきた
OS作るつもりなんで最後まできちんとやる予定
参考までに俺のプログラミング経験
C:最長で500行
JAVA:最長で200行
Perl:最長で20行www >>481
行数なんて評価基準になりませんがな。
本気でOS作りたいなら、とりあえずこの本は封印して
別の本で基礎知識を身につけるべきだと思うわけで。
>>483
学びたいんじゃなくて、作りたいのだったら別にいいんじゃね?
覚えたのが無駄になったり、この本でなまじっか知ってたのが障害になった知識でも
なにかあったの? >>483
そうですね。MINIX がいいのかな。
でも、i386 プロテクトモードを丁寧にコードつきで説明している本があれば先にそれがいいのですが。 >>484
だね。
オレ自身はなんでも基礎重視派だけど、そうじゃないタイプで
ものを学んでいくタイプの人も間違いなくいるしね。
キソキソ言って挫折する「よりは」多少大雑把でも実際に動いて
うれしたのしで進んでいくほうがナンボかましな気もしないでもない。
(別に基礎からちゃんとやってできるようになった人を否定してるとか
じゃないからね。揚げ足とらんでくりゃれ) %comspec%って書いとけば!cons_9xと!cons_ntに分ける必要ないんじゃね? >>485
「はじめて読む486」
これが王道かな >>490
それ読むとプロセステーブルの作り方がリナックスと
違ってて若干混乱すると思われ CPUやOSの基本動作(スイッチングetc)なんかはIntelの資料だけで十分なんだけど、I/O回りでどっかにいい資料ない? エミュレータのソースを見比べてみるのはどうかな?
チップ絡みはたまにPDFが落ちてたりするね。
本当は古いPC雑誌なんかが一番わかり易い気がするんだけど、
32bitの頃になるともうそういうのあんまり無くなっちゃったなあ。
まあレガシーデバイスには参考になるのがあるかも? 随分前にこれは読んでみたんだけど。
自動起動すればOSだ、みたいな安易な目標設定で30日を翻弄する、
と書いたら言いすぎなんだろうけど、書籍付属のCD-ROMは説明どおり
なら自動起動するはずが自分の環境ではうまくいかなかったし、ちょっと
未完成な感じが否めないテキストって感想だ、正直なところ。フロッピー
一枚上にQNX DEMO程度のOSが完成するくらいの内容は欲しかった
って感じかな、欲を言えばの話だけど。 >>497は一体何を言ってるんだ? 単に既出だって言いたいだけ?
それともなにかそういう理由があるの? 文章部分には無駄が多いかなと感じた。
推敲すれば半分ぐらいの厚さで済んだんじゃなかろうか、と。 正直内容的には昔の雑誌の特集分位だろ?
まあ月刊誌の一号分だから1ヶ月だと考えると納得できるよな。 >>490 >>492
コールゲートをつかっているOSはありますか? >>496
Pentium 100MHz位の環境でも問題なく、はりぼてOSは起動できたけどね?
VGAのチップが、昔のsvgaとか、今でいうvesa互換などでないと動かんかもしれんね。
VGAの件は、著書の中で書いてあったような気がした。
はりぼてOSは、OSASKと同じくらいの内容のOSだったよ。 まあOSASK程度のOSの作者じゃなきゃあんな本書けないよな。
>>501
*BSDとWin9xがコールゲートらしい。
NT系は割り込みorXP以降でCPUがサポートしていればsysenter。 もうちょっと整理したのを出して欲しかったな
試行錯誤の過程を見せるのもいいんだけど、ちょっと寄り道が多過ぎる
開発に使ってるツール(z_toolsとか)が何をしてるのか仕組みを簡単に説明してくれるだけでも欲しかった
これが無いとMakefileが何をしてるのかわからないだろうし
整理すれば700pも使わなくてももうちょっと突っ込んだ話も含めても500pぐらいにおさまるんじゃないかな
そうすればOS開発のバイブルになると思う
一般的なPC環境も変わってるし、もっかい書いてくれるのを希望
『30日でできる!OS自作入門 2』 とかどうよ? >>505
{Free,Net,Open}BSDはint 0x80だったはず。
>>506
売れねえと思う。
>>507
>売れねえと思う。
同感。あの本がどうこうとは別に、タイミングや時節があると思う。
もし出すのならあの本をチョコット弄ったものじゃなくて
まったく新しいアプローチで最初から組まないとね。
書きたいと思ったやつが勝手に続編書いてネットにでもアゲたらいいんじゃない?
たぶんKはそっちのほうが喜ぶ気が 自分も斜め読みしたくらいだけど、役に立つとは思えないけどな。
ほとんど、「CDに入ってるからコピー」で簡単な説明だけ。
簡単な説明って言っても、コードの説明だけでハードの説明はないから
付属のコードを使わないで、1からOSはあの本読んでも作れないと思う
そりゃ、CDの内容コピーさせてビルド通すだけなら誰でも作れるでしょ。
あと、所々で自分の「思ってること」を書いてるから矛盾したりしてるし。
どうせOSなんざ作る気の無い奴がなにをいけいけしゃあしゃあと。 あの本を素人に渡してどうなったかの日記が読みたいな。
一体どの辺で泣きついてくるんだろうか? >>512 つ ttp://d.hatena.ne.jp/hariboteOS/ >>512
挫折するなら5〜6日あたりじゃないかのう。
そこを乗り越えれば全部読めるとは思う。
読み終わったあとどうなるかは…
どこかに使い物にならん新人が出来上がってしまったとか
あったような気がするが。
本読んでOS作った奴はネットに繋がってアプリやドライバ作成の開発に参加
出来るなど、読了し終えた奴は期待され、意味や意義を見出し得る次の舞台へ
の道案内をしていないと読了した読者も閉塞感と徒労感に終わってしまい、ダメ
なんじゃないかな。一生懸命それぞれが自分の洞窟を掘って一番奥に座って
『出来た!』なんて一人満足に浸るイメージを持っちゃうね、この手の本。
結局2chなんかを探し当てて掲示板で意見し合うだけのネタで終わっちゃう。
そういう感じの著作ってもったいないような気がするよ。 ttp://pc11.2ch.net/test/read.cgi/os/1170569941/
ここの妄想厨 そんなの著者自身ですら出来てないのにどうしろと?
何か試行錯誤でもしてるんなら謎のソース倉庫でも作って書き散らして置けば良いのに。
73 名前:Be名無しさん[] 投稿日:2008/07/18(金) 07:05:20
これから自作のOSを造る方は、将来魅力的なアプリケーションを
これだけ持っている、と自慢できるような強固で動作が速くてセキュリティ
面で安心なものを造って下さい。
最近、linuxをちょっと触ってみましたが、OS自体に速さと信頼性が欠け
接続デバイスに対する対応も限定的だったりデバイス能力を発揮させて
いなかったり、実用性に欠けるような気がしました。
特に大学や専門学校でオープンソースでOSを手がけようなどという
人は指導教授らと共に世界に冠たる立派なものを造って下さい。
まあ、一パソコン利用者の勝手なお願いですから、読み流してくれて
いいんですよ。こんな投稿が気に障る方がおられたならゴメンね。
こんな奴に何ができるんだ?所詮批評ごっこしかできんだろ まあやる気がありゃ猫でも出来るだろ。
かけらも感じないけども。 いきなりPCの超大幅仕様変更があれば、個人開発者なんてあぼ〜んだよねぇ・・・・
M$他の企業ぐるみでポンと変えられたらどうなるよ?
そんなことを考えるとやけに寂しいもんだ >>522
それが出来ないから64bitなCPUで16bitバイナリのDOSが動いてしまうわけで。
>>520
>こんな奴に何ができるんだ?所詮批評ごっこしかできんだろ
何もできませんが、何か?人の意見に批評しているだけのあなたが
『所詮批評ごっこ』って、他者批評ごっこですか?自己紹介か何かですか? OSの存在を忘れさせるアプリ重視のPCスタイルって有りだと思いますよ。
WinだLinux(Unix)だディストリなんだかんだ・・・なんて無駄な議論を突破する
のは革新的進歩じゃないですか?BIOSチップを入れ替えるだけでOS観念
を払拭出来てWinアプリもUnix系アプリもなんでもござれ、は良いと思います。 >>527
当然自作の意欲を結集する中でまとめ役やパトロンなんかが必要に
なるプロジェクトになるんじゃない?個人個人のやる気をまとめる手掛り
にはなるかもしれないネタ振りだよ、批判しないで。 >>527
>それ自作できる目算でもあるの?
20年くらい前にソフトウェアチャンネル構想とかあったでしょ。BIOSチップの
入れ替えでなんたらかんたらってやつ。20年たっている今出来ることは
その延長にないかと問い掛けてるってもん。批判は凹むから止めてくれ。 >>527>>531
いや、いいんだけどさ、それを、こうやればおまいらでも作れる!
みたいな提案があるのか?ってこと。
まとめるってのは結局そういう事でしょ? あ、レス番間違えてた。
532は、527じゃなくて>>528宛
>>533
別に自作ハードだってあるぜ?
まあここはOS板だからファームウエアの話までになるだろうけど。 いや正直、なんでもいいからやる気くれー ってのは有るんだよなあ。
かといって夢物語言われてもやる気なんか出ないけどね。 世間の言う現実は、常に下方修正だということを頭に入れて置くように OSの話をしていると、
ブートローダの仕掛自体が分からないでOSがどうのと言っている
OS以前の理解に問題がある人と話していると話が見えなくなることが暫々ある。
この本などを読むとブートローダ等の理解は高まると思うのだが… 確かにブートしなきゃOSも糞も無いが
なにもOSを語る上で必須項目じゃないよ
どうせ似通るんだし、それより起動してからに重点を置くほうがよっぽど良いだろう OS作って、OS(kernel)を立ち上げるっていうなら、
ブートローダの理解は必要じゃないかな。 そういうつまらん所で悩むくらいなら、
GRUBで起動できるようにしておけばよかろう。
というかその辺を自力で資料集めて作れないレベルじゃ
その先を作れないと思う。
カーネルおじさん立ち上げるのにGRUB使うのはよくある話
全部自作じゃなきゃやだって言うなら、まずCPUの自作からだなw
>>543 >>544
じゃあ訊くけど、
はりぼてOSやOSASKってGRUBで、どういうコマンド打ってbootするの教えて。 >>548
はい、
初版第6刷持っております。
「30日でできる!OS自作入門 II」が出るのを心待ちしてるところです。 お前ら・・・偽者だ何だ言う以前の書き込みだろそれ・・・・ しかしさ、自作するなら既成のでは互換モードでしか使えないような最新?デバイスに
フル対応できるとか、そういうアドバンテージというか余録がないと気合も入らないよな。
オペレーティングシステムなんてモノを制御できてなんぼで、マルチタスクが泣くぜ。 いや、例えば単なるIDEサポートと、ブルーレイ完全対応を謳うのってなんか大差あるかな?
むしろモノが限られている分、資料さえ引き出せれば後者の方が楽だってことも? Drive deviceの実装より
Network(TCP/IPとか)の実装の方が、インパクトが強いかもよ。
ででででっででー
「りなっくすぅ〜(しゃがれ声)」
で事足りてしまうので、斬新さがなければそもそも作る意味が無い罠 Linuxで、FDD一枚でNetworkをGUIで操れるものはないよ。
Tomsrtbtで、Network Device組み込んで使ってみたけど、
Deviceの組み込みとか、Networkの設定が専門的スキルがないと
けっこう、難しい。
それを「はりぼてOSでGUIで簡単にできたなら」画期的だよ。 正直、DOSでパケットドライバ組み込んだ方が楽だよなあ。
速度は出ないんだろうけど。 >>560
HAHAHA,なぜFDDにこだわるのかね? 昔の古いノートPC(Pentium100MHz MEM 8MB)に、
Tomsrtbtで、Network Device組み込んでファイルサーバにアクセスしたり、
FTPサーバにファイルサーバからのhoge.fileをアップしたりでとても便利なんよ。
FDDに拘ってるわけではないけど、FDDで、できれば次はCD-ROMでできるんじゃないかな。 Pentium100MHz MEM 8MBのノートPCには、CDドライブ付いてないもんね。 っていうかネットワークなんて特別扱いする必要あるの?
ストリームを右から左なんてOSの基本じゃん?
その上でパケットを処理してるだけだぜ?
SATAなブロックデバイスと何か違う? PCにNetworkがあれば、
1. ディスクがなくてもサーバに継いでOSを立ち上げることができる。
2. OSをNetwork経由で、installできる。
3. 危険な山岳地の測候所等のdetaをNetworkで簡単に取り込める。 イーサなんてOSから観れば単なる拡張バスだった方が便利なんじゃない?
単なる歴史的建て増しインターフェースとしか思えないんだよな。 よし、ファンとディスク回転で温度変化させて通信しよう。
2基づつ重ねて8基使えば4bit取れるな。 この本を読んで、OS作ることができなかったとしても
BootloaderやVGAの基本的な事がわかると思う。 メガデモ作るくらいしか役に立たないような気がするが。
効率悪すぎ。
この本に効率求める人ってなんなんだろうね、池沼なんだろうか この本に効率求める人って、何なの?天才なの?出世するの?生きるの? 30日で!とか銘打ってるんだから、なにもおかしいとは思わないな。
まあどうぜ趣味なんだから生き急がなくてもいいじゃないかってのには256%同感だけど。
それともそんなよくあるハッタリに釣られるのはオメデタイって意味かな?
結局、あくまで「OS自作入門」が30日だからねえ、OS自作ではなく。 タイピングスピードがある程度あれば、数日でOSくらい作ることできるだろ
間違いなく写す能力さえあればwww >>581の言ってることは案外的を得てる。
30日でできるOS自作入門は、簡単なOSの雛形に段階的な解説を加えてるに過ぎない。
はじめて読む+タネ本は、OSの雛形はMINIXしかないけど、その理論や実装、ハードウェアの仕様に至るまで、詳細に知ることができる。
同じものを作るなら前者のやり方がいいけど、行き着くところ>>581の方法がいちばん効率的だな。動いてるOSを作ることが目的ならなおさらこの方法がいい。
逆にまったくオリジナルの発想を形にする場合、形にするための知識は後者のほうが無駄なく満遍なくつく。時間はかかるが、きちんとしたビジョンがあれば決して無駄ではない。
何を目標とするかによって、その方法を考える余地はあるだろうな。
その余地を与えた分この本は良かったと思うよ。
効率云々なら、まずそもそも既にあるもの以下の性能のものを作ること自体が非効率的なわけで。 写経こそ効率悪いんじゃないのか?
3分クッキングでいちいち出来上がり待ったりするか? 「30日でできる!ブートローダー自作入門」
くらいがちょうどいいんじゃないかね OS自作キットの定番はこれ
http://ja.wikipedia.org/wiki/Slackware
Linuxカーネルを使ったらLinuxになってしまうのでアップルのDawineやFreeBSDのカーネルなどを使おう。
TRONでもいいし。 実は……この書籍用のOS記述Editorを今作っているところなんだ けっこう売れてるんだな。
次は『OS自作中級編・次はファイルシステムだ!』に気体 印税が10%で、1刷が3000部。
3800/10*3000*12=1368万円 >>602
同人誌レベルならありえるんじゃないかなぁ
もっとも、WEBページにまとめたもの(つまりまとめてから)を軽く構成するレベルだろうけど >>603
もう一回3000も刷ってないと思うが。
ファイルシステムの話ならgrubの中の人に書いて欲しい 今月21日に東京であったオープンソースカンファレンス東京2009スプリングの受付の後ろで
本の即売会(オライリー/毎日コミュニケーションズ/もう一社あったかも)があったので
この本を買ったけど、
2009年2月10日 初版第13刷発行
だったよ。 2008年度の米国での本の売り上げ
(米オライリー・メディアが書籍販売のPOSデータを管理・提供する
ニールセン・ブック・サービシズから得た物。
オライリー・メディアのマイク・ヘンドリクソンがデータを可視化・分析)
プログラミング言語関連書籍全体の売り上げは、
2007年: 185万部、2008年: 174万部
Ruby: 6万1200部
C#: 27万部
Java: 24万部
PHP: 17万3000部
Python: 5万9500部
JavaScript: 17万3000部
Perl: 2万9000部
VBA: 5万6000部
Visual Basic: 7万2000部
果たして、OS本だけで13刷 * 3000部 = 3万9000部も売れるのだろうか? OS本としては異例と言える売り上げ、という声を聞いたことがある。
ふつうOS本を買うのは、メーカーのエンジニアか大学の計算機学科で
システムプログラムを専攻する奴だけ。
自作したいアマチュアを対象にした本なんて前代未聞だったからな。
今のところ空前絶後だし。 >>610
3000部刷ったのは最初だけで、今は1000〜1500くらいじゃないかい。
多分25000あたりと予想してみる。
それだけ売れれば下手なCDやDVDより売れてるじゃないか、安い文庫本ならともかく。 米国全体で、Perl本が2万9000部しか売れてないのに、本当に25,000部
も売れたのだろうか。しかも、Perl本と言っても複数の著者を合わせた
合計の部数が2万9000部。 2008年度の年間リサーチだからそんなものじゃないかな。
Perl本の今までの累計だったら桁がちがうんでないかい。 一番最初にやったヤツが儲かるのは当たり前。
何も出来なかった曲学阿世プギャー ttp://crekin.net/syuppan/syuppan2.htm
「10万部」を「50万部」に変えるのも、「大衆に流されやすいという日本人」
の性質を突いた戦略である。
「発行部数」以外には「刷数」などもいじられることがある。実際は5刷り
までしかしていないのに、奥付の数字を「10刷」と変えたりする。これも売れ
ている本を演出する手段だ。 信じない奴は勝手にすればいいのさ。
売れない本を店頭に並ばせ続ける余裕がある出版社が
いまどき存在すると思えるおめでたい脳味噌らしいしなw 図書館においてある「出版年鑑」を見ればはっきりするかも:
ttp://www.ndl.go.jp/jp/data/theme/theme_honbun_100050.html
売り上げ部数が書いてあるらしい。 >>617
刷の捏造は、1刷あたりの部数を極端に減らせば可能だな。
でも部数の捏造って詐欺になりそうな気がするんだけど、どうなんだろう?
>>620
Kって部数や刷数を自慢しているの?
>>621
まさかここまでは来ないだろうw まあ、売れてるなら結構な事じゃないか。
問題は次の話だよな。
サイトで続編連載でもして駄目出してまとまったら本にしようとか、そういう計画はない訳? >>624
まず、続編という発想(というかなんというか)がダメ。
いくら30日本が売れていようとも、続編がそれ以上売れることは無いわけで
30日本発売当初も、安く仕上げることとか、
最後まで見てもらえるようにと、あんな人を殺せそうな厚さの本にしたし。
(複数冊に分けずにね)
それにKも、4月からは先生業を始めるし、
やっと30日本のサポートのほとぼりも冷めて開発自体もなんか楽しそうなことだし
多分、続編は書籍にならないで、KかKの周辺の人が
・まとめて印刷用PDFでも置く とか
・(まさかのカオちゃんのエロ同人と共に) 同人誌として発行する
とかぐらいじゃないだろうか・・・
(「続編を出すなら同人誌として」ってのは、同じくそこそこ売れたフィギュア製作の本の著者の人が言ってたんだよなぁ) >>622
> >>621
> まさかここまでは来ないだろうw
>>620 と1分以内で、NWSスレにトリ付けてレスを書いてる。ほぼ確定。
やめなさいよそういうことは>L 柳の下の2匹目のどじょうは、本人が狙ったら「2番煎じ」と叩かれるだけ。
古くなった内容を刷新して、内容を増強して、という「第2版」なんてのは、
そんなにすぐに出せるようなもんじゃない(すぐ出せたら一冊めが手抜きってこと)。
例外は、1冊目が内容を削りに削った本だった場合ぐらい。
まして30日本は、次に読む本として想定されてるのが、Unixのカーネルの本とか
リアルタイムOSの入門本(CQ出版の「オペレーティング・システムの基礎」とか)
のような学術的だったり高度な本で、そのレベルの本はKには書けないw >まして30日本は、次に読む本として想定されてるのが、Unixのカーネルの本とか
>リアルタイムOSの入門本(CQ出版の「オペレーティング・システムの基礎」とか)
>のような学術的だったり高度な本で、そのレベルの本はKには書けないw
そっちに行く必要はないんじゃない?たった二ヶ月目で出来る?
改訂しろっていう訳でもなくて、宿題にしておいた分とかが出来ない人の為の模範解答、いわば補習本だな。
そもそも誰も全然、30日で棚上げにした問題とか発展課題とかをやってないんだよ、著者自身も含めてさ。 実際のところKはもっとレベルの高いことができるんだろうけど
読者のことを考えてレベルの低い本にしてるわけかな?
能ある鷹は爪を隠すってやつ? >>629
そんな余力があるならもう少し応用が効くようになってると思うわけだが。
世の中には、「OS自作キット」なんてものは
ないのかなぁ。 革細工のキットなんてのはカットまでされていて縫うだけってのもあるが
それならもう、組み込みと大して変わらん気がする >>632
OSKit
止まってるような気もするが…
Windows from Scrach マダー?? 筆者がひきこもってしまったので話題がないのです。
というか、30日で完結してしまってその後の応用課題的な物がないので
読み終わった後、どう手を動かせばいいのかわからんという。
内容的にはCでOS自体を作る事を主眼にしてるからなあ。
漏れの欲しい情報は無かったが、os作ってみたくなる感じには成るな。
料理で言うとレシピみたいなもので、原理とかなぜ?ってのは全然解決出来ないが、記述されてる手順に剃って進めれば、一応OSらしきものが作れる様には成ってるって意味では、よく一冊にまとめたとは思う。
でも実際独自os作ろうとすると、仕組みとか理解出来てないと無理なので、圧倒的に情報足りないし、そのへんのフォローも無いからなあ。
即席過ぎて、実機でヲレOSを動かすようなリアルな戦場に投入したら、一瞬で機銃掃射受けて即死って気分w
次、描く気力有るなら、PCアーキテクチャでの独自osの組み込みかたのほうを深く掘り下げて欲しいな。本格的な組み込み目的にも使える様に、非PCの場合の組み込み方法も最初だけでも説明出来てると完璧。
linuxあたりのブートローダを自力で解析したほうが速いのだろうけど。
気になった点:
今更、fddって。
hdd起動からスタートしたほうが現実的。int 0x13のdisk bios使える部分で十分だが。
なぜブートストラップをbios読み込み後に、独自os読み込みが必要なのかさらりと流されて説明されてなかった様な。
biosの起動処理では1セクタの512byteしか読まないとか、独自os読み込んだり、osに制御移す前にいろいろ準備しておくのはブートストラップの仕事とか説明が必要だと思う。OS作るほうが主眼にしても、自分で土台が作れないと、osも読み込めない。
独自ツール付属させて使わせるのは、敷居下げてos作りやすいけど、途中丸ごとすっ飛ばしてる訳で応用が利かないから、ちゃんとnasmでのやりかたも取り係だけでも説明するべきだったと思う。あるいはハンドアセンブルだけで進めちゃうとかw
なんか、自分が欲しい情報を描いて自費出版したくなってきたw
os自作本の出版入門本なのかもなw
チョンのほうの自作本は酷いな。
最初にヲレリナックスもできるけど敢えてウィンドウズで描いてるから勘違いするな的文言がいきなりアレだし。
わざわざセグメントの説明している重要な所の説明がいきなり間違ってるしw
ちゃんと確認すらせずに出版するのがチョンクオリティなんだろうなw 独自ツールって、ソース位付いてないの?
あるなら見ればどんな処理やってるかわかると思うんだけど。 見れるくらいなら本読まなくてもos作れると思うが。
osのソースぐらいインターネットなら無料で拾える。 なにその鶏と卵。
メンドι)から親子丼にして出してくれよ。 っていうか、アセンブラなんてハローワールドのサンプルさえあればあとは切り貼りで使えるじゃないか。
一体乗り換えで何を悩むんだ? Hello World に一致する日本語のページ 約 585,000 件 (0.38 秒)
らしいが、サンプルなんて無いよw 585000件全部調べてから言ってる?
まあ普通の人間は適当に絞り込むだろうけどね。
たとえば
Hello World NASM サンプル
とかさ Hello World NASM サンプル に一致する日本語のページ 約 3,260 件 (0.41 秒)
db "hello world!",0
これかw とりあえずプログラミングに関して今現在においては救いようのないバカが居ると言うことはわかった >>649
ググった
Hello World エロゲ の検索結果 約 22,700 件 (0.69 秒) Hello World 童貞 に一致する日本語のページ 約 19,300 件 (0.25 秒)
Hello World 処女廚 に一致する日本語のページ 約 2,320 件 (0.23 秒)
Hello World キムヨナ に一致する日本語のページ 約 3,760 件 (0.30 秒) 俺も買った・・
コピーして貼りつけするみたいな感じで
ハウツーでは無かった
懐かしいな そのまま写せば確かに動くけど、オリジナルosを自作する為の仕組みの理解には役に立たなかったな。
自作pc見たいなノリの自作os本という意味ではよく出来てるのだろうけど。 人の作ったものをちょっとずつ改造するとか、
まずは大部分を人の作ったものから持ってくるとか、
はじめて何か作るときの基本だと思うが。 あんなんと比較しちゃTanenbaumせんせいに失礼だと思うわけで OS入門と思うから不満なんじゃないの?
マイコン自作入門だと思えば、BASIC程度のOSが載せられれば御の字ではないだろうか? 最後にさらっとでいいから実例の比較解説があれば良かったのかもね。
例えばOSASKやその他OSでもまだ未実装だったり問題が残る部分の
具体的な要求仕様を書いておけば、本家本元に先駆けて課題クリア
みたいな目標ができて面白くなってたかも?
種本のMINIXがもし実用OSだったらlinuxは生まれなかったと思うんだけど、
ハリボテからそういうOSが出なかった理由はどの辺なんだろうか? そういうってどういう?
linuxはよくも悪くもUnixの遺産を引き継ぐというタイミングに恵まれただけでしょ。
そして一応それができる器(Unixもどき)だった。
ハリボテにそういう要素は全く無いわけだし。 MINIXのような教材OSからLINUXのような実用OSができたっていうね。
まあ普及したのはタイミングだったんだろうけど、それでlinuxの何かが変わるわけじゃないし。 そうだねLinaxはMinixのパクリだから誰でも作れるね >>669
あの本はこうすればハリボテが出来るという話しか書いてないから
応用課題へ進むための取っ掛かりがない
>>673
それこそ、30日でできる応用編とかもあってもいいような気がするけど、
重版出たというのが本当なら、続編みたいな話ってなかったのかな? >>676
そういうのは各自でやれという方針だったような気がするでよ
>>677
「入門」ってタイトルなんだから実践とか応用本があるのがセオリーじゃない?
まあ>>673の内容こそがむしろ実践本じゃないかって気がしなくはないけど。 挫折者向けにして、「あなたでもできる!OS自作(再)入門」
とかどうだろうか? この本の内容からさらに応用ってなったらもうほとんど
ソフトウェアのお話じゃん。
ルールなんか無いんだ。自由に作れよ。 USB!USB!
…まあDVDでもいいけど今更だろうし。 本気でOS作りたい奴は自分で勉強する。これ大前提。
それでもいざ実際に作ろうと実践的な事となると色々詰まるところが出てくる。
むしろそういう時のための本でしょこれ。
本当の初心者ならどう筋道つけて勉強していけばいいかもわからない
OS入門は最低限どういう物が必要か書いてあるからそこから自分で勉強するとっかかりになる。
右も左もわからない状態だとそこから進むのは難しいが
不明な点がクリアになっていれば勉強もはかどるというもの。
そもそも一冊の本を読んだだけで全く新しい設計の自作OSが一から完璧に出来上がるなんてのは無理。
それはこのOS入門に限った話なんかでは無くてモダンオペレーティングだろうが何だろうが同じ話。
あくまで実装例というレシピを見せる事で何が必要なのか自分で考えられるようにするための本でしょ。
この本の画期的なところは、理論の説明は最低限必要なものにとどめているけれど
とりあえずこういう動く実装例があるから参考にしてくれ。と提示している事と
初心者でも扱えるツールの整備と使い方の解説までやっているところ。
gccとかgasとかだけ手にしてOSを作るための使い方がわからず(OSアプリしか作れず)途方に暮れた人は
実際にOSを作ってみようと思ったような人なら山ほど居るのではないか?
実際にOSを作ろうと思ってみた事のある人ならわかるだろうが、そういう途方にくれそうなところが
ことごとく整備されてる(実際のOSの設計はあくまで自分でやるもの。自作OSなんだから当然。それ以外の部分。)
というのがいかにありがたく、またその領域に踏み込んだ本が今まで無かったか痛感するはず。
逆に言えば、OSの仕組みを理解したい「だけ」ならこの本は向かない。あくまで「自作の実践」を解説した本だから。 自分で勉強できる人が読むような本には見えないけどなぁ >そういう途方にくれそうなところがことごとく整備されてる
ことごとくは言い過ぎなんじゃない?
たとえば、設計はとりあえず既存OSのまま、つまりクローンとか別CPUへの移植を考える場合だと、
この本読んだだけじゃ見てくれの模倣程度しかできないんじゃない?
誰かちゃんと作り込めた人居るのかな?
中身はまさにはりぼてそのものなら、BASICでつくったなんちゃってOSの方が全然凄いわけで。 >>685
だから自分で勉強できるようにとっかかりを得る本ってこと。 >>686
とりあえずでも一通り全部お膳立てを揃えたっていう入門書自体が今までに無かったからね。 一通りというか最低限でレガシーなので、VM用イメージ自作入門って感じ? OS側のソースコードは最低限だけど
開発環境のお膳立てという意味では一応一通りちゃんとそろってるよ。
アセンブラとCで作る限りにおいてはもっと本格的な物だって同じツールで作れる。
(そりゃどんなマシンでも開発できるとかそういう万能性は無いけどね) >>690
「はじめて読む486」ってタイトルであれば、むしろ本物より評価できそうだね。
逆に言えば、独自ツール故にそのサンプル解説から抜けきらなかったということだろうか? えー、だって本物は初心者がみたって途方にくれるだけだと思うんだけどなぁ。 プログラムのプの字も知らないような奴を対象にした本じゃないし。
何らかのCPUのアセンブリ言語が扱える人間が対象と前書きに明記されてる。 >>694
だからこそ、ど素人に曲がりなりにも特権命令使わせてるのが評価できるってことさ。 はじめて読む486は、はじめて読む8086を読んだ事が前提となってるっぽいからなあ
帯なり表紙なりにその事をちゃんと買いとけよ!とは言いたくなるが。
でも8086と486を上下巻のつもりで買い揃えさえすれば入門者にも無問題だとは思う。
486のサンプルコードをCでなくアセンブラでかけよ!とは言いたいが。 ていうか『はじめて読む486』は、他の『はじめて読む(型番)』と全く違う内容なのに、
まぎらわしいのが問題。 >>696
>486のサンプルコードをCでなくアセンブラでかけよ!
いや、C でかけるところは C で記述し、どうしても難しいところは、アセンブラで書く、という王道をいっているとおもうのですが。 それは「普通のアプリケーションプログラム」の時の話でしょ。
CPUの内部を直接いじるのに、それには向かない言語で説明されても困る。 OSの場合も同じ。
本当にCPUの内部を直接いじる必要がある所がどこかわからないのは三流。 一流の人間が入門書なんか読むかよ!
まだ一流になれないから入門書を読む訳で。
入門者に分かりやすく書かんでどうする。 だから、『はじめて読む486』は、コンピュータの入門書でも、486を教材として、
マイクロプロセッサに入門する本でもなくて、リアルモードでの機械語プログラミングや
C言語や、OSの基本をマスターしてる人に向けた、486のプロテクトモードを
解説する本なんだって。
だから、ただ一つ欠点があるとすれば >>697 にある通り。 >>703
リアルモードに熟達していない人には読めない、という意味で「入門書ではない。」
いや、「プロテクトモードの入門書」であることは否定しませんが。
あと蛇足ですがアラインメントを para にしないと動かなかった経験があります。 >>703 もしかして他の「はじめて読む」を知らんのか? タイトルからしてこれ以上分かりやすいのは無いくらい
入門書だーーー!!!って書いてあるのに
どうやったら入門書では無いという解釈が出てくるのやら
もしかしてCPU知識以外OS作りのスキルを全部備えた人しか
決してこの本を手に取る事が無い、なんて思ってる?
一言言わせてもらうと「そんな訳ないだろ。」 >>707
「はじめて読む486」のことだったら、あー、>>704。
いや実際俺も昔々i8086のコードが何とか読める程度の知識しかない状態で
はじめて読む486を読みふけってたんだが
どう見ても入門書でしょ。 >>709
そうですねえ。どういう点が入門書だ、と感じましたか? どういう点がも何も
i80486の(実質i80386の)新機能について当時の自分程度のスキルの人間にも分かりやすく噛み砕いて解説されてた点
としか言いようがない
サンプルコードがCなのはともかくとして
機能の概念説明みたいなのは間違いなく初心者向けの良く噛み砕かれた説明なのだが… 日本語の問題でしょ?
はじめて読む○○だから、読者のはじめて読むCPUが486の場合に対応できなければ看板倒れ。
はじめて「の」○○だったら、x86はおろか386まで既知の場合だけが対象でもおk。 そもそも「はじめて読む486」ってのは
それを読んだ人がみんなこぞってOSを作り始めるっていう趣旨の本って訳じゃないでしょ。
単に新CPU(出版当時)の新機能を理解したいだけって人だって大勢居たわけで。
さらに言うと、386や486が出てきた当時はまだDOSが全盛期で
386の機能をフルに使ったOSなんか全く普及していなかった。
むしろMS-DOSにおけるEMM386みたいな「386/486の機能を部分的につまみ食いする」
使い方の方が 圧 倒 的 に 主流だった。
仮想86機構「だけ」使いたいとかページング「だけ」使いたいとか
そういう人が大勢居た時代にあの本は発行されている。
決して「本格OSを今から作る!人のみを対象にした本」では無かった。 DOSが全盛期だったから、保護機能以外のことはたいていわかってる、という
人が主な対象の本だったよね、という話だと思うのだけど。 >>713
出版当時(1994年) の状況を思い起こすと、プロテクトモードの解説を意図した内容に食らいつく層は、
>本格OSを今から作る!人
にかなり近似していると考えざるを得ない。
ちなみに Windows3.1 は 1993年、Windows95 は 1995年もおわり近くだったか。
当時はいろんな意味で熱かった‥‥‥。
何の根拠も示さずに「考えざるを得ない」とか言われても >>716
昔話だ。根拠を求めるなんて野暮というもの。
それともまだ生まれてなかったのか? 当時は仮想86使って市販ゲームのCG抜いたり
一部ハードをエミュレーションしたり
そういう野望を持ってた人の方が多かったと思うがね
そんなに早くから386の機能を活かしたOSをフルスクラッチで作る運動があったら
自作OS界隈がこんなに細々としたものである訳が無いだろうに
そもそも自作OSが一定の盛り上がりを見せる様になったきっかけは
世の中がWindows一色になった事に危機感や反感を持った人が多く現れた事だって理解してる?
386登場から世の中がWindows一色に染まるまで何年かかったと思ってる?
DOS全盛時代はまだTownsOSとかHuman68Kとかがそれなりに身近にあったし
DOS環境自体PC-98/Towns/PC-ATと複数存在したので
Wintelマシン(PC-98/Townsも含むか)上でWindows以外のOSを作らないとパソコン環境が画一化されるという
切羽詰まった危機感なんてまだ(あまり)無かったんだよ? 思えばFreeBSD/LinuxにはじまるPC-Unix環境が盛んになったのも
そういう種類のWindowsへの危機感や反感と決して無縁では無かったように思う
もちろんパソコンがUnix系OSを実用するに足る性能を備えてきたという要素もあるが >>720
FreeBSD が最初に日本でひろまったのは、1.1.5.1 のときだ。その頃は Windows 3.1 がメインであった。
wintel 体制が固まった、とはいえなかったが、windows3.1 はそれなりに市場に受け入れられていた気もする。
私も Programing Windows を買ったようで、手元に残っている。 いわゆるWindowsブームはWindows 3.1の頃からだったな。
Windows 95は更に爆発的に売れたが、Windows 3.1が世間に知られていたからこそという感じだった。 >>715
情報ハイウェイとか叫ばれて、BSDが完全フリー化して、
UNIX陣営も東西統一で終わりが始まった頃だったのか。
今考えると国内(アマチュア)のブームってちょうど10年遅れてたんだな。 なんかDOSみたいなデバイスドライバ拡張用の規格ってないの? どんなOSでもデバドラフレームワークはあるわけだけど?
ただDOSと違って、普通のプログラムは保護モードで動くのに対して、
デバドラは特権モードで動くという違いがあるので、その差を意識して
プログラミングをしなきゃならない。 規格をサポートしているどのOSでも使えるドライバはできないか?って事でしょ。 MS-DOS にそんなオープンな規格があったっけ? MS-DOS用のドライバが使えないと、そもそもDOSとして認めてもらえないんじゃないか? DOS用ドライバっていわゆるMS-DOSのデファクトスタンダードって奴でしょ。
他のDOS系OSはそれに倣ってるということで。
OSの歴史的にはDR-DOSの方が本家だったりするけど、そこはそれ。 >>732
本家つーてもパクられたのをパクリ返しただけだからなあ
中日電工さんの連載見てると、CP/Mの移植だけで30回以上費やしてるよな。
マイコン黎明期にMZ互換機を本当に作って売っちゃったプロでさえああなんだから
(まあ結果見たらすぐ理由思い出して実際には大した時間は掛かってないんだろうけど)
30日でもうネタ切れというのはなんか不思議だな。 そりゃ「一から新しいOSを新規に」「最低限必要な技能を学ぶ為だけに」「実用性や問題点の考慮をせずに」作るのと
「既にある物に合わせて」「実用になるための全ての機能を」作るのじゃ
それ自体かなり状況が異なる話だからね
細かい問題点・改良すべき点を全部挙げ出したらそれこそ幾らでもきりなく出てくるだろうけど
それは「OS自作入門」のテーマに合致したもので無ければ面白い話題でも無い
だからそれらは本の内容をマスターした上で別途個々人で学んで欲しいという事で入門本には書かなかったのでは。 その「個々人で学ぶ」ための取っ掛かりが全く書いてない罠
>それは「OS自作入門」のテーマに合致したもので無ければ面白い話題でも無い
結局この考えに縛られてしまう事こそが、作られたOSがまさにハリボテで完成品化してしまって
どれもあまり発展しない原因になってないかなあ?
でも、PCでの自作とは何かと考えれば、そう切り捨てたものでもないと思うんだよな。
まだまだ使える!OS自作入門 みたいな。 とりあえずファイルシステムを何とかするってのは
あの本読み終えたらまず誰でも考えそうなテーマだと思うけど?
ディスクドライブのデバイスドライバ周りを(その仕組み自体の設計も含めて)整備して
ファイルシステムから利用できるようにし、実用的なファイルシステムにするという目標がね。 そもそもOSを作りたいなんて人は、その多くが
「こんなOSを作りたい」っていうイメージが(漠然としたものでも)何かしらあるんだろうから
最低限必要な技能を楽しく学ぼうという趣旨の本でそこまでやる必要は無いのかもしれない。
本当にOS作りたくて本読んだような人ならきっと何かしら自分のOSに盛り込みたい事を既に持ってるでしょ。 ログハウスを作る本としては、一夜城の工期を動かせない以上、大幅な設備強化は難しいとは思う。
でも、ビューアフター的な添削であれば、別に30日にこだわらなくて別工事でいい訳だし、
あくまで読者の目的OSでなくその実現への取っ掛かりのヒントにすぎないので、
そういうのも(大工の)入門書や手引きの類といえるんじゃないだろうか?
コンセプト別に紹介して、主にここがいいけどちょっと惜しいなと思うような部分について、
自分ならこうするみたいな検討解説が実用パッチ付きでふんだんに盛り込まれれば
買う人結構居ないかな? アセンブラが全然わからん
2月までには完成させたい 「はじめて読む8086」と「はじめて読む486」は必読書。
まず8086の方から読むべし。 Kの説明が下手すぎるだろ
検索しまくってなんとかようやく理解できるけど、もう少しわかりやすくしてほしいぜ だから漬物石の代わりくらいにしかならんと
最初から言っとるでないかい 逆に考えると不親切な説明だから調べまくらざるを得んので知識はつく 説明下手って言うけどさあ
あれ以上うまく説明してる本ってあったっけ? 「はじめて読む486」の、文章で足りないところはコードを示すことできっちり説明できているところを買います。 >>749
そりゃどんな良書でも読みこなす努力をしないあんたにとっちゃそうだろうな。
でも皆にとってそうじゃないんだ、押し付けんな。 自分で作った気になれるだけの本なんだよな 惜しい
実用に向けていろいろ拡張していく上で嵌りそうな注意点とかまとめてくれればいいのにな
まあこのハリボテを実用で使わない事が一番か
まだopendosやfreedosのほうがしっかりしてるしなあ
試験管の中で家が造れたよ
でも人が住むサイズを作るにはまだまだ課題が山積で厳しいよ
って感じ 16bitのDOSと
32bitのOSの解説本を比べても仕方あんめぇ。 32ビットってプログラムしづらいんだなー
まぁ中身の勉強にはなった 誰も使ってなくてx86_64で廃止されたような機能までべたべたに依存してるせいじゃないか?
(セグメント機構、タスク機能とか)
しかもオレオレツールチェインまで持ち出してるからさらに使いづらい
本自体見たことなくて派生OSのソースを見ただけの印象だけど ちゃんとmmu付いてるんだしプロテクトモードで動かせばいいのにね
組み込み本のほうがブートローダとか作って面白い オレ今10日目で行き詰まってるけど、ググ先生に聞いたり自分なりの解釈で閃いたり、わりと楽しみながらゆーっくり進めてるよ
プログラム初心者だから自分で組んだり出来ないけど、C言語読むための勉強って割り切って読んでるからそれなりに楽しい これでc言語は病めといたほうが
アセンブラでcpuやデバイスを直接制御すべき
あとアプリケーションレベルとosレベルをごっちゃにしない様にな
ぶっちゃけ普通のプログラマならjavaアプリの本で十分だったりするよ 説明が下手すぎていらいらする
特に10日目の重ねあわせのところ
図で洗わせてくれてるけど的外れな図で余計わからんくなる 画面まわりはゲーム開発系の方がわかりやすいと思う
やっとることは同じだ そうなんですか…
自分で図を書いたりしてなんとか理解しようとしてるんですけど、難しすぎて…
画面周りでオススメの書籍とかありますか? 駄目だ…10日目の高速化(2)が全くわからん…
bx0〜by1までの値がマイナス値になる状況が全然わかんねーよ! ゲームはdirectx周りのクセを掴むのがなあ
直接ハード叩く所は、保護機能のないぽんこつosと同じなんだけど
逆に言うと保護機能付いてるosでもgpu乗っ取りぐらいは楽勝で出来たりするんだけどねw >>754
そこまででも手取り足取り教えてくれる本自体が、この本以前には無かったからな。
紙面には限りがあるんだから一冊の本に全てを望むのは酷というものだろう。
という事で、その辺りの事を書いた続きの本をあんたが書けば、大層喜ばれると思うよ。 手取り足取りで飛びついてみたけど、欲しいものはこれじゃないんだなって寂しいものを感じた読者は多いと思うよ
dosぐらいを組み込むのが手軽だなunixはめんどい そんな貴方に技術評論社「はじめてのOSコードリーディング」。
UNIX V6のソース解説本。
UNIX V6なんでちゃんとUnix系で、基本的な機能も大体は揃ってるし、それでもコード規模も一万行程度とお手頃。
難点は、古いコードなんでC言語の書式が古い(K&Rよりさらに前)という事だが
一応その点についての説明もされている。 pdpが無いと楽しめないレベルなんじゃ
最近achiのハードディスクからの起動に嵌っている
bios経由の割り込み19のアクセスでも良いけど抜き差しまでは面倒見てくれん
つーかユニックスなんて何年前だよ
骨董すぎるわ エミュでも当時の何倍もの速度で走るぞw
当時のメインメモリは今のCPUキャッシュ、
当時のディスクが今のメモリぐらいの容量だしなw xp互換osを180日ぐらいで作る
なんてのはどうよ
結局この本と同じで
仕組みだけ解説して実際動く最低限のコードはネットで公開してるから拾って来い
みたいにはなりそうだけど
180日ってのは30日なんかじゃ無理だし、無料体験版が180日ぐらいの最長だったかなと
結局中身説明してないんじゃ、180日も30日も代わらんとは思うけど Windowsのサブセット作るってプロジェクトで一番成功してるのはwineだろうからそこから何か流用できれば少しは可能性が
……ないか >>774
PDPエミュレータの入手と、エミュでUNIX V6を動かす方法
それらの情報へアクセスするための参照先もちゃんと本で紹介されてるが。
>何年前だよ骨董すぎる
でも実際現代的Unix系OSも基本は何も変わらないし。
OSの骨格は変わらないのにコンパクトに纏まってるからこそ読む対象として汎用性があるわけで。
「今ふーカッチョイイ」だけでOSを選択しても何も意味が無い。
あんたがUnix系OSそのものが(もっと言えば、Linuxが)時代遅れだと強固に主張するのでも無ければ「古い」は説得力無いよ。 明らかに機能足りてない頃のosに何の価値が
大人の女が買える時代に小学生の頃が小さくて可愛かったとか言われても
ロリコン変態
と馬鹿にされるだけだよ
64ビットの時代に1ビットマイコンで強がり逝ってても笑い話にも成らない気違い扱いだよ 明らかに足りてない?何が?
ネットまわりだけは無いけど、ただ無いだけで他の部分は参考になる。
ネットまわりだけ他の何かを参考にすればいいだけなんだが。
それ以外OSの骨組みとしては一通りは揃ってる。
それともデバイスまわり(USBスタックとかIEEE1394スタックとかそのあたり)の事を言ってるのか?
それは純粋なOSとはまた若干別の分野の話だから
別のものとして別の本をあたればいいだけの話。
あくまでOS自体を学びたい、どういう構造になってるのか知りたい人にはこれ以上の教材は無いと思うが…。
古い古い言うなら、じゃあそれ以上に教材として適切なOSを挙げてみてくれよ。
本のタイトルも「 は じ め て の 」OSコードリーディング、だからな。
すでにOSの構造や実装について精通しまくった人が読むもんじゃなくて
一から学びたい人に適した、現役メジャーOSと同じ使い勝手の(つまり一定の経験者なら誰でも使える)、コンパクトな、
それでいてほぼ一通り機能が揃った、ソースが自由に読めるOSが他にあるんならぜひ教えてくれよ。
この本と同じくらいの密度で同じくらいのページ数に収まる本になる事が前提で、な。
「本格」OSが作りたいなら、この本読んで理解すればあとは自分の好きなように肉付けすればいいだけなんだから。 何もかもが古過ぎて参考になんて成らねえよ
研究者が古典的に弄る程度で実用性は無いし
普段使ってるosに興味もって学習意欲盛ってるのに
そこに古典os
を勧めるのはどうみても需要予測が間違ってる
64ビットのpcを求めてる客にメインフレームは素晴らしいなんて勧めてもイラネだよ 784が物事の本質を理解しないおバカさんだという事だけは俺にも伝わって来た つーかアーキテクチャに過度に依存したプログラム構造のアセンブラプログラムってんならともかく
汎用性高く書かれた普通のCなんだし(文法は古いけど読み替えりゃ良いだけのはなし)
そのまま丸々64bitマシンとやらに移植して使うわけじゃなし
基本構造だけ真似して似たようなOS書く分には変数の型とかを大きめに取ればいいだけでスケールが小さいとか何とか関係無い話だし
何を勘違いしてるんだかこの人(>>784)は…
どっかの何かの本に書いてあったけど、ゲーム業界でも
「俺は誰も見たことのない斬新で画期的なゲームを作るから!」とか言って過去の作品から何も学ばない人ほど
二十年以上も前に見たようなゲームしか作れないって書いてあったな。
業界によらずどこでもそんなもんなんだろうけど。 >>787
それがまた困ったことにx86ベッタリだったりするんだが x86ベッタリって何が?
UNIX V6はそもそもintelマシン向けじゃなかったし
アセンブラで書かれてるのはドライバなど一部だけだし
UNIX V6でない別の何かの話?だとすると何の話? ソースコード読んで無いって落ちか
恥ずかし過ぎるな
バリバリのセグメント実装だよ
pdp-11がそうだからパクったインテルも同じなんだよ
xpのサポート終了までに実用的なos作る本の発売しねえかなあw
7使い始めたから7でも良いやって気分に成って来たけど
xpモードがよく出来すぎて7の中のxpから離れられんw セグメントという名前だったら皆同じと思ってる系でしたかw >>776>>779
はりぼてにwineをポーティングするなら最低何日必要かな?
>>782
よくわからないけど、PIC32だろうと載っちゃうunixは流石かと。
マイクロカーネルの立場無いね。 むしろマイクロカーネルのほうが、モジュール分けするぶんでかくなって当たり前、
モノリシックカーネルのほうが小さくて当然なんだけど? モジュールとしてユーザー空間に外注しておいて何故でかくなるのさ?
天下り特殊法人みたいな中抜きが多かったりするの? ユーザープロセスと言ったって、普通のプロセスと違って実メモリをピン留め
しなきゃならない奴もあるし、「PIC32に載せる」という目的なら、そういう
モジュールもフットプリントとして数えるものだと思うけど。
もしかしてマイクロカーネルなら、メモリマネージャもファイルマネージャも
ページマネージャも追い出せるとか思ってるの?
ページマネージャがディスクに追い出されちゃったら、誰がそれをスワップ
するのw まったくなにも具体的に反論できない自分の頭の悪さをどうにかしたらw でもユーザランドで動くdynamic_pagerをみたときはこのosポンコツだなとは思った
swapfileが大至急必要な時にユーザランドが応答せずにkernel panicするしかなく成るだろうと予想出来た
案の定autorelese()呼ばないとメモリリークしまくる糞osで鯖製品は撤退したけどな もうできてるもの追っかけても二番煎じだわ。windowsシステムだとOSというよりUIに手間かかるし。
原理をマスターしたら、メモリ管理でもスケジューラでも仮想記憶でもほかの何かでも新しいアイデアを考えてみてはいかが 新しいアイデアなんてそうそうないよ
Windowsの真似から始めないと完成できない。 新規のProjectのOSを作る
別系統のDOS 別系統のGUIOS 二番煎じでも別物もが出来上がるはず
同じものが出来上がる奴は発明者に成れない
pxe対応で自己増殖していくosとか作れば革命的だよ 人がいるか分かりませんが、今二日目と半分行った所、まだハッキリ何してるか分かりませんね
1日が案外多くてもう数日消費してるわ…… ★★★少子高齢化を防ぐ為に、多産家族の表彰制度を導★入すべきである★★★
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1226114724/73
この掲示板(万有サロン)に優秀な書き込みをして、総額148万円の賞★金をゲット★しよう!(*^^)v
h★ttp://jbbs.l★ivedoor.jp/study/3729/ →リンクが不良なら、検索窓に入れる! ●●●プロ野球のドラフトは、持ち点制による競り落とし方式とすべし●●●
http★://jbbs.livedoor.jp/study/3729/storage/106940869★6.html#39
この★掲示板(万有サロン)に優秀な書き込みを★して、総額148万円の賞金をゲットしよう!(*^^)v
http://jbbs.live★door.jp/study/3729/ →リンクが不良なら、検索窓に入れる! OS開発の為に作られたCを
ソフト(OS下ソフト)作る用言語とか
ほざき始めた前置きの時点で完全に挫折した
類友じゃないけどこれに触発された?系のサイト上げてる奴も酷いのいるね
同じく前置き見てると モロに「Cの影響の悪い方」に行っちゃった人って感じだな・・・
Cなら出来ます キリッ!とか言いそう
真剣にOS開発に興味あるならlinux bsd minix 等を入れてソース読め
ジャップ言語圏はググるな
コレに尽きる 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
IGYLUZW5CD 年末も近いのにこんな廃墟スレにまで良く頑張るなー…… マジかよ俺が生まれる前のスレに今年のレス付いてるよ… 3月に「ゼロからのOS自作入門」という本が出版されるらしい。 >>833
それ。
影響を受けた技術書に対して
恩返しというかフォローアップな技術書を書くって
凄いことだし良いよね。 「30日でできる! OS自作入門」、「ゼロからのOS自作入門」中古ノートPC購入してまで挑戦するも、
開発環境を構築できず脱落。「12ステップで作る組込みOS自作」秋月でH8買うも、
開発環境が構築できず脱落。「コンピュータシステムの理論と実装」、「CPUの創りかた」、「
作って理解するOS x86系コンピュータを動かす理論と実装」買うも数ページ読んだだけで脱落。
ラズベリーパイにも挑戦したが、テキスト通りパイソンをプラミングするも、動作せず脱落。
ちなみに、英語、フランス語、ロシア語にも脱落。電験3種は受かった。