メインコンテンツへスキップ

C/C++でゼロから構築!ARM,x86,RISC-V対応の自作OS SkiftOSが衝撃の完成度!

·2 分
2025/09 OS開発 C++ マルチアーキテクチャ フルスクラッチ システムプログラミング

C/C++でゼロから構築!ARM,x86,RISC-V対応の自作OS SkiftOSが衝撃の完成度!

引用元:https://news.ycombinator.com/item?id=45229414

thegeomaster 2025/09/13 09:39:27

すごい成果だよな!この人、6年でマイクロカーネルだけじゃなく、ビルドシステム、UEFIブートローダー、グラフィカルシェル、UIフレームワーク、ブラウザエンジンまで作ったんだぜ。10xデベロッパーの話って、都市伝説じゃなくて、むしろ控えめに言われてるんだなって思うわ。

nylonstrung 2025/09/13 11:01:57

そして、とある類似プロジェクトと違って、神の導きなしにこれを達成したんだ。マジすごい!

cidd 2025/09/14 04:53:54

史上最高のプログラマーだな。神がかり的な知性を持ってるわ。

reactordev 2025/09/13 11:38:56

Messiah.aiなしでね :D

cryptoz 2025/09/13 11:50:28

マジかよ。あのドメイン、駐車されてて125,000ドルで売りに出てるって!?やばいな。

zenmac 2025/09/13 12:57:09

そんなのまだマシだろ。god.aiを見てみろよ…。ドメインパーキングが復活してるんだ。もう.godっていうTLD作ってもいいくらいだよな。

TuxSH 2025/09/13 23:46:00

>TLD for .god
“IDとアクセス管理”システムには良いTLDになりそうだね :)

KerrAvon 2025/09/13 22:09:34

Muskが全部独り占めしそうだけどな。

Levitating 2025/09/13 18:58:08

SerenityOSの進捗レポート、読むと面白いかもね。ここから見れるよ: https://serenityos.org/

Rohansi 2025/09/14 01:05:34

YouTubeの動画これね: https://www.youtube.com/watch?v=LW_s6EqOxqY

rayiner 2025/09/13 13:41:41

うん、ほんとすごいよね。

monax 2025/09/13 06:14:10

まさか今日メインページで自分のプロジェクトを見かけるとはね‘^^
今ビルドは壊れててフルOSはテストできないんだけど、LinuxやmacOSで個別のアプリは./skift.sh run --release <app-name>で実行できるよ。利用可能なアプリはls ./src/appsで見れるって。

monax 2025/09/13 06:18:23

ブラウザ以外は上のやり方でOK。ブラウザは./skift.sh run --release vaev-browser -- <url-or-file>を使ってね。HTTPスタックは最低限だからHTTP(HTTPSはなし)しか対応してないんだ。自分のサイトでは動くけど他は動くか分からない。今まで時間はネットワークよりスタイリングとレイアウトエンジンに費やしてるよ。

Rochus 2025/09/13 10:54:49

達成おめでとう、すごいね!マイクロカーネルは“Zirconに影響された”って言ってたけど、sel4、Minix、openQNXみたいな他のアーキテクチャも研究した?マイクロカーネルの重要な設計選択は何?それについて書かれたドキュメントはある?パフォーマンス測定はした?どのマイクロカーネル設計とパフォーマンスが比較できると思う?

pjmlp 2025/09/13 06:21:54

UNIX以外の道を模索してるのに拍手喝采だよ。

monax 2025/09/13 06:26:33

ありがとう!Skiftは僕が好きなOSのアイデアを組み合わせたものなんだ。UIはSwiftUI/Flutterから、マイクロカーネルはZirconから影響を受けてる。Plan 9みたいに全部がURLってアイデアもあるよ。NTやDarwinからもいくつか影響を受けてるけど、どれだったか忘れちゃった。

keyle 2025/09/13 09:59:38

本当にしっかりしたアイデアみたいだね。こんなに多様なニッチな世界からインスピレーションを得るなんて、よっぽど経験が豊富なんだろうね。頑張ってね!

pjmlp 2025/09/13 10:17:13

Xerox PARC、Oberon、NeXTSTEP/NeWSスタイル、Powershellのアイデアを取り入れて、シェル、UI、動的にロードされるコード(またはOS IPC)によってOS全体をカスタマイズできるようにするのは、面白いかもしれないね。単なるアイデアだけど、全体的に興味深いプロジェクトだよ。頑張ってね。

QuantumNomad_ 2025/09/13 11:41:53

