アカウント名:
パスワード:
よくぞ続けてこられたと絶賛したい気持ち三割、こういう技術者になりたくない気持ち半分以上。OSを作るのは自分の技術力を試すには格好の車輪かもしれないけど、その車輪を木や鉄で作るのではなく、砂を糊でちまちま固めて作るようなものではないかなと。多少精巧なものは出来るだろうけど、役割としては変わらない、車輪は車輪。それだけの技術力や時間があるのなら、既存の車輪を活かしてもっと別の乗り物を組み立てて、世界を魅了して欲しかったな。もちろん個人の自由だから、OS作ろうが何しようが勝手なんだけど。おまけにアセンブラだったら、他の開発者もそう容易く近づけないし、一世一代のOSで終わりそうなのも残念。
CPU変わったら移植性ゼロなんじゃね?あと、コードの可読性とかチームでのメンテナンスとか出来る?
尤もx86-64はあと15年くらいは大丈夫だと思うけど。
>CPU変わったら移植性ゼロなんじゃね?えっ何で??
アセンブリ言語って、言語というより命令セットと言った方がよいもので、機械語を人間に読みやすく1対1対応させたもの。だから原則的にはCPU固有のものなのよ。もちろん後方互換は意識されるし、元コメが書いているようにx86がそうそう消えるとは思わないけど。だからこのOSはPowerPCやARMでは少なくとも直接は動作しない。
それでも遥か昔は、こういう命令セットをいくつも覚えているのが普通の時代があったのだ。命令セットがコンパクトだったり単純だったという事もあるだろうけどね。それでも、CPU固有の命令セットなんて覚えていられないわけで、汎用的な命令セットというか言語を作って、各CPU向けに翻訳すれば良いんだ!と考えて出来たのが高級言語。
こういう技術史は直接役には立たないかもしれないけど、知っておいて損は無いよ。
命令セットと言語の違いが曖昧な書き方だったね。中間コードを含めるとざっくりこんな歴史になると思う。
1. アセンブリ言語だと覚えるの辛いし汎用性ないからCという「言語」を作ろう2. Cだと効率の悪いところがある部分的にアセンブラで書くか。CPUの違いはマクロとかで吸収しよう。3. アセンブラやっぱり辛いし、部分最適だと汎用性に欠けるので、「言語」から中間コードという「汎用的な命令セット」に翻訳して、中間コードを使って最適化だ!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
アイデアを持たないエンジニアの究極の形 (スコア:0)
よくぞ続けてこられたと絶賛したい気持ち三割、こういう技術者になりたくない気持ち半分以上。
OSを作るのは自分の技術力を試すには格好の車輪かもしれないけど、
その車輪を木や鉄で作るのではなく、砂を糊でちまちま固めて作るようなものではないかなと。
多少精巧なものは出来るだろうけど、役割としては変わらない、車輪は車輪。
それだけの技術力や時間があるのなら、既存の車輪を活かしてもっと別の乗り物を組み立てて、世界を魅了して欲しかったな。
もちろん個人の自由だから、OS作ろうが何しようが勝手なんだけど。
おまけにアセンブラだったら、他の開発者もそう容易く近づけないし、
一世一代のOSで終わりそうなのも残念。
Re: (スコア:0)
CPU変わったら移植性ゼロなんじゃね?
あと、コードの可読性とかチームでのメンテナンスとか出来る?
尤もx86-64はあと15年くらいは大丈夫だと思うけど。
Re: (スコア:-1)
>CPU変わったら移植性ゼロなんじゃね?
えっ何で??
Re: (スコア:0)
アセンブリ言語って、言語というより命令セットと言った方がよいもので、機械語を人間に読みやすく1対1対応させたもの。
だから原則的にはCPU固有のものなのよ。
もちろん後方互換は意識されるし、元コメが書いているようにx86がそうそう消えるとは思わないけど。
だからこのOSはPowerPCやARMでは少なくとも直接は動作しない。
それでも遥か昔は、こういう命令セットをいくつも覚えているのが普通の時代があったのだ。
命令セットがコンパクトだったり単純だったという事もあるだろうけどね。
それでも、CPU固有の命令セットなんて覚えていられないわけで、
汎用的な命令セットというか言語を作って、各CPU向けに翻訳すれば良いんだ!と考えて出来たのが高級言語。
こういう技術史は直接役には立たないかもしれないけど、知っておいて損は無いよ。
Re:アイデアを持たないエンジニアの究極の形 (スコア:0)
どっちかというとそれらは中間コードに当てはまりそうな説明ですね。
LLVMのビットコードやJavaVMのバイトコードや.NETのMSILみたいな奴。
# こいつらでOS書いたら、JITコンパイル機能を持ったブートローダーを各CPU向けに記述すれば移植可能なOSとか出来上がるのかなとか一瞬思ったけど、各CPUやアーキテクチャに依存したタスクスイッチや割り込み周りの記述を解決する仕掛けがないと無理だったorz
Re: (スコア:0)
命令セットと言語の違いが曖昧な書き方だったね。
中間コードを含めるとざっくりこんな歴史になると思う。
1. アセンブリ言語だと覚えるの辛いし汎用性ないからCという「言語」を作ろう
2. Cだと効率の悪いところがある部分的にアセンブラで書くか。CPUの違いはマクロとかで吸収しよう。
3. アセンブラやっぱり辛いし、部分最適だと汎用性に欠けるので、「言語」から中間コードという「汎用的な命令セット」に翻訳して、
中間コードを使って最適化だ!