1read 100read
2012年4月OS177: 64bitOSを作ろう さっきゅん編 (196) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【復活】Σプロジェクト【通産】 (140)
「さらば、Windows」ミュンヘン市がLinuxへ (246)
あなたの使っているOSで、いらない機能は? (198)
【アマチュア】和製OS総合【マイナー】 (772)
DOS全般を語るスレ 2 (223)
【TOPPERS】ITRON総合スレ3【NORTi】【HOS】 (815)

64bitOSを作ろう さっきゅん編


1 :08/05/16 〜 最終レス :12/04/18
 ∧||∧
(  ⌒ ヽ 前略
 ∪  ノ  さっきゅんです・・・
  ∪∪
前スレ さっきゅんだけどなんか質問ある?
http://pc.2ch.net/test/read.cgi/os/1074144781/l50

2 :
数年前、OS板のあるスレッドで「64bitOSの踏み台になる」という目標の元、「おれんじぺこ」は誕生しました。
その後、おれんじぺこプロジェクトは一定の成果をあげ、当初の目標であった「64bitのDOS」と呼べそうなレベルまで完成しました。
しかし、その後の方針を巡ってプロジェクト内部で対立があり、迷走を続けたまま消滅してしまいました。
それから数年、自作OS界隈で新しい64bitOSが誕生したという噂を聞きません。
当時より64bit環境も整い始め、敷居は下がってるはずなのに、です。
★決まっていること★
★カーネル★
おれんじぺこの対立の焦点になったのは、元々オープンソースを想定していなかったカーネルをオープンソース化するための手段を巡ってでした。
なぜ、カーネルをそのままオープンへ移行できなかったのか?
実は当時のカーネルは「64bit時代のDOS」というより「64bitで実装されたDOS」と言った方がしっくりくるようなコードでした。
当初、カーネルのすべてのコードはアセンブリ言語で記述されていましたが、徐々に多くのコードが高級言語で置き換えられました。
しかし、DOSサブシステムには無意味にDOSを意識した構造が多くあり、高級言語への置き換えは大変困難でした。
そういう問題がおきないよう、最初からオープンで高級言語を想定して進めようと思います。
★ブートローダー★
「OSを作りたいならブートローダーを作るべきではない」という格言があるので、独自のローダーは当面考えないことにします。
汎用ローダーとして有名なものにMultiboot仕様とgrubがあり、32bitのOSならばそれらに対応させておけば楽でいいわけですが、どうやら64bitを考慮した汎用ローダーというのは存在しないようです。
64bitモードへ移行する32bitのコードが必要になり、色々と面倒です。
ということで、64bitのカーネルを直接起動できる bijou を当面使用することにします。
ただし、bijou は将来完全に置き換える事を前提にいくつかの完全でない機能を残したまま開発が凍結されているので、いつかはブートローダーも置き換えたいです。

3 :
例によっておれんじぺことmegosの中の人

4 :
>>3
あ、はい

5 :
えっと
さっそく質問
EFIのブートについてはサーベイした?

6 :
はてダ消滅は残念だった

7 :
>>5
以前調べたときはx64の事を考慮していなかったようなのでパス
最近はちゃんとx64に対応してるんですかね?EFI環境がないのでわからないです><
>>6
あの頃は忙しくて維持が困難だったので;;
あと日記形式で続けるのは若干無理があったかなと・・・

8 :
★カーネルファイルの構造と初期ステート★
カーネルと称していますが、よく読めばわかるようにカーネル本体ではありません。
当面はこのファイルを生成することを目標にします。
★メインヘッダー
bijouで64bitモードを認識させるためにCOM64を採用します。
★サブヘッダー
Multibootへの対応とビデオモードの指定のためにMultibootヘッダーをつけます。
★想定するビデオモード
VGAモード3(いわゆる一般的なテキストモード)を想定します。
★構造
カーネルを収めたファイルは最終的に次の4つの部分からなる構造になります。
・COM64ヘッダーと64bitモードカーネルローダー(メインローダー)
・Multibootヘッダーと32bitモードから64bitモードへ遷移するコード(Multiboot用)
・リアルモードから32bitモードへ遷移するコード(自力ブート用)
・カーネル本体と初期化に必要なデータを格納するアーカイブ

9 :
関連スレ
AireOS
http://pc11.2ch.net/test/read.cgi/os/1112667480/l50

10 :
>さっきゅんさん
応援しています

11 :
>>10
ありがとー!
今回作るOSと直接関係ないけど色々整理してたら例の奴を発見したので置いときますね
ttp://meg-os.jp/bin/os/os071104_hello.zip
ttp://meg-os.jp/bin/os/os071105_gdt.zip
ttp://meg-os.jp/bin/os/os071115_gpf.zip

12 :
>>11
ブログの連載のファイルですね。
幸いログが全部手元に残っています。
とても良い記事なので死蔵させるのはもったいないです。

13 :
>>12
ああいう記事を作るならもっと構成を考えないとダメだと思いました。(´・ω・`)
日記で連載するのは難しいと思いました。
ファイルは準備してたけどうpする機会ないまま終わっちゃったんですよね(´;ω;`)

14 :
何だろう
最初は鳥取砂丘とかただの厨房だと思ってたけど、ぐり氏が消え、Mona関係も変な方向に行って、
タダだからって理由だけでLinuxに異常に固執する厨房しか見当たらない昨今、さっきゅんが愛すべき存在に見えて仕方がない。

15 :
さっきゅんと一緒にOSを作ってみたいな。
でもごめん、まだ俺の準備が出来てない。
あと2年くらいは勉強しないと・・・。

16 :
>>14
恋ですねわかります
>>15
ゆっくりしていってね!

17 :
俺もOSつくりてー

18 :
>>17
カーネル!デバドラ!シェル!そう!ほら!やればできるじゃない!
とりあえずOSのコンセプトを決めようか。
名前を安価にするほどスレの勢いがないから何個か案出して投票がいいのかな?
完全に64bitのOSはデバイスドライバが揃っていれば理想的できれいだけど、現実的には一部の処理をBIOSに依存せざるをえない。
ロングモードには仮想86モードがないので、BIOSを呼び出すためには
・リアルモードに戻る
・32bitのサブカーネルの上で仮想86モードを呼び出す
・エミュレータを乗せる
という解決方法が考えられる。どれも一長一短で色々問題がある。
それとも思い切って64bit以外完全切り捨てのほうがいいのかな?(´・ω・`)

19 :
とりあえず「64bitOSの踏み台になる」っていう目的を重視するとしたら、
BIOS使わない方向でとりあえずやってみるのがいいかも。
BIOSを使おうとするとそこからソースが汚くなりそうだし。
BIOS使わなくてもFDとATAとATAPIくらいはいけるでしょ。
BIOS使ってもnetwork使えるわけじゃないしさ。

20 :
すごいなぁ、おもしろそう
どういうところから勉強すれば話が理解できるかすらわかんないけど
応援してます

21 :
じゃあ俺コンパイラ作るわ


・・・・・え?gccがあるって?

22 :
さっきゅんと一緒に物語を作ってみたいな。
でもごめん、まだ心の準備が出来てない。
あと2ヶ月くらいは開発しないと・・・。

23 :
オックスフォードをもじってシックスフォード

24 :
がんばれ

25 :
セッ○スホール

26 :
たった8バイトでOSなんて書けるのか?>>1って天才!

27 :
最近ちょっと暇が無くてレスできませんでしたpq
>>19
やっぱりそうすか(´・ω・`)
>>20
がんばれ。
>>21
gcc超えてくれ
>>22
がんばれ。
>>23
略称は64d?
>>24
がんばる。
>>25
  _, ._
( ゚ Д゚)
>>26
"OS"は2バイトですよっと。

28 :
定期応援 っと

29 :
64bit用汎用ローダーを作ることよりもカーネル作りに没頭する理由はなんで?

30 :
64bitOS作るためのいい本ありませんか?

31 :
bit数が違うと本が違ってくるのかw

32 :
チーズビット

33 :
がんばれ

34 :
>>31
x86-64の「はじめて読む486」みたいな本はあってもいいかなと思ったり。
売れねえと思うが。

35 :
スレ立てといてあんまり進んでなくてごめん><
現在予想外のトラブル対処中;;
そろそろ何かブツを出したいよー
>>28
定期ありがとー
>>29
そこにCPUがあるから
>>30
ないのでぼくがOSを作るの><
>>31
ロングモードの基礎概念はプロテクトモードとだいたい同じだけど、細かいところが違うので参考程度にしかならんです。
初めて読む486の内容が古すぎるというのもあるけど。
ちなみに、30日本はページングを全く使わずセグメンテーションだけでメモリ管理してるけど、ロングモードは逆にページングしか使えないので30日本のメモリ管理もあまり参考にならないのだ。
>>32
名前の案かな?
>>33
ありがとー
>>34
そういう本ないっすねー

36 :
Twenty fourにあやかって Sixty fourでよくね?名前。

37 :
不定期応援っと

38 :
PE32+対応のgcc
ttp://mingw-w64.sourceforge.net/

39 :
>>38

これは期待

40 :
>>39
おっひさ〜!

41 :
(・ω・)ノ

42 :
こんにちは。
今月末にmeg-os.jpのドメインが期限切れになります。
去年に引き続き自力で維持する余裕がありません。
去年は有志によるカンパで何とか維持できましたがその後成果を上げる事ができていないため、
不本意ではありますがドメイン破棄の方向で検討しています。(汎用JP高いです。。。)
移転後のURLについては現在検討中です。

43 :
VDならドメイン代くらい何とかなるだろ
送金機能だってあるんだしw

44 :
むりす・・・

45 :
>>42
お久しぶりです。去年寒波に参加した人です。
今年もやりますよ〜。去年のメアドはまだ生きてます。
私の方はサクっとコンパイラを作ってBijouを移植しようと思っていたのですが、
工程の見積もりが甘くてサクっとどころか1年以上掛かってしまいました。
とりあえず動くようにはなったのですが、テスト不足ですし、
最適化が皆無なため吐き出すコードが異常に冗長です。
ですので残念ながらまだBijouを移植できる段階には達していません。
32bitコンパイラに振り回されるとは情けない限りですが、
64bitに逝く前にARMに寄り道したくなった今日この頃です。
ARMの命令が32bit固定長なのを昨日知ったばかりの初心者ですが・・・。

46 :
>>44
暗に送金用の垢あれば送金してにゃんよってことじゃね?

47 :
意外に見てる人多いんすね
>>42にあるとおりこの一年成果上げれてないので寒波募集するのに抵抗が・・・

48 :
遅くなりましたが、無事にドメインの期限を更新できたようです。
カンパありがとうございました。
期待に沿えるようにがんばりたいです。。。
毎年こういう事になるのは色々と面倒なのでもっと安いドメイン(gTLD?)に乗り換えて
広告収入等で運用できないか検討中です。

49 :
Multiboot対応のOSってなんかないすか。。。

50 :
GRUBのMultibootならNetBSDが対応していたような気がしますです。

51 :
>>50さん
調べてみましたがインストールイメージはmultiboot対応してないようですますです。
インストールしてカーネル再構築までして検証するのはさすがに。。。(´・ω・`)ボショーン

52 :
現在、おれんじぺこを改修中です。
これによっておれんじぺこを復活させるというわけではありませんが、
このまま埋もれて失われてしまうのはもったいないので
再公開をもって正式に開発終了ということになりました。
いくつか気になる点を修正しているので公開までもう少しお待ちください。

53 :
tp://meg-os.org/bin/op05_081127.zip
tp://meg-os.org/wiki/?Doc/OP_leaf
とりあえず気になった点をいくつか修正しました。
数年ぶりのリリースでベースになっているソースも最新版なのかどうかよくわからないので
後退してる機能があったりするかもしれません。。。
おれんじぺこの時代にはなかったものとして、最近はCOM64 GREやぐいぐい01といった
OS非依存APIセットがあるのでランタイムも移植しました。
efg01(abcdw005)についてはソースに全く手を加えることなく移植できてしまいました。。。

54 :
//meg-os.org/bin/op05_081201.zip
マイナー修正版をリリースしました。
RC-1からbetaに降格したのは、日本語表示に関して後退してると思ったからです。。。
昔のドライバの実装が汚かったのでうまい方法がないか検討してる最中ですが、
どうしても思いつかなかった場合は以前のような実装で我慢する事になるかもしれません。
GREのアプリはどうやって作るのかという問い合わせがあったので、
おれんじぺこの件が落ち着いたらSDK公開の作業にかかることになると思われます。

55 :
おれんじぺこの状況がわかりにくいようなので補足します。
現在公開されているものは昔おれんじぺこと呼ばれていたもののforkです。
(現実的にはソースをもってるぼく以外にforkは不可能ですが、直系の最終バージョン
がどうなったのか不明なのでforkという扱いにします。)
設計や実装の様々な問題によりぼくの志していたものとは程遠く、根本的に作り直した
方がいいという判断に至り、破棄される事が決まりました。
その件に関するごたごたでオリジナルのおれんじぺこは消滅してしまったようです。
しかしながら、ある程度のアプリケーションを動かす事が出来る数少ないx64対応の
OS環境がこのまま埋もれて失われてしまうのは少しもったいないのではないかという
話が出てきました。
設計が成熟していない失敗作が世に広まるというのは、作者としては不本意です。
しかし、現在の設計をすべて捨ててしまうのであれば、数少ない64bit環境という貴
重なサンプルとして歴史に残すのもいいのではないかという事になりました。
このまま破棄してしまうのであればソースツリーをそのままアップロードするのでも
十分という話も出てたのですが、経年による環境の変化で作者ですらビルド不可能な
ソースツリーをそのまま公開するのは無責任すぎると思い、手直しをはじめました。
おれんじぺこを凍結することになった頃と現在では様々な状況が変化し、当時は不可
能だった機能修正も現在では可能になったものもあります。
現在のアップデートはそれらの修正作業であり、開発再開ではありません。

56 :
>>55
リリースエンジニアリングですね、わかります。

57 :
//meg-os.org/bin/op05_081214.zip
2週間ぶりのリリースです。
大規模変更の途中でなかなかリリースできませんでした。
主にソースツリーの整理をしました。
まだ途中ですがそろそろGRE関係に取り掛かろうと思います。。。
>>56さん
リリースエンジニアリングっていうんすか

58 :
いいません

59 :
 _, ._
( ゚ Д゚)

60 :
超良スレ保守

61 :
/meg-os.org/bin/meg081219.zip
/meg-os.org/wiki/?Doc%2FCOM64%2FGRE
MEG-OS Embryo のアプリケーションは COM64 GRE という規格に準拠しており特定の
OS に依存しません。
数年前から仕様が存在していましたが認知度が低すぎて「はりぼて実装でいいからと
りあえず動かせるものをリリースしたほうがよい」という助言をもらい、既に実装が
あったおれんじぺこをベースに公開することになりました。
まだC言語向けの環境が整っていないので近日整備します。
このアーカイブに付属のrungre.comはCOM64plusの初期α版に対応しています。
hello.com と chars.com が COM64 バージョンで、 hello+.com と chars+.com が
COM64plus バージョンです。
一時期「ぐいぐい01」のアプリケーションより小さいバイナリになりましたが、その
後すごい勢いで改良されてしまったのでもうサイズで勝てないかもしれません。

62 :
こんな良スレがちゃんとあるから2chは成り立っているんだな〜
とっても応援してます!
頑張ってください!

63 :
そろそろメインPCの老朽化が気になったのでPC買いました。話題の某15K鯖です。
実はここ数年経済的な理由でAMD64の実機もってなかったりしたのですが
これで実機で動作確認できるようになりましたです。
早速動かしてみたらきちんと動いてないようです(。・ω・)

64 :
>>63
「話題の某15K鯖」
これはどれのことですか? 教えてください。

65 :
 〃∩∧_∧
⊂⌒(  ・ω・) ML115でググレカス
 `ヽ_っ⌒/⌒c

66 :
>>65
なんで「カス」なんですか? そんなに有名なんですかね。

67 :
ググレカスはいまや2chでは普通に使う言葉なので、ジョークの一環だと考えてもらえたらいいです。。。

68 :
ヒドス

69 :
ググレカスにそこまで突っかかられるとは思ってなかった
今は反省してる(´・ω・`)

70 :
今回の軽率な行動を深く反省し当面の間活動を自粛する事にします。

71 :
深く反省するのは好感が持てるが
活動の自粛が>>64への贖罪になるのか疑問
むしろたとえばこれから3ヶ月に渡って毎月のリリースを約束してくれたほうが・・・

72 :
できる範囲でいいので、活発な保守と安定性の高い製品の製作が、>>64氏への償いとなるでしょう。
なぜなら、>>64氏は、ここでの製品に大変期待をこめてこのスレを開いたんでしょうからね。
ちょっとえらそうですみません

73 :
さっきゅんアニメ化決定
ttp://www.takeshobo.co.jp/sp/yuru/

74 :
64bitなんてケチ臭いこと言ってないで128bitOS作ればいいんだよ

75 :
いいや、256bit、いや、512bit、
1024bit?2048bit??4096bit?!??!!
ちょっと無理か。

76 :
64bitASMってどの辺が違うの?

77 :
当たり前の話だがレジスタ一個辺りのサイズが64bitになる

78 :
そもそも64bitレジスタ名すら把握してないんで

79 :
32bitでも高級言語しか使ったことが無い。
8bitとか16bitリアルモードならアセンブラでカリカリプログラム作っていたけど。

80 :
megOSの開発を再開します

81 :
>>80
おわっ!!
びびったwwww

82 :
>>80
おかえりwww

83 :
>>80-82
以上エイプリルフールでした

84 :
ん? 本当に嘘なの? 本当なら嬉しいと思っていたのに。

85 :
遅れてやっちゃダメだろ

86 :
偽者が多いのでトリップつけます

87 :
>>86
megOSもやはり64bit?

88 :
>>86
今頃トリップの付け方を覚えるとは・・・で、進捗具合はどうでしょう?

89 :
wktkあげ

90 :
 ∧||∧
(  ⌒ ヽ Atom買っちゃった・・・
 ∪  ノ
  ∪∪

91 :
 ∧||∧
(  ⌒ ヽ 安くて小さくて省電力でこの性能ですか・・・
 ∪  ノ
  ∪∪

92 :
meg-osをマルチコア化する作業に戻るんだ!

93 :
 ∧||∧
(  ⌒ ヽ マルチコアのやり方がよくわからんとです・・・
 ∪  ノ  そんなことよりこのスレ一年以上ほとんど機能してなかったのですか
  ∪∪

94 :
本人が動かなきゃ誰も動かないよ。
基本的にオチして囃し立てるだけだから。
でもね、オチされてるだけでも幸せだよ?
見向きもされないプロジェクトだってあるんだから…

95 :
 ∧||∧
(  ⌒ ヽ 色々と忙しくてそれどころじゃなかったの・・・
 ∪  ノ
  ∪∪

96 :
こういっちゃなんだが
所詮は個人プロジェクトだ。
きばらず、のんびりやんなよ。

97 :
 ∧||∧
(  ⌒ ヽ 32bitOSにVMware入れたら64bitゲスト無効って言われたお
 ∪  ノ  罠だお・・・
  ∪∪

98 :
VirtualBoxとか駄目かな?
ドラッグ&ドロップはできないけど仮想マルチCPUとかやってるし…
あと、こんなスレが立ったから人が居るうちに相談してみたら?
和製OS総合
http://pc11.2ch.net/test/read.cgi/os/1249341250/

99 :
>>97
その組み合わせはVTいるでよ。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
東京大学に Mac 大量導入 (745)
徹底討論〜OSとIEの統合は正しかったのか〜 (218)
■□質問□■林檎/窓のマウスの動き (152)
【C】Poneytail(仮称)OSスレッド01【未踏】 (595)
MINIXを実用的にしよう。 (882)
なあ、Monaの開発は順調さ build5 (786)
--log9.info------------------
魔界戦記ディスガイア2 PORTABLE 〜前科95犯〜 (1001)
一番好きな属性は何? (151)
昆虫ウォーズ part2 (174)
【空の】軌跡シリーズ強さ議論スレ08【零の碧の】 (256)
【害虫がんばった!】リーナのアトリエ葬儀場 (283)
【PSPo2】ファンタシースターポータブル2愚痴70言目 (848)
【PSV】魔界戦記ディスガイア3 Return=校則第18条= (678)
エルミナージュUで全滅したらageるスレ (241)
携帯ゲーRPG購入相談所 part6 (856)
【PSP】戦場のヴァルキュリア3/3E2-第82陣- (852)
【勇者30】ロマンシング・ツクレール専用スレ (349)
【TOI】テイルズオブイノセンス総合part86【TOIR】 (190)
【PSP】俺の屍を越えてゆけ初心者スレ4【俺屍】 (753)
【PSP】シャイニング・ハーツ パン27個目 (613)
☆祝!日本一ソフト大赤字!年内にも○○しそう☆ (260)
【PSP】幻想水滸伝 紡がれし百年の時 part16 (291)
--log55.com------------------
【WWW.WORKING!!】村主さゆりは何か見えてる可愛いお札3枚目
【はいふり】若狭麗緒は愚痴っぽいかわいい
【アイカツスターズ!】早乙女あこちゃんはあこにゃんこかわいい1.5
【ポケットモンスターSM】リーリエはコオリZのポーズも可愛い3
【プリパラ】ファルル&ガァルルはボーカルドール姉妹可愛い 6.1
IS〈インフィニット・ストラトス〉シャルロットは嫁にしたい可愛い24.5
【響け!ユーフォニアム】加藤葉月ちゃんは3秒ルールかわいい 3曲目
綾波・長門・ルリルリが3姉妹だったら 29日目(居候付)