Kako napraviti operativni sistem za računar: 13 koraka (sa slikama)

Sadržaj:

Kako napraviti operativni sistem za računar: 13 koraka (sa slikama)
Kako napraviti operativni sistem za računar: 13 koraka (sa slikama)

Video: Kako napraviti operativni sistem za računar: 13 koraka (sa slikama)

Video: Kako napraviti operativni sistem za računar: 13 koraka (sa slikama)
Video: Linux Terminal za početnike 2024, April
Anonim

Ovaj wikiHow vas uči kako planirati i razvijati operativni sistem ako ne znate kodirati u C ili C ++. Operativni sistemi upravljaju računarskim hardverom i pružaju resurse potrebne za pokretanje aplikacija. Za pisanje operativnog sistema od nule potrebno je snažno poznavanje računarstva, programskog jezika poput C ili C ++, montaže i prakse upravljanja kodom.

Koraci

1. dio 2: Učenje osnova

Napravite operativni sistem računara Korak 1
Napravite operativni sistem računara Korak 1

Korak 1. Pohađajte neke osnovne kurseve računarstva

Za razliku od razvoja za web, stvaranje operativnog sistema zahtijeva dobro razumijevanje algoritama, struktura podataka, računarskog hardvera i upravljanja resursima. Ljudi dobivaju diplome iz ove oblasti, pa ne očekujte da ćete nakon čitanja mrežnog vodiča napisati cijeli operativni sistem! Harvardov kurs Uvod u računarske nauke dostupan je na mreži putem EDX -a bez ikakvih troškova.

Napravite operativni sistem računara Korak 2
Napravite operativni sistem računara Korak 2

Korak 2. Naučite programski jezik na visokom nivou poput Pythona

Nakon što steknete temeljno temeljno razumijevanje računarstva, sljedeći korak je savladavanje jezika C i/ili C ++. Poput učenja informatike, savladavanje jezika nije izborno-nećete moći kodirati operativni sistem ako ne možete pisati solidne aplikacije.

Ako ste novi u C, pogledajte kurs Dartmouth C Programming: Getting Started, koji je besplatan putem EDX -a. Kada završite taj kurs, možete pohađati sljedeći kurs u nizu: C Programiranje: jezičke osnove. Zatim prijeđite na sljedeće kurseve poput modularnog programiranja i upravljanja memorijom te pokazivača i upravljanja memorijom

Napravite operativni sistem računara Korak 4
Napravite operativni sistem računara Korak 4

Korak 3. Naučite jezik montaže

Asemblerski jezici su jezici niskog nivoa dizajnirani za komunikaciju sa različitim procesorima. Budući da je sklop različit za različite tipove procesora (npr. X86 jezik za sklapanje za Intel, AMD, VIA i druge procesore), morat ćete naučiti verziju za vrstu procesora za koji kodirate.

  • Ova knjiga otvorenog koda, ako se čita u cijelosti, može vam dati dovoljno čvrsto razumijevanje za izgradnju operativnog sistema.
  • Art of Assembly Language je visoko preporučena knjiga o montaži dostupna i na mreži i van nje.
  • Također biste trebali dosta istražiti o tipu procesora na kojem bi trebao raditi vaš operativni sistem. Priručnici za arhitekturu procesora lako se mogu pronaći pomoću Google pretraživanja ("Intel priručnici", "ARM priručnici" itd.).
Napravite operativni sistem računara Korak 5
Napravite operativni sistem računara Korak 5

Korak 4. Dovršite vodič za operativni sistem

