Naprawdę chciałbym zrozumieć, jak działa system operacyjny za kulisami. Myślę jednak, że jądro większości systemów operacyjnych typu open source jest zbyt skomplikowane do celów edukacyjnych, nawet dla pełnoetatowego programisty. Czy istnieją jakieś „proste” systemy operacyjne stworzone wyłącznie do celów edukacyjnych?
operating-systems
DotNetStudent
źródło
źródło
Odpowiedzi:
Minix Andrew Tanenbauma (patrz Projektowanie i wdrażanie systemów operacyjnych ) jest przeznaczony właśnie do tego celu. Inną (choć dość przestarzałą) możliwością jest przeczytanie książki Lion's Book , która obejmuje Unix V6 (pełny Unix, ale wystarczająco starą wersję, aby nadal była dość prosta do dość łatwego studiowania). Oczywistą wadą tego ostatniego jest to, że używany przez niego język C jest dość przestarzały, więc nawet dość doświadczeni programiści języka C mogą znaleźć części nieco trudne do odczytania i nie można planować nowoczesnego kompilatora trawiącego kod.
źródło
Powinieneś rozważyć nowoczesny system operacyjny typu Xv6 podobny do Uniksa, używany podczas kursu systemu operacyjnego na MIT. Wydaje się, że wiąże się z nim także pewien materiał kursu.
Działa w emulatorach Bochs i Qemu x86. Zrobiłem tę część. To była zabawa.
źródło
Minix jest doskonałym wyborem i został opisany w jednej z pozostałych odpowiedzi.
Xinu
Weź również pod uwagę XINU - XINU nie jest Uniksem.
Jest także UNIX pisane wstecz.
Jest książka Douglasa Comera, która moim zdaniem była dobrze napisana, dobrze zilustrowana i dobrze zakrojona.
Istnieje Embedded Xinu i strona internetowa o nauczaniu w Xinu.
http://xinu.mscs.mu.edu/Teaching_With_Xinu
FreeRTOS
Innym niewielkim systemem operacyjnym, który cieszy się obecnie dużą popularnością, jest FreeRTOS. Działa na prawie wszystkim. Jeśli pochodzisz z Marsa i masz procesor lub płytę ewaluacyjną, na której nie działa, możesz przeczytać około 10 stron dokumentacji, zmodyfikować około pięciu plików związanych z przerwaniami, licznikami czasu i UARTami i będziesz działał.
http://www.freertos.org/
Twierdzą, że obsługuje 31 architektur i 18 łańcuchów narzędzi. Moje doświadczenie pod koniec 2009 roku było dobre i słyszę, że od tego czasu znacznie się poprawiło.
Inne linki
Podobne pytania na ten temat mogą być przydatne dla Ciebie:
/programming/254149/how-do-you-write-a-basic-operating-system
Na Linuksa i wiele innych projektów systemów operacyjnych ma wpływ UNIX, więc ten film, w którym oryginalni projektanci (Kernigan, Richie i Thompson i inni) mają charakter informacyjny i czerpią pomysły projektowe bezpośrednio ze źródła.
http://techchannel.att.com/play-video.cfm/2012/2/22/AT&T-Archives-The-UNIX-System
Istnieje klasyczny, ale często zmieniany podręcznik systemu operacyjnego:
Silberschatz, Galvin, Gagne: Koncepcje systemu operacyjnego, wydanie siódme
Mogą być też nowsze wersje. Rzadko link do książki za pośrednictwem sprzedawcy książek, ale podgląd jest bardzo obszerny, więc aby dowiedzieć się więcej o systemach operacyjnych, sprawdź:
http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720
źródło
Na mojej uczelni nauczyliśmy się NachOS . To świetny system operacyjny typu open source do nauki. Można również znaleźć wiele ćwiczeń uniwersyteckich dotyczących NachOS do nauki.
źródło
Spójrz na KOS (Kid OD) i SOS (Simple OS). Oba są systemami operacyjnymi zaprojektowanymi do uczenia wewnętrznych elementów systemu operacyjnego. KOS jest „ojcem” SOS i został zbudowany w oparciu o doświadczenia zdobyte z KOS.
Projekty te były podstawą wielu artykułów edukacyjnych w Linux Magazine France.
Na stronie internetowej KOS można również znaleźć stronę, na której można pobrać źródła innych podobnych systemów operacyjnych.
źródło
Jeśli jesteś członkiem rodziny technologii .NET, możesz sprawdzić osobliwość . To nie była aktualizowana od 2008 roku, ale można pobrać w postaci źródłowej i ISO od CodePlex tutaj .
źródło
Ludzie mogą zrozumieć wszystkie wersje CP / M i wczesne wersje DOS. Potem wszystko wymknęło się spod kontroli i nikt już nic nie wie. Nie były one przeznaczone do nauki, jak działa system operacyjny, ale wiele osób nie dowiedzieć się, że z tych OS.
źródło
Idź przeczytać książkę o programowaniu w asemblerze. Nie musisz być w tym biegłym, ale nauczy Cię wielu wewnętrznych funkcji komputera.
źródło