Skift、Karm、Hjert、Opstart。ノルウェー人だけど、このシステムの名前とコンポーネントがデンマーク語(Skift、Karm、Opstart)やデンマーク語にインスパイアされたもの(Hjert)に聞こえるんだ。合ってるかな?:)

monax 2025/09/13 14:11:07

うん、その通り。デンマーク語の響きがクールだと思ったんだ。

detached_prx 2025/09/13 14:37:59

Hi monax、プロジェクトをどう始めたのか聞きたいな。僕も今、OSの基礎を学ぶためにSkiftOSのようなマイクロカーネルを実装しようとしてるんだけど、どう始めたらいいか分からないんだ。こんなプロジェクトを始める時、最初に取り組むべきことは何?

monax 2025/09/13 14:49:33

何を言えばいいか分からないけど、どこからどう始めるかはそんなに重要じゃないと思うよ。大事なのは、とにかく続けること。この手のプロジェクトは大変だけど、進歩し続ければ、いずれ目標にたどり着けるからね。

detached_prx 2025/09/13 15:40:01

返信ありがとう、もう一つ質問。アーキテクチャ設計や初期実装を進めるにあたって、既存のコードベースや本を参考にした?もしそうなら、自分のビジョンを構築しようとしながら、安易に実装を”借りてしまう”落とし穴に陥らずに、それらのリソースをどう活用した?あなたがここでやったことは本当にクールで刺激的だよ :)。

qingcharles 2025/09/13 17:44:44

ホビーOSの話題が出るといつもこの本を紹介してるよ。僕も90年代にGUI OSを自作したんだけど、この本なしでは無理だった。よくある”影の図書館”でコピーが見つかるんじゃないかな。URL: https://us.amazon.com/Developing-32-Bit-Operating-System-Cd-

DeathArrow 2025/09/13 07:27:46

このプロジェクトを今の段階まで持ってくるのに、どれくらいの時間がかかったの?

monax 2025/09/13 07:36:48

何度か書き直したんだけど、今のこのバージョンは2年前に始めたものだよ。

gl-prod 2025/09/13 13:11:07

最初のバージョンはどれくらいかかったの?

hu3 2025/09/13 16:03:46

このプロジェクトなら、履歴書はたった2行でOK!メールアドレスとプロジェクトのウェブサイトだけ書けば、いろんな会社に引っ張りだこだよ。

FerkiHN 2025/09/13 12:33:58

え、これ全部自分で作ったの?!すごいな!C/C++デベロッパーとしてOSの作り方は知ってるけど、せいぜいアイデアを出すくらいで、全部自分で書くなんて言葉も出ないよ。

monax 2025/09/13 14:20:19

実はブラウザエンジンは手伝ってもらったんだ。

もっとコメントを表示(1)
rubymamis 2025/09/13 09:28:36

コードは本当によく書かれてて、すごく分かりやすくてモダンだね、お見事!ところで、さっきコンパイルしたアプリがなんでmacOSで動くの?

monax 2025/09/13 14:17:02

フレームワークにはOS抽象化レイヤーがあって、SDLを使ってウィンドウとユーザー入力を処理してるんだ。

j1000 2025/09/13 11:46:46

普段の仕事があるデベロッパーが、どうやったらこんなプロジェクトを作れる時間なんて作れるの?9時から5時まで仕事してたら無理だと思うんだけど。

monax 2025/09/13 14:15:31

無理だよ!ほとんどは、俺の人生でほとんど社会生活がなかった時期に書いたんだよ ’^^

j1000 2025/09/18 09:29:39

とにかく、おめでとう!これは本当にすごいことだよ! :)

masijo 2025/09/13 12:57:31

俺も同じこと思ってたよ。

spuz 2025/09/13 08:58:49

セキュリティに関してどんなアイデアを持ってるの?アプリはメモリやハードウェアにフルアクセスできるの?パーミッションシステムはあるのかな?マイクロカーネルがどう機能するか、あまり詳しくなくてごめんね。

monax 2025/09/13 09:09:08

アプリはメモリやハードウェアに好き勝手アクセスできないんだ。カーネルが許可したものだけ見えるようにしてる。ドライバはユーザー空間にあって、アプリは「ケーパビリティ」っていうハンドル経由でやり取りするんだ。許可がないと何もできない、しっかりアクセス制御されてるってことだね。

Panzerschrek 2025/09/13 10:34:35

ファイルシステムのアクセス権はどうなってるの?どのアプリでもユーザーの全ファイルにフルアクセスできるの?それとも、そのアプリ専用のファイルだけ?

monax 2025/09/13 10:38:53