Vodiči kroz OS će vas provesti kroz proces stvaranja osnovnog operativnog sistema. Ovo vas navikava na proces i pomaže vam da shvatite postoje li neki dijelovi koji vam nedostaju. Nakon što završite jedan ili dva vodiča, bit ćete na dobrom putu da kreirate vlastiti operativni sistem.

  • Bare Bones je vodič koji vam pomaže da napišete svoje prvo jednostavno 32-bitno jezgro. Nakon završetka vodiča, sljedeći korak je korištenje Meaty Skeletona za strukturiranje vlastitog operativnog sistema.
  • Linux from Scratch je internetska knjiga koja vas vodi kroz kreiranje vlastitog Linux operativnog sistema.
  • Operativni sistemi od 0 do 1 besplatna su knjiga o stvaranju različitih operativnih sistema od početka do kraja.
Napravite operativni sistem računara Korak 3
Napravite operativni sistem računara Korak 3

Korak 5. Odredite ciljeve svog operativnog sistema

Šta želite da vaš operativni sistem radi? Kako bi to trebalo izgledati? Trebate li zaista napisati cijeli operativni sistem ili samo želite stvoriti određeni izgled za svoju radnu površinu? Ovo su sve stvari koje treba uzeti u obzir prije početka kodiranja.

  • Razmislite o razvoju s timom drugih programera. Tim programera koji radi na projektu značajno će skratiti vrijeme razvoja.
  • Dodajte svoje ciljeve projekta, planove i pitanja u svoje javno spremište kako bi vam drugi mogli pomoći.

Dio 2 od 2: Izgradnja vašeg operativnog sistema

Zabavite se uz računar Korak 16
Zabavite se uz računar Korak 16

Korak 1. Odaberite razvojno okruženje

Ovo je platforma koju ćete koristiti za kodiranje svog novog operativnog sistema. To je stvar osobnih preferencija, ali većina ljudi koristi Windows ili UNIX. Ako koristite Windows, dobra je ideja instalirati UNIX okruženje poput Cygwin ili MinGW. Općenito ćete htjeti biti sigurni da bilo koje okruženje koje koristite uključuje sljedeće:

  • GCC (Gnu kompajler). Ako koristite Windows, možete ga instalirati u Cygwin ili MinGW.
  • Binutils je zbirka alata koji se koriste za manipulaciju objektnim datotekama. Opet, ako koristite Windows, možete ga instalirati u Cygwin.
  • Dobar uređivač teksta. Vim i emacs se obično koriste u UNIX okruženjima. Korisnici operativnog sistema Windows mogu koristiti Notepad ili provjeriti Notepad ++ radi nadogradnje s više kartica.
  • Perl i/ili Python. Za manipulaciju nizovima preporučuje se jedno ili oboje.
Napravite operativni sistem računara Korak 13
Napravite operativni sistem računara Korak 13

Korak 2. Postavite sistem kontrole verzija

Pisanje operativnog sistema znači da ćete vjerovatno stvarati stotine (ili hiljade!) Redova koda. Kada radite na revizijama, ovo može biti zbunjujuće. Neke opcije za provjeru su CVS, Mercurial i Subversion.

Napravite operativni sistem računara Korak 6
Napravite operativni sistem računara Korak 6

Korak 3. Odlučite se za bootloader

Ako ne želite stvoriti vlastiti, možete upotrijebiti postojeći, poput Grand Unified Bootloader -a (GRUB). Ako se osjećate dovoljno odvažnim da kodirate pokretački program, provjerite Rolling Your Own Bootloader na OSDev.org.

Napravite operativni sistem računara Korak 9
Napravite operativni sistem računara Korak 9

Korak 4. Odaberite dizajn jezgre

Jezgro je jezgra vašeg operativnog sistema, pružajući interfejs između korisnika i hardvera računara. Postoje monolitna jezgra i mikro jezgra. Monolitna jezgra implementiraju sve usluge u jezgru, dok mikro jezgra imaju malu jezgru u kombinaciji sa korisničkim demonima koji implementiraju usluge. Općenito, monolitna jezgra su brža, ali mikro jezgra imaju bolju izolaciju grešaka i pouzdanost.

Napravite operativni sistem računara Korak 12
Napravite operativni sistem računara Korak 12

Korak 5. Počnite od malih nogu

