オペレーティングシステムの開発に関する別の本

画像


こんにちは!



ここ数年、私は約30のオペレーティングシステムのソースコードをある程度研究する機会がありました。私はそれらすべてを覚えていることはないでしょう。基本的に、これらはマイクロコントローラ用の小さなライブラリでしたが、「大きな」OSもさまざまな没入度で表示する必要がありました。



これまでずっと、基本的にQEMUの「hello world」の出力に要約された「OS開発」に関するさまざまなリソースへの投稿を観察し、OSと「ベアメタルで実行できるプログラム」を混同する必要がないと不満を述べていました... OSはハードウェアでの作業ではなく、まず同期とジャズについてです。



「学術的」開発に興味がある人は、インターネット上のHOWTO投稿ではなく、本を読むべきだと主張する人もいるかもしれません。一方、E。Tanenbaumの作品のような本にも欠点があり、上記の投稿の流れが乾燥しないという事実につながります。 Tanenbaumの本(MINIXについて)はまだかなり「高」レベルであり、実際に発生する多くの質問はそこではまったく考慮されていません。そしてもう1つあります。汎用オペレーティングシステムとRTOSの開発は、歴史的に逆の方向に進んでいます。UNIXのようなオペレーティングシステムでは、シングルスレッドプロセスが最初に登場し、しばらくしてからプロセスがマルチスレッドになりました。 RTOSの領域では、それは逆でした。最初に「単一プロセス」のマルチスレッドシステムがあり、それから初めて複数のプロセスが存在できるようになりました。後者の方が勉強に向いているという意見がありますが、より単純なものから始め、徐々に物事を複雑にし、最終的には同じことになるからです。しかし、私は余談です。



この私のすべての不平不満は、「批判する-提案する」、「より良くする」、「ピアニストができる限り演奏する」、「誰もがアーティストを怒らせることができる」などのフレーズで他の人や同僚によって満たされました。したがって、ある日忍耐力が尽き、私は大丈夫だと言いました、挑戦は受け入れました。そして彼は「正しい方法」の彼自身のバージョンを書くために座った。



ちなみに、このイベント全体の財政的および道徳的なサポートのために、私はEremex会社と、最初のドラフトを読んで編集するという形で労働の偉業を果たした同僚に感謝したいと思います。



巻数が250ページに達したとき、間に合うように停止する必要があることが明らかになりました。この作品は、一般的には未完成のままでしたが、それでも、この形でさえ、本は概念をよく説明していて、トピックに興味がある人々にとって有用であると思います。レビューによると、読みづらいので、どうすればいいのか教えていただければありがたいです。



私の意見では、OSは、いくつかの独立したタスクの作業を整理する必要があるときに発生する一連の問題に対する答えです。したがって、問題の説明とその解決策への可能なアプローチから始める必要があります。それが歴史的に起こったというだけでなく、それがどのように起こったかを正確に議論しましょう。したがって、この本は古典的な作品とは対照的ではなく、それらを補足し、組み込みシステムとRTOSの側面からの少し異なる見方を提供します。



大学でオペレーティングシステムのコースを研究している理論家ではなく、プログラマーが直面している問題について説明します。したがって、「同期コンテキストスイッチングはなぜ一般に良い考えではないのですか?」、「分離されたプロセスをサポートする必要がある場合、カーネルでどのような質的に変化するのですか?」などの質問。等



また、LLVMの形式でフロントエンドとバックエンドに分割されているため、コンパイラーが経験するのと同様のアーキテクチャーおよびイデオロギーの変換をオペレーティングシステムがまだ受けていないという見方もあります。最初は、この分離による影響は見られませんでした。プログラマーは、コンパイラを前と後の両方で同じように使用しました。しかし、Rustと他の言語の出現を可能にしたのはこの分離でした。その言語の作成者はすぐに言語のセマンティクスに集中でき、バックエンドを使用する準備ができていました。同様に、OSをいくつかの部分に分割して、これらすべてが独立したプロジェクトとしてさまざまな人々によって記述されるようにすることが望ましいでしょう。FX-RTOSは



、説明されている原理を説明するために使用されます。この問題への可能なアプローチの1つとしても。もちろん、カーネルの一部を他の部分に触れずに記述できるようにするには、カーネルがそれを許可するような方法で記述する必要があります。ここではカートを馬の少し前に置きましたが、最初はOS自体が表示されたため、そのアーキテクチャは例を使用して主題を研究するのに非常に適していることが明らかになりました。すべての概念を徐々に。



上記のソースを使用して、第6章までの概念を説明できます。これで、MINIXにスムーズに移行できます。



何もかも一気にジャンプしたように見えないようにするために、最初の2つの章を追加する必要がありました。これらの章は、一般的な概念とハードウェアに特化しています。プログラマは、残りの部分の理解に影響を与えることなく、それらをスキップできます。こちらから



登録やSMSなしで本を無料でダウンロードできます 重要なレビューを歓迎します。重要なレビューは歓迎しますが、コメントが2文以上の場合は、プライベートメッセージで書くことをお勧めします。コメントが大きくなり、関連する問題のディスカッションツリーになりがちなので、操作が困難で不便です。 PSトピックが興味深いことが判明した場合は、後でFX-RTOS自体について説明します。










All Articles