婦人声明: まず第一に、私はこの質問に答えるのに適したStackExchangeコミュニティにいることを100%確信できませんが、一般的なオペレーティングシステムの問題を解決するコミュニティを見つけることができません。他の場所に移動する必要があるかどうかを教えてください。
第二に、これが愚かな質問なら、私の無知を許してください。オペレーティングシステムの内部動作に関する現在の知識は、私が長年にわたってランダムに得た知識とXINUメモリ管理を使用して基本的な概念を教えた学部「オペレーティングシステム」コースに限定されています。そしてCPU制御。
質問: LinuxカーネルとWindows NTシステムコールの両方をサポートする単一のカーネルを開発するのを妨げる問題は何ですか?非常に基本的なレベルで(時間がかかる場合)、Windowsスタイルのシステムコールもサポートする修正版のLinuxカーネルを作成できることを願っています。
前述のFrankensteinカーネルを作成し、Microsoftの「.exe」実行可能ファイルの種類を解釈する方法を教えてください。WindowsベースおよびUNIXベースの実行可能ファイルを実行できますか?
私はWINEについてはよくわかりませんが、Windows呼び出しをLinuxに対応する呼び出しに変換する一種の互換性レイヤーとして機能する同様のことをすることを想像しています。それでは、これらの機能をカーネル自体に追加すること(したがってオーバーヘッドをスキップすること)を妨げるものは何ですか?
マイクロソフトの著作権問題ですか?両方のオペレーティングシステムが根本的に異なるため、これは単に不可能ですか?
私はこれに関する情報(または少なくともそれが実行できなかったか、または実行されなかった理由の説明)を検索しましたが、多くのものが見つかりませんでした。という名前の男に会いました。ロンジネット中国の一グループがそんなことをしようとしたようだが、始めるやいなや早く消えたようだ。
私の考えでは、このようなものが大きすぎてメンテナンスが多すぎて価値がないかもしれません。しかし、オペレーティングシステムについてのより深い知識を持つ人からの意見を聞きたかったし、これが正しい場所であるようでした(Windowsカーネル開発者コミュニティがすべて排他的であるため、存在できないことを考慮すると)。
答え1
ある意味では頑張ってきたり、頑張っています。これ反応OSWin 95オペレーティングシステムを複製しようとし、彼らが直面した問題はNT複製試みを代表することでした。
マイクロソフトは、プログラマーがエンジニアのレプリカを尊重できるよりも早く更新と変更を意図的に開発しています。マイクロソフトは常に、現在のオペレーティングシステムがリリースされる前に次世代のオペレーティングシステムの開発を開始し、機能とコードを排他的に保ちます。彼らはWin 7がリリースされる前にWin 10を起動し、Win 10がリリースされる前にWin 11を起動しました。 (はい、彼らはWin 10が最後のオペレーティングシステムであると嘘をつきました!)私たちが言うように、彼らは次世代のオペレーティングシステムを開発しています。
通常、マイクロソフト製品は、レプリケーションに時間を費やすのに十分な視聴者を集めるほど魅力的ではありません。代わりに、ほとんどの人は「より良い」ものや他のものを望んでいます。
上記のREACT OSは20年以上の開発期間が過ぎましたが、それでもかなり不安定です。また、ハードウェアが早すぎるため、5〜10年前に安定したバージョンを使用しても、新しいハードウェア要件がチームのパフォーマンスに負担をかけることがあります。
すべての新しいサウンドカード、ビデオカード、チップとの互換性を維持する努力を想像してください!これは無限の感謝の気持ちになるでしょう:(
答え2
LinuxカーネルとWindows NTシステムコールの両方をサポートする単一のカーネルを開発するのを妨げる問題は何ですか?
- 利用可能な開発者時間。
- WindowsとLinuxはさまざまな点で異なります。あるAPIに対して「ファイルへの同時書き込みアクセスが常にすべてのリーダーの順序で発生する」ことを保証し、別のAPIに対して「書き込みアクセスが絶対に発生しない可能性がある」ことを保証する場合、他のAPIによってブロックされません。 「書き込む」と入力すると、論理的な競合が発生します(論理的な競合ではないと思います)。一部の機能が失われます。
最も基本的なレベルで、Windowsスタイルのシステムコールもサポートする修正版のLinuxカーネルを作成できることを願っています(時間がかかりますが)。
Windows NTにはUNIXスタイルのAPI(NT4で始まる!)であるPOSIX APIがあり、Linux(ほぼ)も同様です。したがって、このオペレーティングシステムはある程度存在し、Windowsです。
私はWINEについてはよくわかりませんが、Windows呼び出しをLinuxに対応する呼び出しに変換する一種の互換性レイヤーとして機能する同様のことをすることを想像しています。
はい!一部のシステムコールを翻訳し、Windowsに付属のユーザーモードライブラリ(一部)を提供します。
マイクロソフトの著作権問題ですか?
おそらくそうではありません。 Java APIを取り巻くOracle対Google APIに著作権を付与できないことが法廷で証明されています(米国)。しかし、私は弁護士ではなく、これがWindows APIにどれだけ拡張されるのかわかりません。ただし、WINEはまだ問題が発生していないため、これからこれを実施するのは難しいかもしれません。
前述のFrankensteinカーネルを作成し、Microsoftの「.exe」実行可能ファイルの種類を解釈する方法を教えてください。WindowsベースおよびUNIXベースの実行可能ファイルを実行できますか?
「カーネル」という言葉は無視してください。 WINEおよびLinuxカーネルを使用すると、binfmt_misc
現在これを行うことができます(ほとんどのWindowsソフトウェアの場合)。これは非常に一般的な慣行です!