Počnite s malim stvarima poput prikaza teksta i prekida prije nego što pređete na stvari poput upravljanja memorijom i višezadaćnosti. Takođe možete pokušati napraviti jednostavan 16-bitni operativni sistem, umjesto da napravite veliki korak.

Za dvije sedmice nećete imati potpuni sistem. Počnite s OS -om koji se pokreće, a zatim prijeđite na cool stvari

Napravite operativni sistem računara Korak 14
Napravite operativni sistem računara Korak 14

Korak 6. Testirajte svoj novi operativni sistem sa virtuelnom mašinom

Umjesto ponovnog pokretanja računara svaki put kada unesete promjene ili morate prenijeti datoteke sa svog razvojnog računara na testnu mašinu, koristite aplikaciju virtualne mašine. VMWare je uobičajena opcija koja radi i sa Windows -om i sa Linuxom, pa tako i sa Bochsom. Provjerite ima li zastoja i drugih grešaka i popravite ih prema potrebi.

Napravite operativni sistem računara Korak 15
Napravite operativni sistem računara Korak 15

Korak 7. Oslobodite kandidata za otpuštanje

To možete učiniti postavljanjem testiranog koda u javno spremište. To će omogućiti ljudima da testiraju vaš operativni sistem i izvještavaju o svim problemima na koje naiđu.

Zabavite se uz računar Korak 28
Zabavite se uz računar Korak 28

Korak 8. Povežite se s drugim programerima operativnih sistema

Cijela zajednica programera operativnih sistema okuplja se na raznim forumima, uključujući /r /osdev na Redditu i razmjeni softverskog inženjeringa. Ako ste shvatili razvoj osnovnog operativnog sistema, pročitajte postojeće postove da vidite kakve se stvari pojavljuju tokom razvojnog procesa.

Video - Korištenjem ove usluge neke se informacije mogu podijeliti s YouTubeom

Savjeti

  • Budite sigurni da implementirate sigurnosne funkcije kao svoj najveći prioritet ako ikada želite da vaš sistem bude održiv.
  • Nakon što se sav razvoj dovrši, odlučite želite li kôd objaviti kao otvoreni ili vlasnički.
  • Da bi operativni sistem mogao rukovati s više procesora, vaš Menadžer memorije mora imati postavljene mehanizme za zaključavanje kako bi spriječio više procesora da pristupe istom resursu u isto vrijeme. "Zaključavanja" koja se koriste za to zahtijevaju prisutnost raspoređivača kako bi bili sigurni da samo jedan procesor pristupa kritičnom resursu u bilo kojem trenutku, a svi ostali čekaju. No, raspoređivač ovisi o prisutnosti Menadžera memorije. Ovo je slučaj slijepe zavisnosti. Ne postoji standardni način rješavanja ovakvih problema; kao programer, od vas se očekuje da budete dovoljno vješti da shvatite njegov vlastiti način rješavanja toga.
  • Operativni sistem takođe može biti prilagođen korisniku. Dodajte značajke prilagođene korisniku, čineći ih sastavnim dijelom vašeg dizajna.
  • Ne pridružujte se na forumima OSDev.org i počnite postavljati očigledna pitanja. To će jednostavno rezultirati "Pročitaj priručnik" odgovori. Pokušajte pročitati Wikipedia i priručnike za razne alate koje želite koristiti.
  • Ne započinjite projekt operativnog sistema za početak učenja programiranja. Ako već ne poznajete C, C ++, Pascal ili neki drugi odgovarajući jezik iznutra, uključujući manipulaciju pokazivačem, bitnu manipulaciju na niskom nivou, pomak bitova, inline asemblerski jezik itd., Niste spremni za razvoj operativnog sistema.
  • Ako učinite nešto loše, poput pisanja nasumičnih bajtova na slučajne I/O portove, srušit ćete svoj OS i (teoretski) možete ispržiti vaš hardver.

Preporučuje se: