Ein einfaches Betriebssystem, das auf X86-64 Multi-Core-Prozessoren ausgeführt werden kann.
Dies ist meine Hausaufgaben im Operationssystem -Experiment -Kurs. Da in der Klasse nur das Design des Betriebssystems auf einer 32-Bit-Single-Core-CPU gesprochen wird, und ich interessiere mich mehr für Betriebssysteme, die auf Multi-Core-Prozessoren ausgeführt werden, habe ich mich entschlossen, ein Betriebssystem auf einem symmetrischen X64-Multi-Prozessor zu schreiben.
Entwickelt mit Ubuntu 16.04. Installationsabhängigkeiten:
apt install make gcc gdb qemu
laufen
make qemu

Bietet eine Prozess-/Thread -API für Anwendungen, unterstützende Prozesse/Thread -Erstellung, Warten, Stornieren, Schlafen und andere Vorgänge.
Implementiert die Memory Copy-on-Write-Technologie während der Prozesserstellung.
Vermeiden Sie Rassenbedingungen, wenn mehrere CPUs Anweisungen durch geeignete synchrone Mutex -Mechanismen ausführen.
Verwenden Sie Lapic/IOAPIC, um das Startup zu realisieren und die Kontrolle von Multi-Core-CPUs zu unterbrechen.
Speichern Sie Variablen, die sich mit einer bestimmten CPU über Thread_local -Variablen beziehen.
| Seriennummer | Name |
|---|---|
| 0 | Gabel |
| 1 | Ausfahrt |
| 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 | schlafen |
| 11 | offen |
| 12 | Schließen |
| 13 | lesen |
| 14 | Schreiben |
| 15 | Verknüpfen |
| 16 | Readdir |
| 17 | Stat |
| 18 | Mkdir |
| 19 | rmdir |
| 20 | lseek |
| Einundzwanzig | Geschäftsführer |
Signalmechanismus implementieren.
Implementieren Sie Unterstützung für ein häufig verwendetes Dateisystem.
TCP/IP -Protokollstapel.