アプリケーションはそれぞれ独自のネームスペースを持つよ。ユーザーファイルへのアクセスは、ディレクトリやファイルごとに権限が与えられた場合だけ。つまり、細かくアクセスを制御できるってことだね。

Panzerschrek 2025/09/13 12:33:06

このアプローチ、すごくいいね!OSの公式サイトのトップページで紹介すべきだよ。

spuz 2025/09/13 09:53:21

面白いね。ありがとう。

pkphilip 2025/09/13 06:02:54

これ、マジでクール!作った人、おめでとう!どこかにビデオデモとかある?まさかブラウザエンジンまで自作したなんて、本当に驚いたよ!

zhainya 2025/09/13 10:32:47

ビデオデモ、あったら最高だろうな。

exikyut 2025/09/13 12:13:51

ウェブサイトに写真と並んで、カルーセル形式で埋め込むのがいいんじゃないかな。

reactordev 2025/09/13 11:53:10

これ、初めての作品じゃないよね…コードを徹底的に見てみたよ。lib-sdl、impl-efi、co_return、co_await、try、構成可能なクラスを見つけた。自分のコードがこの優雅さに比べるとぐちゃぐちゃに見えるよ。モジュールも完璧!

thorn 2025/09/13 16:51:13

このプロジェクトのオーナー、素晴らしいね!よくやったよ。これぞモダンC++(モジュール採用)で、さらに改良されてる。GCとかQoL改善も入ってるし、co_try、.unwrap()、asyncなんかを見るとRustの影響も感じるな。今後の計画はどう考えてる?

brodo 2025/09/13 09:29:40

めちゃくちゃすごいね!GPUはサポートしてるの?それともUIは全部CPUレンダリング?すごく綺麗だよ。

monax 2025/09/13 12:55:39

CPUレンダリングだよ。GPU対応は今後の計画に入ってるよ。

the__alchemist 2025/09/13 14:07:00

ありがとう!もっと多くのGPOSが必要だよね。現状の主要3つに縛られすぎてたよ。もっと良いものを作る余地はたくさんあると思うよ。[misaligned incentives?]

tampueroc 2025/09/13 10:29:56

ちょっと話は逸れるけど、よく知らないから教えて欲しいんだけど、OS開発でマイクロカーネルアプローチを選ぶメリットとデメリットって、直感的にどういう感じなの?

mike_hearn 2025/09/13 12:43:30

最近の商業OSはほぼハイブリッドアーキテクチャなんだ。サブシステムは、パフォーマンス的に問題なくて時間があればカーネルからユーザー空間へ移されることが多いよ。戻ることは稀だけどね。マイクロカーネルっていう言葉は学術的なもので、OSデザイナーは昔から安定性や開発速度のためにコードをユーザー空間で動かすのが良いって知ってるんだ。結局、この概念をどこまで突き詰めるかの問題だね。MicrosoftもAppleもAndroidも、GUIやファイルシステムの一部をユーザー空間に移してきた歴史があるよ。

hollerith 2025/09/13 13:57:37

なんでTTY-PTY機能がLinuxカーネルからユーザー空間に移されないのか教えてくれない?Plan 9は昔からやってたのに。テキストだけの操作を楽しんでるユーザーが、なんで未だに古い『ラインディシプリン』やANSI制御シーケンスとか、TERMINFOデータベースに頼ってるのかも理解できないんだ。昔のパフォーマンスのために導入された無駄が、現代の技術で簡単に作り直せるのに残ってるのはおかしいでしょ?なんで1960年代、70年代の専用端末をエミュレートし続けてるの?ネットワークも速いし、RAMも安いから、カーソルアドレッシングなんて不要で、毎回画面全体を再送すればいいはずだよ。通信プロトコルも、今となっては理由もないのにステートフルなのはおかしいと思うんだ。

mike_hearn 2025/09/13 17:58:33

プログラマーの時間は貴重だし、レガシーコードに手を出したがる人は少ないから、多くのものがカーネルに残ってるんだ。カーネルからコードを出すのは、新しい問題を解決できる明確な仕様がないと、逆に遅くなったり、メリットがなかったりするよ。例えば、コアなファイルシステムをユーザー空間に移してクラッシュしたら、全部のプロセスが巻き添えになるでしょ?結局パニックして再起動するのと変わらないなら、カーネル内に置いとく方がいいんだ。GNU Hurdみたいにセキュリティの問題も生む可能性があるしね。だから最初はモノリシックにして、準備ができたら切り出すのが良いんだよ。Linuxはカーネルとユーザー空間が独立してるから、機能移動も難しいしね。ターミナルを改善したいなら、コードの移動じゃなくて新しいプロトコルを作るべきだよ。

