スロス
SLOSは単純なライトOSを表します。このリポジトリは、ARMプロセッサで実行されているSLOSのソースコード用です。 Xilinx Zynq7000チップセット(現在Coraz7ボードでテストされている)の皮質A9でテストされていますが、他の製品に拡張されているようです。
実装リスト
- プロセス管理
- TCB(タスクコントロールブロック)
- タスクフォーク-Forkyi()
- GIC-割り込みハンドラー(上半分 /下半分)
- タスク同期(スピンロック)
- タスク状態-task_running、task_waiting
- タイマーフレームワーク
- リアルタイムタイマー、スケジュールタイマー、オンシュートタイマー
- タイマー割り込みハンドラー
- RTタスクのリアルタイムスケジューラ
- 初期の締め切り最初のスケジューラ
- プリエンプティブコンテキストスイッチ
- 他のタスクのCFSスケジューラ
- Qを実行してQを待ちます
- Linux Run QおよびCFSスケジューラを模倣します
- 仮想ランタイムのスケジュールエンティティ
- シェルタスク、ワーカータスク、CPUアイドルタスク、ダミータスク
- メモリ管理
- ページフレームプール
- 小さなページテーブルウォーク
- 仮想メモリマネージャー
- ページフォールトハンドラー
- 需要ページング
- SLFS(単純な光ファイルシステム)
- ラムディスクに基づいています
- 2レベルファイルシステム:最大800kbのファイルサイズ
- アプリケーションを使用するためのRAMディスクとELFローダー
- SVC命令を介したsyscall -libslos.a
- ハードウェアソフトウェアコード設計
- PLサブシステムのカスタム周辺HWの2つのFPGA(Modcore、ODEV)実装
- スクリプトベースVivadoプロジェクトの実装
- DMA割り込みハンドラーを備えたデバイスドライバー
- アウトストリームデバイス用のデバイスドライバー
- SMP(対称マルチプロセッサ)
- CPU 0およびCPU 1は同一のカーネルで起動して実行されます
- PERCPUリソースストレージ
- CPU 0とCPU 1の間のSGI(ソフトウェア生成割り込み)
- CPU 0とCPU 1の間の通信用メールボックス
システムをビルド:
- cmake build、buildの両方が機能しているようにします
- kconfig
- デバイスドライバー用の静的にリンクされたデバイスツリー
詳細については、scrate.pdfからのカスタムOS開発に関する小さな本を参照してください。
注:Cora Z7のPetalinux-Packageに、Petalinux V2023.2が使用され、検証されています