問題タブ [kernel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - カーネルドライバーの単体テスト
Windowsカーネル環境用のテストフレームワークを探しています。これまでのところ、cfixを見つけました。誰かがそれを試しましたか?代替案はありますか?
linux - Linux や BSD カーネルの内部構造を理解するにはどうすればよいですか?
オペレーティング システムの内部についての知識を深めたいと考えています。プロセス管理、メモリ管理など。
Linux カーネルか BSD カーネルのどちらかを知ることで学習しようと考えていました。
学習目的に適したカーネルはどれですか?
始めるのに最適な場所は何ですか?
何か良い本を教えてください。
operating-system - オペレーティング システムの開発を開始するためのリソースは何ですか?
私が常にやりたかったことの 1 つは、独自のオペレーティング システムを開発することです (必ずしも Linux や Windows のように凝っているわけではありませんが、既に行った単純なブート ローダーよりは優れています)。
単純な「Hello World」OS を作成するためのリソースやガイドを見つけるのに苦労しています。
Linux や BSD を検討することを勧める人が多いことはわかっています。しかし、そのようなシステムのコード ベースは (おそらく) 非常に大きいため、どこから始めればよいかわかりません。
助言がありますか?
更新: Google からこの投稿にたどり着いた人が簡単に利用できるように、OS 開発リソースをいくつか紹介します。
独自のオペレーティング システムを作成する(Adam に感謝)
ゼロからの Linux (ジョンに感謝)
SharpOS (C# オペレーティング システム) (lomaxx に感謝)
OS Dev Wikiとフォーラム(Steve に感謝)
BonaFide (ありがとうスティーブ)
ふすま(ありがとうスティーブ)
独自のおもちゃの UNIX クローン OS を作成します(Steve に感謝)
その他のリソース:
「 MikeOSは、単純な OS がどのように機能するかを示すための学習ツールです。複雑なドライバーを必要としないように、BIOS アクセスに 16 ビット リアル モードを使用します」という素晴らしいリソースを見つけました。
2008 年 11 月 14 日更新
Freebyte's Guide to...Free and non-free Operating Systemsで、OSKit や ExOS ライブラリなどのキットにリンクしているリソースを見つけました。これらは、OS 開発を始めるのに非常に便利なようです。
2009 年 2 月 23 日更新
Ric Tokyoは、この質問でnanoosを推薦しました。Nanoos は C++ で書かれた OS です。
2009 年 3 月 9 日更新
Dinah は、意欲的な OS 開発者のスタック オーバーフローに関する有益な議論をいくつか提供してくれました。カスタム オペレーティング システムを作成する際の障害については、OS の開発中に遭遇する可能性のある落とし穴について説明しており、OS 開発はより一般的な議論です。
2009 年 7 月 9 日更新
LB は、OS 開発を学ぶ学生向けに設計された教育用 OS であるPintos Projectへのリンクを提供しました。
2009 年 7 月 27 日に更新 (まだ勢いがあります!)
私は、23 の講義を特徴とするバークレーのオンライン OS コースに出くわしました。
TomOSは、小さなメモリ マネージャーとマウス サポートを含むMikeOSのフォークです。MikeOS として、教育プロジェクトとして設計されています。NASM アセンブラで書かれています。
2009 年 8 月 4 日更新
スライドやその他の資料は、上記のバークレーのオンライン レクチャーに付随するものであることがわかりました。
2009 年 8 月 23 日更新
stackoverflow でosdev とタグ付けされたすべての質問
OS/161は、シミュレートされたハードウェア上で動作する c 言語で書かれたアカデミック OS です。この OS は Nachos に似ています。ありがとうノベロクラット!
tangurena は、組み込みシステム向けに設計された OS であるhttp://en.wikipedia.org/wiki/MicroC/OS-IIを推奨しています。コンパニオンブックもあります。
Robert Love によるLinux Kernel Developmentは、Anders によって提案されています。これは、「広く評価されている内部関係者による Linux カーネルの考察」です。
2009 年 9 月 18 日更新
完全に c# で記述された OS であるCosmosについて教えてくれた Tim S. Van Haren に感謝します。
tgiphil は、マネージド オペレーティング システム アライアンス (MOSA) フレームワーク、「共通中間言語に基づくマネージド オペレーティング システムの開発を促進するためのツール、仕様、およびソース コードのセット」について語っています。
2009 年 9 月 24 日更新
Steve は、Visual Studio を使用して Windows で開発するためのリソースをいくつか見つけました。BrokenThorn のガイドのセットアップと VS 2005またはOSDev の VS セクションを参照してください。
2012 年 9 月 5 日更新
kerneltrap.org は利用できなくなりました。Linux カーネル v0.01 は、kernel.orgから入手できます。
2012 年 12 月 21 日更新学期のプロジェクトとして設計され た基本的な OS 開発チュートリアル。基本的なコンポーネントを使用して OS を構築する方法について説明します。初心者にとって非常に良いスタートです。関連論文. ありがとうスルジャン!
2013 年 11 月 15 日更新
シンプルなオペレーティング システムをゼロから作成する. ありがとうジェームズ・ムーア!
2013 年 12 月 8 日更新
コンピューターのオペレーティング システム の作り方 ありがとう ddtoni!
2014 年 3 月 18 日更新
2016 年 9 月 12 日更新
2016 年 12 月 10 日更新
単純なオペレーティング システムの作成 — スクラッチから(@Tyler C に感謝)
operating-system - タスク スケジューラ
リアルタイム タスクの最適なスケジューリング戦略について何人かの同僚と興味深い議論をしましたが、誰もが一般的または有用なスケジューリング戦略をよく理解しているわけではありませんでした。
回答については、複数の戦略について少し情報を提供するのではなく、1 つの戦略を選択して詳細に説明してください。他の人の説明に追加するものがあり、それが短い場合は、新しい回答ではなくコメントを追加してください (それが長い、または役立つ、または単にはるかに優れた説明である場合は、回答を使用してください)
- 戦略とは何か - 一般的なケースを説明します (タスク キューとは何か、セマフォ、ロック、およびスケジューラ自体の外部にあるその他の OS の基礎を人々が知っていると仮定します)
- この戦略は何のために最適化されていますか (タスクの待ち時間、効率、リアルタイム、ジッター、リソース共有など)
- リアルタイムですか、それともリアルタイムにできますか
現在の戦略:
-アダム
linux - Linux TCP/IP ハッカーはどこに「住んでいる」のですか?
過去 1 年ほどの間、私のプロダクション プラットフォームは奇妙な TCP/IP の問題に悩まされてきました。私は無数の時間を有能で知識豊富なシステム管理者と協力し、ネットを精査し、ソース コードを読み、RH の哀れなサポートに振り回され、血の涙を流しました。無駄に。(Google 'unkn-4'で検索すると、私の名前があちこちにある投稿がたくさん表示されます。)
回避策が実施されているため、この問題は優先事項ではありません。しかし、私のオタクは、この問題を理解し、解決したいと思っています。
では、ある程度有能なシステム プログラマーはどこに行って詳細な質問をし、TCP/IP スタックの主から詳細な回答を得ることができるのでしょうか? 彼らの世界はベアメタルに非常に近く、人口が非常に少ないため、私の世界とは異なると思います。そして、彼らは「モデムが動かない」というメールに返信したくないので、影に隠れています。
任意のポインタをいただければ幸いです。
linux - 情報のないドライバーの開発
オープンソース/フリー ソフトウェア コミュニティは、ドキュメントを提供しない製品のドライバをどのように開発していますか?
windows-xp - WindowsXPでのユーザー開始カーネルダンプ
ユーザーが開始したカーネルダンプのキーボードキーのシーケンスを示すMarkRussinovichのWebキャストを見たのを覚えています。誰かがキーの正確な順序で私の記憶をリフレッシュできますか?
これはXP用であることに注意してください。
linux - 自宅でカーネル ハッキングと組み込み開発を学んでいますか?
私は常にカーネル ハッキングと組み込みシステムの世界に惹かれていました。
そのようなものをいじり始めるための優れたチュートリアル(+簡単に入手できるハードウェア)を持っている人はいますか?
適切なドキュメントが付属し、手頃な価格のドライバなどを作成するためのキットのようなものはありますか?
ありがとう!
c - copy_to_user からの「不正なアドレス」エラー
カスタム構造体をカーネル空間からユーザー空間にコピーしようとしています。ユーザー空間内で errno が「不正なアドレス」を返します。不正なアドレス エラーの通常の原因は何ですか?
c# - C# ドライバー開発?
C# に真っ向から飛び込む前に...
Windows でドライバーを開発するには、C、または C++ が最適だと常に感じていました。私は、.NET マシンでドライバーを開発するという考えにはあまり興味がありません。
しかし、.NET は、MS がアプリケーション開発に向かっている方法のようです。
- ドライバーの開発に C# を使用している人はいますか?
- 多くの API フックを実行する必要がありますか?それとも、C# には多くのハッカーなしでカーネルとインターフェイスする機能がありますか?
- 通常よりもリング 0 に近い場所で C# プログラムを実行することの信頼性と安全性について話せる人はいますか?
私は自分のデバイスを C# で使用できるようにしたいと考えています。C# のドライバー開発が成熟している場合は、それが当然の方法ですが、推奨されていない場合は、そこに多くの労力を費やしたくありません。
- たとえば、単純な仮想シリアル ポート ドライバーの開発を始めるのに適したリソースは何ですか?
-アダム