fluoridation 2025/09/13 22:12:29

『ファイルシステムプロセスがクラッシュしたら全プロセスがクラッシュして再起動するのと変わらない』って言ってたけど、必ずしもそうじゃないと思うんだ。設計次第では、各FSプロセスがマウントポイントやFSタイプごとにリクエストを処理できるし、それだけで安定性は上がるでしょ。それに、接続が切れても、サーバーがハンドル情報をカーネルに保存しておけば、プロセスが再開した時に復旧できるはずだよ。乗り越えられない問題じゃないと思うな。

mike_hearn 2025/09/14 07:27:57

たしかに、それは全部解決できるね。FUSEもその例だよ。俺ならプロトコルをステートレスにしてfdの状態をクライアントに持たせるな。要は、OS設計者はトレードオフを理解した上で、限られた予算の中でどう時間を配分するか決めるんだ。クラッシュバグは有限だからね。複雑な再設計で少しだけ失敗を減らすか、バグ修正に時間を使うか。コードが複雑でサードパーティ製なら、FUSEやグラフィックドライバみたいに外に出す価値はある。でも、コアなファイルシステムみたいに小さくて安定しててパフォーマンス重視ならカーネル内に残すのが合理的だ。ブラウザもマイクロカーネル的だけど、何を分割するかは慎重だよ。マイクロカーネルって概念は、エンジニアリングのトレードオフを無視して全部ユーザー空間に置けって言うだけで、具体的なメリットを語らないから、今はほとんど使われない学術的なものなんだ。

fluoridation 2025/09/14 07:46:45

『クラッシュバグは有限だから、再設計よりバグ修正』って言うけど、その有限ってすごく大きい数になることもあるよ。安定性を高める再設計の方が絶対良いに決まってるでしょ。そうじゃないなら、ユーザーモードのコードだって『メモリ保護なんて不要』って話になるよ。CloudStrikeのバグ覚えてる?あのドライバーがユーザーモードだったら、システムは動き続けてエラーを報告できたはずだよ。ブートループになるより、ずっとマシでしょ。

mike_hearn 2025/09/16 08:01:43

OSのコードはユーザーアプリより安定してるし、更新もゆっくりだね。ブラウザみたいな一部のユーザー空間アプリはマイクロカーネルだけど、多くのアプリは毎週更新されて不安定さも許容されがちだよ。

mike_hearn 2025/09/16 17:57:12

もう一回言うね。カーネルからコードを出すのは大変で、バグを直す方が早いこともあるんだ。でもAVスキャナーやGPUドライバーみたいにバグが次々出るやつは、カーネル外に出す方がいいんだよ。CrowdStrikeの多くはカーネルモードで動いてないし、MicrosoftもAVの一部をカーネル外に出すべきだったかもね。AVはどこにでも潜り込むから、Microsoftが排除するのは技術的じゃなく独禁法の問題になりそうだ。

whitten 2025/09/13 17:03:10

DEC VTターミナルのプロトコルがANSI X3.64標準なせいで、この問題は解決も最新化もされてないんだと思うよ。詳しくはこれ見てね
https://en.m.wikipedia.org/wiki/ANSI_escape_code

もっとコメントを表示(2)
jonjacky 2025/09/13 21:47:55

組み込み用の簡単なCPUボードだと、グラフィックがないやつもあるから、シリアルポート経由でターミナルとかターミナルエミュレータを使って操作しなきゃいけないんだ。

TuxSH 2025/09/13 16:47:19

汎用OSならそうかもね。でもNintendo 3DS OSとかSwitch OSは専用のマイクロカーネルベースで、数億台のデバイスに搭載されてるよ。DMA-330 CoreLink DMAの扱い方次第だけど、これもそうとカウントできるかもね。

logicchains 2025/09/13 12:15:05

マイクロカーネルは考え方はきれいだし安全だけど、実際はユニカーネルよりだいたい遅いんだ。

wucke13 2025/09/13 12:31:52

Gernot Heiserは最後の点については絶対反対するだろうねD

boogerlad 2025/09/13 13:30:47

これはチャンスだね!まっさらな設計なんだから、階層型ファイルシステムなんて捨ててRDBMSに置き換えるべきだよ。

monax 2025/09/13 14:19:34

うん、RDBMSは良さそうだね。具体的な実装はこれから考えなきゃ。

throw10920 2025/09/13 20:28:36

記事ができたら読みたいなぁ。データベースみたいなストレージシステムを備えたホビーOSを作りたいんだけど、デザインでめっちゃ悩んでて動けないんだ。

