Python - Operációs rendszer a semmiből - CiupaCabra
Felkértek, válasszon egy projektet az egyetememen működő operációs rendszer tanfolyamomra. Engem azzal a gondolattal bombáztak, hogy a semmiből készítsek egy operációs rendszert a Pythonban.

- Még csak 3 hónapos vagyok.
- Pythonban szeretném megtenni.
- Hetente 20-30 órát mondhatok.
Szeretném tudni, mennyire megvalósítható az ötlet? Például meddig tudok elmenni ugyanez építésében. Nagyon örülnék, ha egy alapverziót futtathatnék (valami maroknyi nagyon alapvető futó alkalmazással.) A megadott korlátozásokkal lehetséges?
Van olyan könyv, amely útmutatóként segíthet nekem? (nem feltétlenül Pythonnak kell lennie, csak útmutatóra van szükségem, hogy elmondjam, hogyan kell eljárnom az operációs rendszer elkészítésével)
Ha az ötlet nem kivitelezhető, valaki meg tudja mondani, mennyit kell csökkentenem az ötletemet?
Minden segítséget nagyra értékelünk!
11 válasz
Skálázza ezt sokat. Azt javaslom, hogy nézzen meg egy nagyon kis darab operációs rendszert, amelyet szeretne, esetleg egy párhuzamos feldolgozást. Nincs megvalósítható módszer arra, hogy egy teljes operációs rendszert kevesebb, mint 500 óra alatt, mindössze 5000 óra alatt tudjunk írni. Az igazi kérdés az, hogy ez egy alapképzés vagy egy posztgraduális képzés? Az erre adott válasz nagyban tükrözi, mire van szükség a továbbjutáshoz.
hozzátéve
Fogjon egy könyvet az operációs rendszer témájáról, amely érdekli Önt, és 3 hónapig koncentráljon erre figyelmesen, és lehet, hogy csak valami jót állít elő. Úgy tűnhet, hogy az operációs rendszerek kívülről nem sokat csinálnak, de gondolja át ezt a Windows-nak
Van-e tanárának "alacsony" összetevője a projektben? Például bármi, ami hardverrel vagy utasítás architektúrával foglalkozik. Ha igen, akkor a tanárod nem engedélyezi, hogy Pythonban hajtsd végre a projektet. A projektet C-ben kell megírni és csatolni. És mindig dolgozni fog a Linux kernel módosításán.
A jelenlegi operációs rendszer azonban már nem korlátozódik az alacsony szempontokra. A virtualizáció, az adatbázis, a párhuzamosítás az operációs rendszer tetejére épül. Ha a tanárod "régi iskola", akkor az új tantárgyakat nem tekintheti az operációs rendszer részének. Szóval lehet, hogy néhány tesztötletet el kell hoznia a tanárának, és tisztázást kell kérnie.
Hogy ez alacsony szintű-e, ahogyan egyesek javasolják, teljes mértékben a tanárok oktatási céljaitól függ.
Egy jó projekt az alábbiak közül egyet vagy többet tartalmazna:
- Bemenet kimenet
- Tárolás
- Döntés a gyorsítótár tartalmáról/az előre betöltendő elemek előrejelzése
- Feladatok (folyamatok, szálak vagy Python-funkciók) indítása/kezelése/naplózása, lokálisan vagy távolról
- Az erőforrások kezelése
- Igényeljen minden folyamatot arra, hogy becsléseket adjon arról, hogy mekkora csúcs memória lesz felhasználva, és rendszeresen jelentenie kell egy "előrehaladás" százalékot a végrehajtásuk során, amelyet ezután együtt lehet felhasználni az erőforrás-felhasználás becsléséhez
- Kommunikáció
- Egyidejűség
Az a projekt, amely nem lép közvetlenül kapcsolatba a hardverrel, de jó projekt lenne:
- Ha a projekt az operációs rendszer absztrakcióját biztosítja a projekten belül "futó alkalmazások számára
- Más szavakkal, az "alkalmazások" kizárólag az "operációs rendszer projektjére" támaszkodnak az I/O, tárolás, feladatkezelés, erőforrás és kommunikációs igényeik szempontjából
- A projekt jól (hatékonyan, mérhető módon) használja a valós operációs rendszert (Windows, Linux stb.)
Akkor jó lesz az operációs rendszerek megtervezése, a használt nyelvtől függetlenül.
Javasolnám a saját memcached rendszerének, a map-csökkentésnek vagy egy egyszerű verziókezelő rendszer bevezetését a jó projekt példaként.