Operētājsistēma ļauj lietotājam mijiedarboties ar datora aparatūru. Sistēma sastāv no simtiem tūkstošu koda rindu. Parasti operētājsistēma tiek veidota, izmantojot C#, C, C ++ un montāžas programmēšanas valodas. Operētājsistēma ļauj pārlūkot datoru, vienlaikus saglabājot un izpildot komandas. Nedomājiet, ka ir viegli izveidot operētājsistēmu. Lai to izveidotu, ir vajadzīgas daudz zināšanu.
Solis
1. solis. Vispirms uzziniet par programmēšanu
Asamblejas valoda ir ļoti svarīga; ir ļoti ieteicams iemācīties citu papildu augsta līmeņa valodu, piemēram, C valodu.
2. solis. Izlemiet, kādu datu nesēju vēlaties izmantot, lai ielādētu OS
Šis datu nesējs var būt CD diskdzinis, DVD diskdzinis, zibatmiņas disks, cietais disks, disketes vai cits dators.
3. solis. Definējiet iebildumu pamatideju
Piemēram, operētājsistēmā Windows galvenā ideja ir viegli lietojams GUI un daudz drošības.
4. solis. Nosakiet, kādu procesora platformu jūsu operētājsistēma atbalstīs
IA-32, ARM un x86_64 ir visizplatītākās personālo datoru platformas. Tātad, tie visi ir jūsu labākā izvēle.
5. solis. Izlemiet, vai vēlaties visu darīt pats, vai arī jau ir pieejams kodols, uz kura vēlaties balstīties
Piemēram, Linux no nulles ir projekts cilvēkiem, kuri vēlas izveidot savu Linux izplatīšanu.
6. solis. Izlemiet, vai izmantosit savu sāknēšanas ielādētāju vai iepriekš izveidotu, piemēram, Grand Unified Bootloader (GRUB)
Lai sāknēšanas ielādētāju kodētu pats, būs nepieciešamas plašas zināšanas par aparatūru un BIOS. Tā rezultātā šis solis var kavēt faktisko kodola programmēšanas grafiku.
7. solis. Izlemiet, kādu programmēšanas valodu izmantot
Ir labi, ja operētājsistēma ir tādā valodā kā Pascal vai BASIC, taču jums vajadzētu izmantot C vai Assembly. Montāža ir ļoti nepieciešama, jo dažas svarīgas operētājsistēmas daļas to pieprasa. No otras puses, C ++ valodā ir atslēgvārdi, kuru palaišanai nepieciešams cits pilns SO.
Lai apkopotu operētājsistēmu no C vai C ++ koda, protams, jūs izmantosit vienu vai otru kompilatoru. Tāpēc ieteicams iepazīties ar jūsu izvēlētā C/C ++ kompilatora lietošanas pamācību/rokasgrāmatu/dokumentāciju neatkarīgi no tā, vai tā ir iekļauta programmatūrā vai ir pieejama izplatītāja vietnē. Jums jāzina daudz sarežģītu lietu par kompilatoru, un C ++ attīstībai jums jāzina par kompilatora manipulācijas shēmu un tās ABI. Paredzams, ka jūs sapratīsit dažādus izpildāmos formātus (ELF, PE, COFF, pamata bināro failu utt.) Un sapratīsit, ka ekskluzīvais Windows formāts PE (.exe) ir aizsargāts ar autortiesībām
8. solis. Definējiet lietojumprogrammu saskarni (API)
Viena laba API, no kuras izvēlēties, ir POSIX, jo tā ir labi dokumentēta. Visām Unix sistēmām ir vismaz daļējs POSIX atbalsts. Tātad Unix programmu savienošanai ar OS vajadzētu būt vienkāršai.
9. solis. Izlemiet par savu dizainu
Ir tāda lieta kā monolīts kodols un mikro kodols. Monolītie kodoli realizē visus pakalpojumus kodolā, savukārt mikrokodoliem ir mazi kodoli, kas ir komplektā ar lietotāju dēmonu izvietošanas pakalpojumiem. Kopumā monolītie kodoli ir ātrāki, bet mikrokodoliem ir labāka kļūdu izolācija un uzticamība.
10. solis. Apsveriet iespēju attīstīties un strādāt komandā
Tādā veidā ir nepieciešams mazāk laika, lai atrisinātu vairāk problēmu, kas, iespējams, paātrinās labākas OS izveidi.
11. solis. Neslaukiet cieto disku pilnībā
Atcerieties, ka diska dzēšana neatgriezeniski izdzēsīs visus tajā esošos datus! Izmantojiet GRUB vai citu sāknēšanas pārvaldnieku, lai dublētu sistēmas sāknēšanu ar citu OS, līdz jūsu operētājsistēma ir pilnībā funkcionāla.
12. solis. Sāciet ar mazu
Sāciet ar mazām lietām, piemēram, teksta parādīšanu un pauzi, pirms pāriet pie tādām lietām kā atmiņas pārvaldība un salikts darbs. Pārliecinieties arī, ka izveidojat 32 bitu un 64 bitu versijas.
13. solis. Saglabājiet pēdējā darba avota koda dublējumu
Šis solis ir noderīgs kā drošības līdzeklis, ja kaut kas noiet greizi ar pašreizējo SO versiju vai izstrādi. Ja jūsu dators avarē un netiek startēts, ieteicams izmantot otru kopiju, lai varētu to novērst.
14. solis. Apsveriet iespēju pārbaudīt savu jauno operētājsistēmu, izmantojot virtuālo mašīnu
Tā vietā, lai restartētu datoru katru reizi, kad veicat izmaiņas, vai pēc failu nosūtīšanas no attīstības datora uz testa iekārtu, varat izmantot virtuālās mašīnas lietojumprogrammu, lai palaistu OS, kamēr darbojas jūsu pašreizējā operētājsistēma. Pašreizējās VM lietojumprogrammas ietver: VMWare (kurā arī ir pieejams bezmaksas servera produkts), atvērtā pirmkoda alternatīvas, Bochs, Microsoft Virtual PC (nav saderīgs ar Linux) un Oracle VirtualBox.
Solis 15. Palaidiet "izlaišanas kandidātu" vai beta versiju
Šis solis ļaus lietotājam paziņot jums par iespējamām jūsu operētājsistēmas problēmām.
16. darbība. Operētājsistēmai jābūt arī lietotājam draudzīgai
Noteikti pievienojiet lietotājam draudzīgas funkcijas, padariet tās par neatņemamu dizaina sastāvdaļu.
Padomi
- Pārbaudiet, vai nav strupceļu un citas kļūdas. Kļūdas, strupceļi un citas problēmas ietekmēs jūsu operētājsistēmas būvēšanas projektu.
- Ja vēlaties, lai sistēma darbotos pareizi, pārliecinieties, ka esat ieviesis drošības līdzekļus kā galveno prioritāti.
- Izmantojiet tādas vietnes kā OSDev un OSDever, lai palīdzētu jums izveidot savu operētājsistēmu. Lūdzu, ņemiet vērā, ka vairumam mērķu OSDev.org kopiena būs vairāk nekā laimīga, ja izmantosit viņu wiki un nepievienosities forumam. Ja jūs nolemjat pievienoties forumam, ir priekšnoteikums: jums patiešām jāzina par C vai C ++ un x86 montāžas valodu. Jums vajadzētu saprast arī vispārīgus un sarežģītus programmēšanas jēdzienus, piemēram, saistītos sarakstus, rindas utt. OSDev kopiena savos noteikumos skaidri norāda, ka tās kopiena nav radīta, lai audzinātu jaunus programmētājus.
- Nepievienojieties ar OSDev.org forumu un pēc tam uzdodiet acīmredzamo jautājumu. Jums tiks lūgts tikai izlasīt ceļvedi. Izlasiet Wikipedia un norādījumus par jebkuru aprīkojumu, kuru vēlaties izmantot.
- Ja jūs mēģināt izstrādāt operētājsistēmu, jūs noteikti uzskatāt par programmēšanas "dievu".
- Jums vajadzētu arī izlasīt procesora rokasgrāmatu par jūsu izvēlēto procesora arhitektūru; vai x86 (Intel), ARM, MIPS, PPC utt. Procesora arhitektūras rokasgrāmatas ir viegli atrast, izmantojot Google meklēšanu ("Intel rokasgrāmata", "ARM rokasgrāmata" utt.).
- Kad visi izstrādes darbi ir pabeigti, izlemiet, vai vēlaties atbrīvot kodu kā atvērto kodu vai ar autortiesībām.
- Nesāc operētājsistēmas projekts, lai sāktu apgūt programmēšanu. Ja jūs nezināt iekšpusi un ārpusi par C, C ++, Pascal vai kādu citu piemērotu valodu, ieskaitot manipulācijas ar rādītāju, zema līmeņa bitu manipulāciju, bitu maiņu, iekļautās montāžas valodas utt., Jūs neesat gatavs operētājsistēmai attīstību.
- Pilnīgi jauna nodalījuma izveide SO paplašināšanai varētu būt laba iespēja.
- Ja vēlaties vienkāršu veidu, apsveriet tādas Linux izplatīšanas iespējas kā Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD vai SUSE Studio un SUSE KIWI. Tomēr jūsu izveidotā operētājsistēma pieder uzņēmumam, kurš pakalpojumu uzsāka pirmais (lai gan jums ir tiesības to brīvi izplatīt, modificēt un palaist, kā vēlaties saskaņā ar GPL).
Brīdinājums
- Jūs nesaņemsiet pilnu operētājsistēmu divu nedēļu laikā. Sāciet ar bootable SO, pēc tam pārejiet pie vēsākas lietas.
- Neuzmanīga operētājsistēmas ierakstīšana cietajā diskā var to pilnībā sabojāt. Esi uzmanīgs.
- Ja jūs darāt kaut ko tādu, kas nav ieteicams, piemēram, rakstāt nejaušus baitus uz nejaušiem I/O portiem, jūs sabojāt savu OS un (teorētiski) var sadedzināt jūsu aparatūru.
- Negaidiet, ka operētājsistēmu ir viegli izveidot. Ir daudz sarežģītu savstarpējo atkarību. Piemēram, lai izveidotu operētājsistēmu, kas spēj apstrādāt vairākus procesorus, jūsu atmiņas pārvaldniekam ir jābūt "bloķēšanas" mehānismam, kas neļauj vairākiem procesoriem vienlaikus piekļūt vienam un tam pašam resursam. Šim nolūkam izmantotā "slēdzene" prasītu, lai plānotājs nodrošinātu, ka tikai viens procesors jebkurā laikā piekļūst kritiskajiem resursiem un visiem pārējiem ir jāgaida. Faktiski plānotājs ir atkarīgs no atmiņas pārvaldnieka klātbūtnes. Šis ir piemērs strupceļa atkarībai. Nav standarta veida, kā atrisināt šāda veida problēmas; no katra operētājsistēmas programmētāja ir jābūt pietiekami prasmīgam, lai zinātu savu veidu, kā ar to tikt galā.
Papildu resursi
- Vadlīnijas: Linux no nulles
- Bootloader: GRUB
- Virtuālās mašīnas lietojumprogrammas: Bochs, VM Ware, XM Virtual Box.
- Procesora rokasgrāmata: Intel rokasgrāmata
- SO izstrādes vietnes: OSDev, OSDever