darkamaul 2025/09/13 16:45:44

すごいプロジェクトだね!SerenityOSみたいに、次のCCC CTFでSkiftOSが見られるのが楽しみだよ![0] https://2019.ctf.link/internal/challenge/1fef0346-a1de-4aa4-

TinkersW 2025/09/13 18:35:48

かなり大変な作業だったろうね。カスタムビルドシステムを作ったのは驚きだけど、C++のビルドシステムの状態を考えると責められないな。
あと、なんでOS開発者ってブラウザを作りたがるんだろう?ブラウザってOSにほとんど依存しないんじゃないの?UIはめっちゃ良い感じ!

monax 2025/09/13 18:38:05

ブラウザはただのアプリケーション実行環境だよ ;)

neilv 2025/09/14 03:32:14

SkiftOSすごいね。これって、早期リタイアした後に趣味でしかできないと思ってた計画とそっくりなんだ。まさかサイドプロジェクトでここまでできるとは想像してなかったよ。

Panzerschrek 2025/09/13 06:16:52

きれいなUI以外に何があるの?ネットワークサポート、サウンド、どんなファイルシステムに対応してる?マルチユーザーは?アプリケーションの分離はどうなってるの?こういう情報がサイトのどこかに表示されてるといいんだけどな。

monax 2025/09/13 06:22:33

これはマイクロカーネルベースのOSだよ。僕にとっては学習と楽しむためのサイドプロジェクトって感じ。NixOSの/storeみたいなのを実装してるんだ。ハードウェア、ネットワーキング、サウンド、ファイルシステムはまだ超ベーシックな状態。これまでの作業は、ほとんどフレームワークといくつかのサンプルアプリ、あとブラウザに注力してるよ。

ktosobcy 2025/09/13 18:02:44

うーん…もっと幅広いハードウェアのサポートはどうなるの?SkiftOSがマイクロカーネルだってことを考えると、他のOS(Linuxとか)のフリーなドライバーを移植したり適応させたりするのって、どれくらい難しいんだろう? :)

DesiLurker 2025/09/13 19:18:37

オフトピックでごめん。PalmSourceとかがBeOSのコードをオープンソースにしない理由が分からないよ。ライセンスの意地で20年前のコードを持ち続けても何の得にもならないのに。VCコミュニティが善意を語る割に、これって一番簡単なことじゃん?会社が倒産したら、未完成の権利は投資家に渡して、他のスタートアップのためにオープンソースにするっていう資金調達時の条項を作っておけば、もっと素晴らしいものが何度も生まれてたはずなのにね。愚痴終わり!

KerrAvon 2025/09/13 22:15:44

OSみたいな大規模なものをオープンソース化するのは金がかかるんだよ。権利関係の調査も必要だし、経営陣から見たら金をドブに捨てるみたいに見えるんだってさ。

DesiLurker 2025/09/15 17:49:48

それってstrawmanだよ。Be Inc.からACCESS Co.まで所有者が何回も変わったけど、その度にデューデリジェンスはしてたはずじゃん?一部のモジュールだけでもBSD-3とかMITにすれば意図が伝わるのにさ。VCってこの20年、そんなことしたことないよね。結局、金儲けが目的なんだよ。

anta40 2025/09/13 14:22:43

めっちゃ良さそうじゃん。ブックマークしといたわ。macOSでまだビルドできてないけど、カスタムGCCをビルドしなくていいなら大歓迎だよ。

dataflow 2025/09/13 22:58:42

すごい!AIでコードをどれくらい書いたのか気になるな。

monax 2025/09/14 06:08:01

Copilotを早くから使ってたけど、だんだん使わなくなったな。AIアシスタント、エディタから全部消したよ。IDEへの統合って気が散るし邪魔だし、コーディングが楽しいから、楽しいとこまで自動化する必要なくなくない?

nerflad 2025/09/13 13:08:57

こういうプロジェクトは本当にどれも美しくて素晴らしいね。おめでとう。

akash100x 2025/09/13 07:33:16

めっちゃクール!6年間も作り続けてるなんてすごいね!

xbar 2025/09/13 21:34:57

とても素敵だね。

drob518 2025/09/13 11:32:44

美しいね。

binocry 2025/09/13 07:28:04

くそ、これマジで良いじゃん。The Registerの人がこれ見てくれるといいな。

記事一覧へ

海外テックの反応まとめ
著者
海外テックの反応まとめ
暇つぶしがてらに読むだけで海外のテックニュースに詳しくなれるまとめサイトです。