Czy są jakieś systemy operacyjne, które są wystarczająco proste do nauki? [Zamknięte]

19

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?

DotNetStudent
źródło
Znalazłem to podczas moich poszukiwań, nigdy nie próbowałem. pdos.csail.mit.edu/6.828/2012/xv6.html najwyraźniej został napisany, aby zastąpić Unix v6 jako narzędzie edukacyjne.
ctrl-alt-delor

Odpowiedzi:

28

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.

Jerry Coffin
źródło
7
MINIX 3 nie jest narzędziem edukacyjnym, a mikrojądro MINIX 3 zdecydowanie nie jest łatwe do zrozumienia. Według Tanenbauma tylko MINIX 1 był narzędziem nauczania.
sakisk
10

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.

Bruce Ediger
źródło
7

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

DeveloperDon
źródło
3

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.

Nachos to oprogramowanie instruktażowe do nauczania licencjackich i potencjalnie podyplomowych kursów systemów operacyjnych. Dystrybucja Nachos obejmuje:

  • Artykuł przeglądowy
  • Prosty kod bazowy dla działającego systemu operacyjnego
  • Symulator ogólnego przypisania próbki komputera / stacji roboczej
  • Elementarz C ++ (Nachos jest napisany w łatwym do opanowania podzbiorze C ++, a elementarz pomaga nauczyć programistów C naszego podzbioru)

Zadania ilustrują i badają wszystkie obszary współczesnych systemów operacyjnych, w tym wątki i współbieżność, multiprogramowanie, wywołania systemowe, pamięć wirtualną, TLB załadowane programowo, systemy plików, protokoły sieciowe, zdalne wywoływanie procedur i systemy rozproszone.

użytkownik
źródło
0

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.

Barjak
źródło
0

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 .

Jesse C. Slicer
źródło
Konkretny powód oddania głosu, odbierający ? Linki są nadal aktywne i jest to prosty system operacyjny napisany w języku wysokiego poziomu.
Jesse C. Slicer,
0

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.

Joe Dos
źródło
1
Zastanów się nad dodaniem odniesień lub dodatkowych niepotwierdzonych dowodów w celu wykonania kopii zapasowej swojej odpowiedzi. Lub dodaj dodatkowe szczegóły, aby wskazać, dlaczego wersja X jest łatwiejsza do zrozumienia niż wersja Y.
-1

Idź przeczytać książkę o programowaniu w asemblerze. Nie musisz być w tym biegłym, ale nauczy Cię wielu wewnętrznych funkcji komputera.

Pieter B.
źródło