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?




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.


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.


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


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.


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.


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 .


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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.