gtemata.com

Cum se creează un sistem de operare

Sistemele de operare permit utilizatorilor să interacționeze cu hardware-ul calculatorului și sunt compuse din sute de mii de linii de cod. Ele sunt de obicei scrise cu următoarele limbi de programare: C, C ++ și Assembly.

paşi

Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 1
1
Învățați să programați înainte de a începe. Limba de asamblare este fundamentală și este recomandat să cunoaștem un alt limbaj de nivel inferior, cum ar fi C.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 2
    2
    Decideți la ce suport doriți să încărcați sistemul de operare. Poate fi o dischetă, un CD, un DVD, o memorie flash, un hard disk sau un alt PC.
  • Imagine cu denumirea Creați un sistem de operare pentru computer Pasul 3
    3
    Decideți ce va trebui să faceți sistemul dvs. de operare. Veți avea nevoie să cunoașteți obiectivul dvs. de la început, indiferent dacă acesta este un sistem de operare complet cu GUI (interfață grafică cu utilizatorul) sau cu un sistem mai esențial.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 4
    4
    Alegeți platformele care vă vor putea rula sistemul de operare. Dacă nu sunteți sigur, alegeți platformele X86 (32bit), deoarece majoritatea calculatoarelor utilizează procesoare X86.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 5
    5
    Decideți dacă doriți să vă creați propriul sistem de la zero sau să vă bazați pe un kernel existent. Linux de la Scratch de exemplu, este un proiect pentru cei care doresc să-și construiască propria versiune de Linux. Citiți sfaturile pentru a găsi linkul către proiect.
  • Imagine cu denumirea Creați un sistem de operare pentru computer Pasul 6
    6
    Decideți dacă veți utiliza Bootloader-ul sau unul existent ca Bootloader Grand Unified (GRUB). Chiar dacă scrierea propriului bootloader vă va oferi o mulțime de informații despre BIOS și hardware-ul, acesta vă poate încetini în programarea kernel-ului. Citiți secțiunea " Sfaturi".
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 7
    7
    Decideți ce limbă de programare să utilizați. Deși este posibil să se scrie un sistem de operare în BASIC sau Pascal, este recomandat să se folosească C sau Assembly. Adunarea este necesară, deoarece unele părți vitale ale sistemului de operare o necesită. În schimb, C ++ conține cuvinte cheie care necesită un sistem de operare complet pentru a rula.
  • Pentru a compila un sistem de operare din codul C sau C ++, va trebui să utilizați un compilator. Prin urmare, trebuie să citiți manualul de utilizare al compilatorului dvs. Căutați-o în caseta de program sau pe site-ul producătorului. Veți avea nevoie să cunoașteți multe aspecte complicate ale compilatorului dvs. și, pentru a dezvolta C ++, va trebui să știți cum funcționează compilatorul dumneavoastră și ABI-ul său. Va trebui să înțelegeți diferitele formate executabile (ELF, PE, COFF, simplu binar etc.) și să știți că formatul de proprietate Windows, PE (.exe), este protejat de dreptul de autor.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 8
    8
    Decideți ce API (interfață de programare a aplicațiilor sau interfață de programare a aplicațiilor) să utilizați. Un bun API este POSIX, care este bine documentat. Toate sistemele Unix suportă cel puțin parțial POSIX, deci va fi foarte ușor să importați programe Unix în sistemul dvs. de operare.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 9
    9


    Decideți-vă designul. Există kerneluri monolitice și nuclee micro. Miezurile monolitice implementează toate serviciile din kernel, în timp ce micro-urile au un mic în combinație cu daemon (procesele de fundal) ale utilizatorului care implementează serviciile. În general, kernelurile monolitice sunt mai rapide, dar microkernelul este mai fiabil și erorile sunt mai bine izolate.
  • Imagine cu denumirea Creați un sistem de operare pentru computer Pasul 10
    10
    Evaluați dacă doriți să dezvoltați sistemul de operare care funcționează într-un grup. În acest fel procesul va fi mai rapid și veți reduce erorile.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 11
    11
    Nu ștergeți complet hard disk-ul. Amintiți-vă, formatați-vă discul, ștergeți toate datele și este un proces ireversibil! Utilizați GRUB sau un alt manager de pornire pentru a porni computerul cu sistemul dual de operare, cel puțin până când calculatorul este complet funcțional.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 12
    12
    Începeți din partea de jos. Începeți cu lucruri mici, cum ar fi afișarea de text și pauze înainte de a se ocupa de aspecte precum gestionarea memoriei și multitasking.
  • Imagine cu denumirea Creați un sistem de operare pentru computer Pasul 13
    13
    Faceți o copie de siguranță a ultimului cod sursă de lucru. Dacă faceți o greșeală teribilă sau dacă calculatorul pe care ați dezvoltat sistemul nu reușește, este o idee bună să aveți întotdeauna o copie de rezervă.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 14
    14
    Testați noul sistem de operare cu o mașină virtuală. În loc să reporniți continuu computerul de fiecare dată când doriți să faceți o schimbare sau să transferați fișiere de pe computerul de dezvoltare pe computerul dvs. de testare, puteți utiliza o mașină virtuală pentru a rula sistemul de operare direct pe computer. Câteva exemple de mașini virtuale: VMWare (care oferă un server gratuit), boch-urile alternative open-source, Microsoft Virtual PC (incompatibil cu Linux) și xVM VirtualBox. Citiți i "Sfaturi" pentru mai multe informații.
  • Imagine cu denumirea Creați un sistem de operare pentru computer Pasul 15
    15
    Eliberează-o "versiune de încercare". Acest lucru va permite utilizatorilor să vă prezinte problemele sistemului de operare.
  • Imaginea cu titlul Creați un sistem de operare pentru computer Pasul 16
    16
    Rețineți că un sistem de operare ar trebui să fie ușor de utilizat pentru orice utilizator.
  • Sfaturi

    • Nu începe un sistem de operare pentru a învăța cum să programați. Dacă nu cunoașteți deja C, C ++, Pascal sau un alt limbaj de programare perfect, inclusiv manipularea pointerului, manipularea bitului la nivel scăzut, deplasarea biților, asamblarea etc., nu sunteți pregătit să creați un sistem de operare.
    • Dacă doriți să simplificați lucrurile, luați în considerare utilizarea unor modele Linux cum ar fi Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS mklivecd sau SUSE Studio și SUSE KIWI. Sistemul de operare va fi totuși deținut de compania care a oferit serviciul (chiar dacă aveți dreptul să îl distribuiți, să îl modificați și să-l executați sub GPL).
    • După ce ați finalizat dezvoltarea, decideți dacă sistemul dvs. va fi open source sau deținut de dvs.
    • Utilizați site-uri precum OSDev și OSDever pentru a vă ajuta să vă dezvoltați. Rețineți că, în cea mai mare parte, comunitatea OSDev.org va prefera să vă limitați la folosirea wiki-ului dvs. și să nu puneți întrebări pe forumuri. Dacă decideți să vă înscrieți în forum, există cerințe preliminare: va trebui să cunoașteți C sau C ++ și Adunarea x86. De asemenea, va trebui să înțelegeți conceptele generale și complexe ale programării, cum ar fi Listele asociate, Codurile etc. Comunitatea OSDev, în regulile sale, declară în mod explicit că nu va fi un baby-sitter pentru programatori neexperimentați. Dacă încercați să vă creați propriul sistem de operare, ar trebui să fiți un adevărat expert în programare. De asemenea, va trebui să citiți manualul procesorului pentru a afla mai multe despre arhitectura procesorului care va găzdui sistemul dvs., cum ar fi x86 (Intel), ARM, MIPS, PPC etc. Puteți să le găsiți cu ușurință pe Google. Nu vă înregistrați la forumurile OSDev.org să pună întrebări triviale. Veți primi răspunsuri rele și nimeni nu vă va ajuta.
    • Poate fi o idee bună să creați o nouă partiție pentru dezvolta sistemul de operare.
    • Încercați să identificați problemele și erorile.
    • Pentru mai multe informații, vizitați aceste surse.
    • Manuale: Linux de la zero
    • bootloader: GRUB
    • Mașini virtuale: Bochs, VM Ware, XM Virtual Box.
    • Manuale procesoare: Manuale de la Intel
    • Site-uri privind dezvoltarea sistemelor de operare: OSDev, OSDever

    Avertismente

    • Nu veți putea crea un sistem complet și funcțional în două săptămâni. Încercați să creați un sistem care începe mai întâi, apoi trece la aspecte mai avansate.
    • Dacă faci ceva stupid, cum ar fi scrierea de octeți aleatorii pe porturi aleatorii I O, vei prăbuși sistemul tău de operare și ai putea teoretic distruge hardware-ul. Pentru o demonstrație, rulați "cat / dev / port" pe Linux ca root. Computerul tău se va prăbuși.
    • Asigurați-vă că implementați măsurile de securitate dacă doriți să utilizați sistemul de operare.
    • Rularea unui sistem de operare greșit scris poate corupe întregul hard disk. Fiți atenți.
    • Nu credeți că programarea unui sistem de operare este ușoară. Există deseori interdependențe complexe. De exemplu, pentru a crea un sistem de operare care poate gestiona mai multe procesoare, va trebui să gestionați programul de gestionare a memoriei bloc resursele folosite de un procesor pentru ca aceștia să nu poată accesa simultan doi procesatori. Pentru a crea aceste blocuri veți avea nevoie de un programator pentru a gestiona activitatea procesorului. Planificatorul, la rândul său, depinde de prezența unui program de gestionare a memoriei. Acesta este un caz de dependență. Nu există o procedură standard pentru rezolvarea unor astfel de probleme - fiecare programator al sistemului de operare trebuie să fie în măsură să găsească o soluție personală la acest tip de problemă.

    Lucruri de care ai nevoie

    • Un calculator bun.
    • Un CPU pentru arhitectura pe care o vei dezvolta.
    • RAM suficient pentru a rula o mașină virtuală.
    • Un sistem de operare "gazdă" pentru a dezvolta primii pași ai noului sistem de operare.
    • Un editor de coduri cu culori pentru diferite sintaxe.
    • Un compilator
    • O unitate de dischetă (opțională)
    Distribuiți pe rețelele sociale:

    înrudit