Cum se dezvoltă un sistem de operare pentru un computer

Sistemele de operare compuse din sute de mii de rânduri de cod permit utilizatorilor să interacționeze cu echipamentul informatic. Ele sunt de obicei scrise în limbi de programare C, C ++ și Assembler.

Pași

  1. Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 1
unu. Pentru a începe, programarea de învățare. Cunoașterea asamblorului trebuie, de asemenea, să fie sfătuită să aibă și alte limbi de programare suplimentare de un nivel inferior, de exemplu, cu.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 2
    2. Decideți ce dispozitiv doriți să descărcați sistemul de operare. Poate fi un CD, DVD, dispozitiv de memorie flash, hard disk sau alt computer.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 3
    3. Decideți pe care doriți să vă vedeți sistemul de operare. În cazul în care aceasta este versiunea completă a sistemului de operare cu o interfață grafică (GUI) sau, poate ceva mai minimalist? Trebuie să știți în ce direcție să vă deplasați, înainte de începerea procesului.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 4
    4. Specificați ce platformă de procesor va accepta sistemul dvs. de operare. AI-32 și X86_64 sunt cele două versiuni comune pentru computerele personale, astfel încât acestea pot fi considerate cea mai bună alegere.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 5
    cinci. Decideți dacă preferați să faceți totul de la zero sau există kerneluri, pe baza căreia doriți să suge sistemul. Linux de la zero - un proiect pentru cei care doresc, de exemplu, creează propria lor distribuție Linux.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 6
    6. Selectați, veți folosi propriul dvs. bootloader sau un sistem unificat de încărcare unifiant pre-creat Bootloader (GRUB). Deoarece codificarea propriului program de descărcare necesită o cunoaștere extinsă în domeniul securității computerului și BIOS, acesta poate muta programul de programare al nucleului curent.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 7
    7. Ia o decizie cu privire la limba de programare care va fi utilizată. Desigur, este foarte posibil să se dezvolte sistemul de operare într-o astfel de limbă ca Pascal sau de bază, dar este de preferat să scrieți sau să se asigure. Asamblorul este absolut necesar, t. La. Unele părți importante ale sistemului de operare necesită cunoașterea acestei limbi particulare. C ++, pe de altă parte, conține cuvinte cheie necesare pentru a începe versiunea completă a sistemului de operare.
  • Pentru a asambla sistemul de operare utilizând codurile C sau C ++, veți folosi cu siguranță un compilator, apoi altul. Aceasta înseamnă că trebuie să citiți ghidul / instrucțiunile / documentația pentru compilatorul C / C ++ selectat, care este furnizat împreună cu software-ul sau disponibil pe site-ul distribuitorului. Va trebui să aflați multe lucruri complexe despre compilator, în plus, pentru a îmbunătăți C ++ pentru a învăța schema și ABI. Vă așteptați să înțelegeți diferitele formate ale sarcinilor executive (Elf, PE, COFF, Binary și T Or.D.) Și observați că propriul dvs. format Windows, PE (.Exe) Dreptul de autor este protejat.
  • Imaginea intitulată Faceți un sistem de operare al calculatorului Pasul 8
    opt. Selectați interfața de programare a aplicațiilor (API). Una dintre selecția unui API bun este POSIX, deoarece este bine documentată. Toate sistemele Unix au cel puțin suport parțial pentru POSIX, deci ar fi trivial să atașați programele Unix în sistemul dvs. de operare.
  • Imaginea intitulată Faceți un sistem de operare al calculatorului Pasul 9
    nouă. Decide cu designul. Există kerneluri monolitice și microkernel. Kernel-urile monolitice efectuează toate serviciile din kernel, în timp ce microkernelul are un mic kernel în combinație cu realizarea utilizatorului a serviciilor. În general, miezurile monolitice sunt mai rapide, dar microkernelul are o mai bună izolare și protecție împotriva posibilelor defecțiuni.
  • Imaginea intitulată Faceți un sistem de operare al calculatorului Pasul 10
    10. Luați în considerare problema dezvoltării și lucrului într-o echipă. Astfel, veți avea nevoie de mai puțin timp pentru a rezolva problemele mari, ceea ce va crea un sistem operațional mai bun pentru un timp mai scurt.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 11
    unsprezece. Nu ștergeți complet hard diskul. Amintiți-vă, Formatarea discului Curățați ireversibil toate datele dvs! Utilizați un manager grub sau alt manager pentru duplicat Descărcarea computerului pe celălalt sistem de operare, până când versiunea dvs. este complet gata funcțională.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 12
    12. Începeți cu mici. Notă în primul rând pe lucrurile mici, cum ar fi afișarea textului și întrerupeți înainte de a trece la elemente complexe, de exemplu, la gestionarea memoriei și multitasking.
  • Imaginea intitulată Faceți un sistem de operare al calculatorului Pasul 13
    13. Salvați copia de rezervă a ultimei versiuni de lucru. Acest lucru oferă anumite calm în cazul în care ceva nu este absolut greșit în versiunea curentă a operațiunilor dvs. sau a adăugării ulterioare. În cazul defecțiunilor în calculatorul dvs. și imposibilitatea de a descărca, așa cum înțelegeți dvs., oportunitatea excelentă va fi prezența unei a doua copii de lucru, astfel încât să puteți elimina defecțiunile existente.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 14
    paisprezece. Testați noul sistem de operare pe o mașină virtuală. În loc să reporniți un computer de fiecare dată după ce ați efectuat modificări sau transferați fișiere dintr-o mașină de testare la o mașină de testare, puteți utiliza aplicația pentru a porni sistemul de operare pe mașina virtuală, în timp ce sistemul dvs. actual continuă să funcționeze. Aplicațiile VM includ VMware (care are, de asemenea, un server de acces gratuit), codul alternativ open source, Bochs, Microsoft Virtual PC (nu este compatibil cu Linux), precum și XVM Virtualbox.
  • Imagine intitulată Faceți un sistem de operare al calculatorului Pasul 15
    cincisprezece. Eliberați versiunea de eliberare. Acest lucru va permite utilizatorilor să vă spună despre posibilele deficiențe din sistemul dvs. de operare.
  • Imaginea intitulată Faceți un sistem de operare al calculatorului Pasul 16
    şaisprezece. Sistemul de operare trebuie, de asemenea, să fie convenabil pentru utilizator, deci nu uitați să adăugați funcții utile care vor deveni o parte integrantă a designului dvs.
  • sfaturi

    • Când dezvoltarea este finalizată, gândiți-vă dacă doriți să trimiteți codul în acces liber sau să stabiliți drepturi private.
    • Asigurați-vă că faceți funcțiile de securitate prin prioritatea dvs. de bază, dacă doriți ca sistemul dvs. să fie viabil.
    • Nu începeți proiectul de dezvoltare al sistemului de operare pentru a instrui programarea. Dacă nu știți C, C ++, Pascal sau alte limbi și proprietăți adecvate, inclusiv tipurile de pointer, operații cu biți de nivel scăzut, comutarea biților, asamblarea încorporată și t.D., - Deci, nu este încă gata să creeze sistemul de operare.
    • Răsfoiți portalurile precum OSDEV și OSDever pentru a vă ajuta să vă îmbunătățiți propriul sistem de operare. Acordați o atenție deosebită faptului că cele mai multe întrebări OSDEV comunitare.Org preferă să afecteze conținutul site-ului și să nu se alăture forumului. Dacă încă decideți să vă alăturați rândurilor membrilor forumului, trebuie să existe anumite premise pentru acest lucru. Trebuie să știți cu atenție C sau C ++ și asamblatorul de limbă x86. De asemenea, trebuie să înțelegeți concepte comune și cuprinzătoare în programare, cum ar fi listele legate, cozile și t.D. Comunitatea OSDEV în regulile sale indică în mod direct că nimeni nu va îngriji noi programatori. Dacă încercați să dezvoltați sistemul de operare, este de la sine înțeles că tu "Dumnezeu" în domeniul programării. De asemenea, trebuie să citiți un manual pentru a lucra cu un procesor în ceea ce privește arhitectura sa aleasă de dvs. - de exemplu, X86 (Intel), ARM, MIPS, PPC și T și T.D. Un astfel de manual de structură a procesorului poate fi găsit cu ușurință prin căutarea în Google ("Intel Manuals", "Manuale ARM" și T.D.). Nu vă înregistrați pe forumul OSDEV.Org pentru a pune întrebări evidente. Acesta va duce pur și simplu la răspunsuri, cum ar fi "Citiți manualul F *** ING". Pentru a începe, ar trebui să încercați să citiți Wikipedia, beneficii pentru diverse instrumente care vor fi utilizate.
    • Verificați potențialele DOT DOUS și alte erori. Deficiențele, blocajele și alte probleme pot afecta proiectul sistemului dvs. de operare.
    • Dacă doriți o modalitate mai simplă, trimiteți distribuții Linux - cum ar fi Fedora Revisor, personalizat Nimble X, Puppy Remaster, PCLINUXOS MKLIVECD sau SUSE STUDIO și SUS KIWI SUSE. Cu toate acestea, sistemul de operare a creat companiei care este primul care este introdus acest serviciu (deși aveți drepturi la distribuția sa liberă, schimbarea și lansarea, după cum doriți, sub GPL).
    • O soluție bună va fi crearea unei partiții complet nou pentru dezvoltarea sistemului de operare.

    Avertizări

    • Rescrierea sistemului fără card pe un hard disk îl poate deteriora complet. atenție
    • Nu veți obține un sistem complet gata în două săptămâni. Începeți din sistemul de operare descărcat, apoi mergeți la lucruri mai interesante.
    • Dacă faceți ceva rapid, cum ar fi, de exemplu, scrieți octeți aleatorii în porturile arbitrare I / O, apoi distrugeți sistemul de operare și pot (în teorie) să vă ardă echipamentul.
    • Nu vă așteptați ca acesta să fie ușor de construit un sistem de operare de înaltă calitate. Există multe interdependențe complexe. De exemplu, pentru ca sistemul de operare să poată lucra cu mai multe procesoare, managerul dvs. de memorie trebuie să aibă mecanisme de blocare pentru a preveni procesoarele inutile în aceeași resursă în același timp. Folosit "blocuri" folosesc prezența unui programator pentru a vă asigura că numai un procesor se adresează unei resurse critice în orice moment și toate celelalte sunt în modul de așteptare. Cu toate acestea, programul de lucru depinde de prezența managerului de memorie. Acesta este un exemplu de în funcție de interconectare. Nu există o modalitate standard de rezolvare a unor astfel de probleme - fiecare creator al sistemului de operare este de așteptat să fie destul de calificat pentru a-și găsi propria soluție.

    De ce ai nevoie

    • Calculator
    • Procesorul pe care îl veți construi
    • Suficientă RAM (RAM) pentru o mașină virtuală
    • Principalul sistem de operare (folosit pentru a dezvolta codul sursă al asamblorului (și altele.), precum și adunări și ambalaje în stadiile incipiente ale lucrărilor - în cele din urmă, propriul dvs. sistem de operare va deveni primar)
    • Sintaxă Editor de cod color (aplicat în absența mediului de dezvoltare integrat)
    • Compilator
    • Unitate CD / DVD
    Publicații similare