Dezvoltați propriul sistem de operare
Un sistem de operare permite utilizatorului să interacționeze cu hardware-ul calculatorului. Se compune din câteva sute de mii de linii de cod și este în general dezvoltată folosind limbi de programare cum ar fi C, C ++ sau asamblor.
metodă

1
Înainte de a începe, trebuie să vă familiarizați cu programarea. Cunoștințele din Asamblare sunt indispensabile și, în plus, este recomandat un alt limbaj de programare orientat spre mașină, cum ar fi C.

2
Decideți pe ce mediu trebuie să încărcați sistemul de operare. Puteți face acest lucru cu o unitate CD / DVD / Flash, unitatea hard disk sau alt computer.

3
Decideți ce sarcini ar trebui să faceți sistemul dvs. de operare. Înainte de a începe ar trebui să stabilească un plan dur, dacă doriți să dezvolte un sistem de operare complet funcțional cu propria interfață grafică de utilizator (GUI) sau mai degrabă ceva Simpleres.

4
Determinați ce arhitectură de procesor suportă sistemul dvs. de operare. AI-32 și x86_64 sunt cele mai frecvent utilizate arhitecturi pe mașinile normale și probabil că sunt cel mai bun pariu.

5
Decideți dacă doriți să porniți sistemul de operare de la zero sau dacă doriți să construiți pe un kernel existent. Linux de la zero este, de exemplu, un proiect interesant pentru cei care doresc să-și dezvolte propria distribuție Linux.

6
Determinați dacă doriți să utilizați propriul bootloader sau un software dezvoltat anterior, cum ar fi GRUB (Grand Unified Bootloader). Deoarece programarea propriului încărcător de încărcare necesită o mulțime de cunoștințe hardware și BIOS, poate întârzia programul de dezvoltare al kernelului în sine.

7
Alegeți un limbaj de programare. Deși este destul de posibil să se dezvolte un sistem de operare în limbi precum Pascal sau BASIC, veți fi mai bine consiliați să utilizați C sau Assembler. Asamblatorul este absolut necesar, pe măsură ce anumite componente esențiale ale sistemului de operare se bazează pe acesta. În schimb, C ++ utilizează câteva cuvinte cheie care necesită rularea unui sistem de operare existent.

8
Blocați-vă pe un API (interfață de programare a aplicațiilor). O alegere bună este POSIX, deoarece este bine documentată. Toate sistemele Unix suportă cel puțin parțial POSIX, care ar putea porni cu ușurință programele Unix în sistemul dvs. de operare.

9
Planificați structura sistemului de operare. Există kernel monolit și microkernel. În timp ce cu kerneluri monolitice toate serviciile sunt integrate în kernel, microkernelul are doar funcții de bază și toate celelalte servicii sunt integrate ca procese în modul utilizator. În general, kernelurile monolitice sunt mai rapide, dar microkernele au o localizare mai bună a erorilor și o fiabilitate mai bună.

10
Luați în considerare dezvoltarea într-o echipă. Acest lucru necesită mai puțin timp pentru a rezolva mai multe probleme, permițând astfel crearea unui sistem de operare mai bun în mai puțin timp.

11
Nu ștergeți complet hard diskul. Rețineți că formatarea unității va șterge toate datele iremediabil. Utilizați GRUB sau alt încărcător de boot pentru a vă rula sistemul în modul de încărcare duală cu un alt sistem de operare până când propriul sistem de operare este complet dezvoltat.

12
Începeți puțin. Începeți cu lucruri simple cum ar fi afișarea unui text sau întreruperea înainte de a vă aventura în lucruri precum gestionarea memoriei și multitasking.

13
Creați o copie de rezervă a ultimului cod sursă de lucru. Aceasta este o măsură de securitate în cazul în care ceva merge prost greșit cu versiunea curentă a sistemului de operare sau de dezvoltare. În cazul în care computerul se blochează, având oa doua copie pentru depanare este o idee bună.

14
Luați în considerare efectuarea testelor sistemului dvs. de operare în interiorul unei mașini virtuale. În loc de a avea pentru a reporni computerul după fiecare modificare sau după fiecare transfer de date de pe computer de dezvoltare la computer de testare, puteți configura o mașină virtuală care afișează sistemul de operare în cadrul sistemului de operare curent. Aceste aplicații VM includ VMWare (ofera un produs server erhältiches gratuit), aplicația open source Bochs, Microsoft Virtual PC (nu Linux-compatibil) și xVM VirtualBox.

15
Publicați un candidat final de lansare. Acest lucru permite utilizatorilor să vă informeze despre posibilele probleme legate de sistemul dvs. de operare.

16
Acordați atenție utilizabilității sistemului dvs. și încercați să faceți aceste funcții parte integrantă a sistemului dvs. de operare.
Sfaturi
- Asigurați-vă că implementarea funcțiilor de securitate este prioritatea de vârf, dacă sistemul de operare ar trebui să fie vreodată practic.
- După terminarea dezvoltării, ar trebui să vă gândiți dacă protejați codul sursă sau îl accesați în mod deschis.
- Nu încercați chiar la început cariera de programare pentru a aborda dezvoltarea unui sistem de operare. Dacă nu deja stăpânesc C, C ++, Pascal sau o programare la fel de adecvat în timpul somnului, inclusiv manipulare pointer, mașină de biți manipulare, bit-shifting, codul de asamblare în linie, astfel încât să nu sunteți pregătit pentru dezvoltarea unui sistem de operare.
- Utilizați site-uri web ca OSDev și OSDever pentru a vă ajuta să vă dezvoltați propriul sistem de operare. Rețineți, totuși, că comunitatea OSDev.org ar prefera să utilizați wiki-ul pentru ajutor și să nu vă înscrieți în forum. Dacă decideți să vrea să fie o parte din forum, se aplică următoarele cerințe: Ai nevoie de o cunoaștere cuprinzătoare a C sau C ++ și limbaj de programare de asamblare x86. De asemenea, aveți nevoie de o înțelegere generală a unor concepte complexe de programare, cum ar fi Linked Liste, cozi, etc. Comunitatea OSDev pune principiile sale în mod clar că comunitatea nu se rotește cu privire la luarea de noi programatori la îndemână. Dacă îndrăznești să dezvolți un sistem de operare, te așteaptă automat să fii "Dumnezeu de programare". Mai mult, trebuie să aveți manualul pentru arhitectura procesorului selectat citit (Intel x86, ARM, MIPS, PPC, etc.) Aceste manuale pot fi utilizând o căutare Google găsi cu ușurință ( „Intel Manuale“, „ARM Manuale“, etc.) găsiți . Nu lovi cu piciorul forumul OSDEV și începeți să adresați întrebări evidente. Acest lucru are ca rezultat răspunsuri precum "Citiți al naibii Instrucțiuni ". Pentru majoritatea întrebărilor, puteți citi Wikipedia sau manualele legate de instrumentele folosite.
- Dacă doriți o modalitate ușoară de a vă rugăm să ia în considerare utilizarea de auditor de distribuții Linux, cum ar fi Fedora, personalizate Suplu X Puppy remasterizată, PCLinuxOS mklivecd, SUSE Studio și KIWI SUSE. Dar, atunci sistemul de operare este parte a companiei pe care acest serviciu a oferit mai întâi (deși îl distribuiți sub licența GNU General Public, modifica și poate executa).
- Verificați eventualele surse de eroare și alte erori. Acestea, de obicei, nu pot fi complet eliminate într-un proiect atât de complex.
- Poate fi o idee bună să creați o nouă partiție completă pentru dezvoltarea sistemului dvs. de operare.
avertismente
- Nu veți putea crea un sistem complet în două săptămâni. Începeți cu un sistem de operare care poate porni singur, apoi începeți cu caracteristicile reci.
- Scrierea neglijentă a sistemului de operare de pe hard disk îl poate face necitită. Fii atent.
- Nu vă așteptați ca un program de operare decent să fie ușor de programat. Există o multitudine de interacțiuni complexe. În cazul în care sistemul de operare este de a fi, de exemplu, să fie capabil de a suporta mai multe nuclee, managerul de memorie trebuie să aibă un mecanism de „blocare“, au mai multe nuclee, care împiedică să acceseze în același timp, pe aceeași resursă. Încuietorile de acces necesită prezența unui program de control care să asigure că numai un nucleu de procesor, în același timp, are acces la o resursă importantă, în timp ce toate celelalte miezuri trebuie să aștepte. Acest program de control necesită din nou un manager de memorie. Acest caz ilustrează dependențele blocate. Nu există o soluție clară la aceste probleme, fiecare programator al unui sistem de operare este de așteptat să fie suficient de calificat pentru a-și dezvolta propria soluție.
- Dacă efectuați o acțiune fără grijă, cum ar fi trimiterea de octeți aleatorii la porturile aleatoare de I / O, sistemul dvs. de operare se va prăbuși și ar putea (în teorie) să vă deterioreze hardware-ul.
Resurse suplimentare
- instrucţiuni:Linux De la zero
- bootloader:GRUB
- Aplicații pentru crearea de mașini virtuale: Bochs, Mărfuri VM, XM Virtual Box
- Manuale Procesor: Manuale Intel
- Site-uri utile pentru crearea unui sistem de operare: OSDev,OSDever
Ce ai nevoie
- Un calculator
- Un procesor cu arhitectura pentru care vă dezvoltați sistemul de operare
- Ample RAM pentru mașina dvs. virtuală
- Un sistem de operare "gazdă" (pentru dezvoltarea codului sursă în asamblare și în alte limbi de programare și în stadiile incipiente pentru compilarea și construirea pachetelor de programe până când sistemul dvs. de operare se poate găzdui).
- Un editor de coduri cu marcatori de sintaxă de culoare (dacă nu aveți un mediu de dezvoltare integrat)
- Un compilator
- O unitate CD / DVD
Distribuiți pe rețelele sociale:
înrudit
Curățați un computer
Instalați un sistem de operare pe un computer nou
Conectați suportul de încărcare
Porniți sistemul de operare cu un stick USB
Ștergeți hard disk-ul unui computer
Verificați specificațiile calculatorului
Selectați un sistem de operare
Formatați o unitate hard disk externă
Formatați un hard disk pe un Mac pentru Mac și Windows
Formatați un computer Dell
Opriți Dell Inspiron 15
Instalați un nou sistem de operare pe computer
În așteptarea unui computer
Cumpărați un computer nou
Reinstalați WindowsXP
Utilizați Microsoft Viratual PC
Instalați Ubuntu 8.10
Eliminați Ubuntu
Instalați în Windows Virtualbox cu Ubuntu Linux
Utilizați stația de lucru VMware
Instalați Windows 7 pe Windows 8