advance/kernel
の編集
http://hrb.osask.jp/wiki/?advance/kernel
[
リロード
|
差分
|
単語検索
|
一覧
] [
編集
|
バックアップ
|
添付
]
-- 雛形とするページ --
A
Akkie
Athlon64X2
Clover
DAsoran
Falcon
FormatRule
FrontPage
Genesis
Help
I
InterWikiName
InterWikiSandBox
InterWikiテクニカル
Jormungand
K
Kebo
Kor_Lee_Hee_Rak
Leaf
Linux
Linux/wako_memo
MOIZ99
MW
MenuBar
OSC
PG_MANA
ReadersOS
RecentDeleted
SKYDASH
SandBox
Sero
Sigle
Source
Triangle_Ld.
Zxcvbnm
advance
advance/CPU
advance/FDC
advance/FPU
advance/NotHariMain
advance/QEMUVGA
advance/RTC
advance/blike
advance/cpu_reset
advance/driver
advance/driver/01
advance/driver/02
advance/families
advance/filesystem
advance/fwrite
advance/hddboot
advance/he86
advance/hints
advance/ipl
advance/kernel
advance/keycode
advance/osselect
advance/smaller1
advance/startup
advnace/smaller2
anzy
aotatsu
banbi-
bluedwarf
bo
bugs
challengers
cybozulabsyouth11
deskmanta
esb02b
faq
faq/advance
faq/asm
faq/c00-03
faq/c04-07
faq/c08-15
faq/c16-23
faq/c24-31
faq/make
faq/others
faq/qemu
guide
guide03
guide05
guide07
hikarupsp
imp_log/0000
imp_log/0001
imp_log/0002
imp_log/0003
impressions
index
k
killer_elf
kota
lea
lea/10_memory
lea/4_color
lea/idea
lea/terms
links
logs
logs/osa_hrb/comments0000
logs/osa_hrb/rumors0000
masa
members
message
mistakes
moge32
moppoi5168
notice
osdevjp
populars
prog_index
projects
q_and_a
q_and_a_2
qa_log/0000
qa_log/0001
qa_log/0002
qa_log/0003
qa_log/0004
qa_log/0005
qa_log/0006
qa_log/0007
qa_log/0008
qa_log/0009
quark
rankings
rule
sakamoto
sasaki
spc09
spcc_30min_os
tatsu
tools
tools/bim2hrb
tools/bin2obj
tools/cc1
tools/edimg
tools/gas2nask
tools/makefont
tools/nask
tools/obj2bim
tools/sjisconv
uchan
uho
updates
violations
wako
white
win64-bit
x
ytakano
ヘルプ
リックス
質問します
整形ルール
本は買ったぞ!持ってるぞ!
練習用ページ
* カーネル? -(by [[K]], 2006.03.25) -発展課題のページ(全部読む前にここを読むのは混乱するのでおすすめじゃないです) -自作OSを作り始めているんだけど、カーネルとかシェルとかドライバとか、いわゆるそういう単語が気になる人向けのページです。 *** カーネルという語が一度も出てこない本なのはなぜか? -0-4では一度だけ「こんな単語を知らなくていいよ」的な単語の筆頭として出てきますが、その後は一度も出てきません。それでも30日目には[[あそこまで>http://hrb.osask.jp/figures.html]]できるわけで、つまりカーネルという語は「偉そうな人はみんな知っているけど、何の役にも立たない知識」の代表例みたいなものだといえるでしょう。 -OSを作るときに、OSをカーネルとシェルとドライバに分割して作る、みたいな流行があります。そして筆者でさえもこれは良い設計だと思っていますが、しかしこれはOSに欠かせないというものではありません。これがいいとされている理由は、分けて作っておけば部分的に入れ替えることができるからとか、デバッグのときにやりやすくなるからとか、せいぜいその程度です。 -逆にいうと部分的に入れ替える予定がないとか、そんなにバグに苦しむほど腕は落ちていないと思うのなら、こんな発想を意識するのはバカだと思います。それに個人レベルでの開発であれば、部分的に入れ替えるとはいっても、関数に分けておくくらいで十分で、わざわざharibote.sysから追い出して別のファイルにする必要はないかもしれません。わざわざかっこつけて別ファイルにしたら、読み込みに手間がかかって、起動時間が長くなって、その上動作も遅くなってメモリも余計に食うかもしれません。・・・分けて作るのが当たり前だと思い込んでしまうと、そんなダメなOSしか作れなくなる危険性があるわけです。 -筆者のOSASKも内部的には分けて作られていて(起動時間短縮のためにファイルは一つにつなげられてはいる)、確かにデバッグには有利でしたが、動作は遅くなっています(それでも「はりぼてOS」よりは速いですが)。OSの大きさも何割か余計に大きくなっています。分かれているので入れ替えられるということになっていますが、実際に入れ替えをしたことがあるのは画面表示用のドライバだけで、今のところそれ以外の部分については分けて作ってあるのは「ただの作者の自己満足」になってしまっています。使うほうからすれば、こんなのはただの迷惑ですね。苦労して分けたのに、誰も喜ばない例です。 -つまり言いたいのはこういうことです。どう分けるかは「他のOSがどう分けているか」を参考にしないほうがいいということです。そんなことを勉強したら既存のOSのいいところを引き継げる半面、悪いところも引き継いでしまいます。そんなOSを作って楽しいですか?それなら参考にしたそのOSをそのまま使うほうがいいんじゃないですか?もちろん100くらいのOSを勉強していいとこ取りをするという方法もありますが、それは何も思いつかなくなった老プログラマがやる非常手段であって、これからOSを作ろう、あれもやりたい、これもやりたい、という若い発想の持ち主には到底おすすめできないものです。せっかく今は貴重な無知なのですから、それを生かさない手はないのです。くだらない知識を変にいろいろ詰め込んでしまうともう思いつけなくなってしまいますよ。 -自分で考えて自分の納得できる方法で、必要に応じて分けてください。それは結局既存のOS構成方法(モノリシックカーネル、マイクロカーネル、など)に終わってしまうかもしれません。でもそれとは違うものになるかもしれません。そして気が付いた頃には、あなたが新しいOS理論を打ち立てていることになるかもしれませんよ。 --この分野の混乱を示すいい例として、モノリシックカーネルやマイクロカーネルの定義は人によってまちまちです。分け方すら一致していません。だからCOLOR(#0000ff){言葉の定義なんて気にしないで、自分がいいと思うことをやるべき}です。そしてそれがあとから周囲の人に「ああそれは○○カーネルだね」とか言われても、気にしなければいいのです。レッテルを貼ってそれで分かった気になるのは専門家の悪いクセですから(筆者も頭が固くなってきてそんな悪い専門家になりつつあるような気がするので、筆者の言うこともあまり信じすぎないようにしてくださいね)。 * こめんと欄 #comment
タイムスタンプを変更しない
* カーネル? -(by [[K]], 2006.03.25) -発展課題のページ(全部読む前にここを読むのは混乱するのでおすすめじゃないです) -自作OSを作り始めているんだけど、カーネルとかシェルとかドライバとか、いわゆるそういう単語が気になる人向けのページです。 *** カーネルという語が一度も出てこない本なのはなぜか? -0-4では一度だけ「こんな単語を知らなくていいよ」的な単語の筆頭として出てきますが、その後は一度も出てきません。それでも30日目には[[あそこまで>http://hrb.osask.jp/figures.html]]できるわけで、つまりカーネルという語は「偉そうな人はみんな知っているけど、何の役にも立たない知識」の代表例みたいなものだといえるでしょう。 -OSを作るときに、OSをカーネルとシェルとドライバに分割して作る、みたいな流行があります。そして筆者でさえもこれは良い設計だと思っていますが、しかしこれはOSに欠かせないというものではありません。これがいいとされている理由は、分けて作っておけば部分的に入れ替えることができるからとか、デバッグのときにやりやすくなるからとか、せいぜいその程度です。 -逆にいうと部分的に入れ替える予定がないとか、そんなにバグに苦しむほど腕は落ちていないと思うのなら、こんな発想を意識するのはバカだと思います。それに個人レベルでの開発であれば、部分的に入れ替えるとはいっても、関数に分けておくくらいで十分で、わざわざharibote.sysから追い出して別のファイルにする必要はないかもしれません。わざわざかっこつけて別ファイルにしたら、読み込みに手間がかかって、起動時間が長くなって、その上動作も遅くなってメモリも余計に食うかもしれません。・・・分けて作るのが当たり前だと思い込んでしまうと、そんなダメなOSしか作れなくなる危険性があるわけです。 -筆者のOSASKも内部的には分けて作られていて(起動時間短縮のためにファイルは一つにつなげられてはいる)、確かにデバッグには有利でしたが、動作は遅くなっています(それでも「はりぼてOS」よりは速いですが)。OSの大きさも何割か余計に大きくなっています。分かれているので入れ替えられるということになっていますが、実際に入れ替えをしたことがあるのは画面表示用のドライバだけで、今のところそれ以外の部分については分けて作ってあるのは「ただの作者の自己満足」になってしまっています。使うほうからすれば、こんなのはただの迷惑ですね。苦労して分けたのに、誰も喜ばない例です。 -つまり言いたいのはこういうことです。どう分けるかは「他のOSがどう分けているか」を参考にしないほうがいいということです。そんなことを勉強したら既存のOSのいいところを引き継げる半面、悪いところも引き継いでしまいます。そんなOSを作って楽しいですか?それなら参考にしたそのOSをそのまま使うほうがいいんじゃないですか?もちろん100くらいのOSを勉強していいとこ取りをするという方法もありますが、それは何も思いつかなくなった老プログラマがやる非常手段であって、これからOSを作ろう、あれもやりたい、これもやりたい、という若い発想の持ち主には到底おすすめできないものです。せっかく今は貴重な無知なのですから、それを生かさない手はないのです。くだらない知識を変にいろいろ詰め込んでしまうともう思いつけなくなってしまいますよ。 -自分で考えて自分の納得できる方法で、必要に応じて分けてください。それは結局既存のOS構成方法(モノリシックカーネル、マイクロカーネル、など)に終わってしまうかもしれません。でもそれとは違うものになるかもしれません。そして気が付いた頃には、あなたが新しいOS理論を打ち立てていることになるかもしれませんよ。 --この分野の混乱を示すいい例として、モノリシックカーネルやマイクロカーネルの定義は人によってまちまちです。分け方すら一致していません。だからCOLOR(#0000ff){言葉の定義なんて気にしないで、自分がいいと思うことをやるべき}です。そしてそれがあとから周囲の人に「ああそれは○○カーネルだね」とか言われても、気にしなければいいのです。レッテルを貼ってそれで分かった気になるのは専門家の悪いクセですから(筆者も頭が固くなってきてそんな悪い専門家になりつつあるような気がするので、筆者の言うこともあまり信じすぎないようにしてくださいね)。 * こめんと欄 #comment
テキスト整形のルールを表示する