sagiri
1.0.0
一個簡單的操作系統, 可以在x86-64多核處理器上運行.
這是我在操作系統實驗課程中完成的作業, 由於課上只講了在32位單核CPU上的操作系統設計, 而我對在多核處理器上運行的操作系統比較感興趣, 因此選擇了在x64對稱多處理器上寫一個操作系統這一作業.
使用Ubuntu 16.04開發. 安裝依賴:
apt install make gcc gdb qemu
運行
make qemu

為應用程序提供進程/線程API, 支持進程/線程的創建, 等待, 取消, 睡眠等操作.
實現了進程創建過程中的內存copy-on-write技術.
通過恰當的同步互斥機制避免多個CPU執行指令時的競爭條件.
利用LAPIC/IOAPIC實現多核CPU的啟動和中斷控制.
通過thread_local變量存儲與特定CPU相關的變量.
| 編號 | 名稱 |
|---|---|
| 0 | fork |
| 1 | exit |
| 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 | sleep |
| 11 | open |
| 12 | close |
| 13 | read |
| 14 | write |
| 15 | unlink |
| 16 | readdir |
| 17 | stat |
| 18 | mkdir |
| 19 | rmdir |
| 20 | lseek |
| 21 | exec |
實現信號機制.
實現對一個常用文件系統的支持.
TCP/IP協議棧.