树莓派3およびARMv8-AArch64アーキテクチャに基づいて、マイクロオペレーティングシステムカーネルが実装されています。
このプロジェクトは、 overview + subprojectsの形式で編成されています。 overviewすべてのコードを保存します。各subproject 、不要なファイルをフィルタリングするなど、独自のニーズに応じてこれらのコードを使用します(コンパイルから除外)。
このプロジェクトは、最新のC++言語を使用して開発され、主なターゲットアーキテクチャはARMv8です。プロジェクトで使用されるコンパイラはg++であるため、コードには__attribute__ 、 __asm__などのg++の構文拡張機能が含まれます。
さらに、コンパイルします
このプロジェクトはeclipse ( version > = 4.6.3 )に基づいています。コンパイルするときは、適切なeclipseバージョンを使用する必要があります。 Windows 、 Linux 、またはMacOSで、 File - > Open Projects from File System - > Directoryをクリックし、プロジェクトがあるディレクトリを選択し、開く - > Finish選択します。
このプロジェクトには、主にhost 、 qemu_virt 、 raspi3 、およびuser_space複数のサブプロジェクトがあります。
これらの構成の対応する目標(アーキテクチャ)は、ホストホストオペレーティングシステム(主にメモリ管理およびその他のアーキテクチャに依存しない機能のテストに使用される)に基づく開発、QEMUシミュレーション(仮想メモリ、割り込みなどをテストするために使用)に基づく開発、Raspberry PI 3(包括的な検証に使用される)に基づく開発、およびユーザースペースのプログラム。
すべてのサブプロジェクトは、サブプロジェクトの下にあります。
このプロジェクトは、いくつかの特別な建設目標を構成しています。プロジェクトのBuild Targetsを参照してください。
カーネルでは、グローバル変数の使用を回避することは、実際に定義する必要があるすべてのグローバル変数を初期化するために特別に使用できます。これらの変数は、コンパイル期間中にすでにスペースを割り当てているため、使用するのに便利です。使用する必要がある場合は、定義で一度定義し、初期化関数で一度再定義します。
プロジェクトの構成が変更された場合、すべての日食環境がエクスポートされるため、新しいコマンドラインを再起動する必要があります。
プロジェクトの進行状況の概要参照progress_current.md
プロジェクトレコードリファレンスrecording_note.md
サブプロジェクトの構造と構成、サブプロジェクト/readme.mdを参照してください
進行中です(おそらくmit-licenceですが、再び閉じられる可能性がありますが、現在は半分の開放で半分閉じられています)。
いいえ、代わりにPOSIXにします。
後で参照される可能性のあるいくつかのコーディングルールに従ってください
後で公開される可能性のあるドキュメントをお読みください
QEMUを使用して、いくつかのデモプログラムをデバッグします
カーネルのコードを変更してみてください、再実行してください。
次に、git add -a && git commit && git push!
こちらを参照してください。外部文書も参照してください。
RSP3-ARMV8-Baremital、元のプロジェクト。
Linux、Linux、正式に。
Qemu、多くの役立つエミュレータ。
Goggisor、Gogleによるユーザースペースカーネル、Go。
その名前が示すように、ユーザーモードLinux(UML)。
x2、ボーチの古代の核。
RASPI3チュートリアル、BZTによる、初心者にとって非常に便利です。
ARMV8 Hello World、ARMV8のHello Worldの例、QEMUに基づいて、初心者に役立ちます。