Python - operačný systém od nuly - CiupaCabra
Bol som požiadaný, aby som si vybral projekt pre môj kurz operačného systému na mojej univerzite. Bol som bombardovaný myšlienkou vytvoriť operačný systém od nuly v Pythone.

- Mam len 3 mesiace.
- Chcem to urobiť v Pythone.
- Môžem povedať 20 - 30 hodín každý týždeň.
Chcem vedieť, ako je to možné? Napríklad ako ďaleko môžem zájsť pri stavbe toho istého. Bol by som veľmi rád, keby sa mi podarilo spustiť základnú verziu (niečo s niekoľkými veľmi základnými spustenými aplikáciami.) Je to možné s danými obmedzeniami?
Existuje kniha, ktorá by mi mohla pomôcť ako sprievodca? (nemusí to byť pre Python, potrebujem iba sprievodcu, ktorý mi povie, ako by som mal postupovať pri výrobe operačného systému)
Ak tento nápad nie je uskutočniteľný, niekto mi môže povedať, ako veľmi potrebujem svoj nápad zredukovať?
Akákoľvek pomoc je veľmi vítaná!
11 odpovedí
Toto si poriadne upravte. Odporúčam vám pozrieť sa na veľmi malý kúsok operačného systému, ktorý by ste chceli urobiť, možno na paralelné spracovanie. Neexistuje uskutočniteľný spôsob, ako napísať celý operačný systém za menej ako 500 hodín, iba za 5 000 hodín. Skutočná otázka je, či je to pre bakalársky stupeň alebo postgraduálny kurz? Odpoveď na túto otázku bude veľmi odrážať to, čo je potrebné na jej zvládnutie.
pridanie
Vezmite si knihu o operačnom systéme, ktorá vás zaujíma, a sústreďte sa na ňu sústredene po dobu 3 mesiacov a možno vyrobíte len niečo, čo je dobré. Operačné systémy sa môžu zdať, že navonok toho veľa nerobia, ale myslite na to tak, ako to má Windows
Má váš učiteľ v projekte „nízku“ zložku? Napríklad všetko, čo sa zaoberá hardvérom alebo architektúrou inštrukcií. Ak je to tak, váš učiteľ vám nedovolí uskutočniť projekt v Pythone. Projekt musí byť napísaný v jazyku C a pripojený. A vždy budete pracovať na úprave jadra Linuxu.
Súčasný operačný systém sa však už neobmedzuje iba na nízky aspekt. Virtualizácia, databáza, paralelizácia sú postavené na vrchole operačného systému. Ak je váš učiteľ „stará škola“, potom tieto nové predmety nemôže považovať za súčasť operačného systému. Možno budete musieť priniesť svojmu učiteľovi nejaké testovacie nápady a hľadať vysvetlenie.
Či už ide o nízku úroveň, ako niektorí navrhli, úplne závisí od vzdelávacích cieľov učiteľov.
Dobrý projekt by zahŕňal jednu alebo viac z týchto možností:
- Vstup výstup
- Skladovanie
- Rozhodovanie o tom, čo sa má ukladať do medzipamäte/predpovedať, čo sa má vopred načítať
- Spúšťanie/správa/protokolovanie úloh (procesov, vlákien alebo funkcií Pythonu), lokálne alebo vzdialene
- Správa zdrojov
- Vyžadujte od každého procesu, aby poskytoval odhady, koľko špičkovej pamäte sa použije, a pravidelne hlásiť percentuálny podiel „pokroku“ v priebehu ich vykonávania, ktorý sa potom dá spoločne použiť na odhadovanie využitia prostriedkov.
- Komunikácia
- Súbežnosť
Projekt, ktorý nebude priamo komunikovať s hardvérom, ale bude dobrým projektom, bude:
- Ak váš projekt poskytuje abstrakciu operačného systému aplikáciám, ktoré budú bežať „vo vnútri“ vášho projektu
- Inými slovami, „aplikácie“ sa spoliehajú výlučne na váš „projekt operačného systému“, pokiaľ ide o ich vstupy/výstupy, ukladanie, správu úloh, zdroje, komunikačné potreby
- Váš projekt umožňuje efektívne (efektívne, merateľné) využitie skutočného operačného systému (Windows, Linux atď.)
Potom to bude dobrý dizajn operačných systémov bez ohľadu na použitý jazyk.
Ako príklad dobrého projektu by som navrhol implementovať váš vlastný memcached systém, map-zmenšiť alebo jednoduchý systém riadenia verzií.