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
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.
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.
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.
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.
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.
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".
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.
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.
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.
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.
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.
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.
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ă.
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.
15
Eliberează-o "versiune de încercare". Acest lucru va permite utilizatorilor să vă prezinte problemele sistemului de operare.
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
- Cum se actualizează un telefon HTC Android
- Cum se pornește un computer de pe un hard disk extern
- Cum se pornește un Mac de pe portul Firewire
- Cum se schimbă parola profilului dvs. de utilizator în Linux
- Cum să ștergeți definitiv Ubuntu
- Cum se conectează la Windows XP Utilizând profilul de administrator al administratorului fără parolă
- Cum să faci primii pași în programare
- Cum să verificați sistemul de operare al unui PC
- Cum se verifică spațiul de schimb în Linux
- Cum de a rezolva o eroare de sistem de fișiere Ntfs
- Cum se formatează un hard disk pe Mac pentru a funcționa cu Mac și PC
- Cum se instalează două sisteme de operare pe același computer
- Cum se instalează Ubuntu
- Cum se instalează Windows 7 pe un sistem cu Windows 8
- Cum se instalează sistemul de operare Linux pe o unitate flash și se instalează versiunile…
- Cum se instalează un sistem de operare pe un computer nou
- Cum de a îmbunătăți viteza calculatorului
- Cum de a alege între Apple Bootcamp și Parallels
- Cum să opriți Dell Inspiron 15
- Cum se utilizează un sistem de operare de pe o unitate flash USB
- Cum se utilizează o unitate flash USB ca hard disk