sagiri
1.0.0
X86-64マルチコアプロセッサで実行できるシンプルなオペレーティングシステム。
これは、オペレーティングシステムの実験コースで行われた私の宿題です。クラスは32ビットのシングルコアCPUでのオペレーティングシステムの設計についてのみ語っているため、マルチコアプロセッサで実行されるオペレーティングシステムにもっと興味があるため、X64対称マルチプロセッサにオペレーティングシステムを作成することにしました。
Ubuntu 16.04を使用して開発されました。インストール依存関係:
apt install make gcc gdb qemu
走る
make qemu

アプリケーションにプロセス/スレッドAPI、プロセス/スレッドの作成、待機、キャンセル、睡眠、その他の操作をサポートします。
プロセスの作成中にメモリコピーオンライトテクノロジーを実装します。
適切な同期ミューテックスメカニズムを介して複数のCPUが命令を実行する場合は、人種条件を避けてください。
LAPIC/IOAPICを使用して、マルチコアCPUのスタートアップと割り込み制御を実現します。
Sthread_Local変数を介して特定のCPUに関連する変数を保存します。
| シリアルナンバー | 名前 |
|---|---|
| 0 | フォーク |
| 1 | 出口 |
| 2 | thread_create |
| 3 | thread_exit |
| 4 | wait_process |
| 5 | wait_thread |
| 6 | get_pid |
| 7 | get_tid |
| 8 | Kill_Process |
| 9 | kill_thread |
| 10 | 寝る |
| 11 | 開ける |
| 12 | 近い |
| 13 | 読む |
| 14 | 書く |
| 15 | リンクしていません |
| 16 | readdir |
| 17 | 統計 |
| 18 | mkdir |
| 19 | rmdir |
| 20 | lseek |
| 21 | exec |
信号メカニズムを実装します。
一般的に使用されているファイルシステムのサポートを実装します。
TCP/IPプロトコルスタック。