Kaip programuoti savo operacines sistemas (OS)

Atskleidimas: Jūsų palaikymas padeda išlaikyti svetainę! Mes uždirbame siuntimo mokestį už kai kurias paslaugas, kurias rekomenduojame šiame puslapyje.


Iš tikrųjų nėra nė vienos sudėtingesnės plėtros srities nei operacinės sistemos (OS) kūrimas. Tai yra „puikus programavimo viršūnė“.

Nedaug programuotojų kada nors bando sukurti OS, o daugelis tų, kurie bando, niekada negamina veikiančios sistemos.

Tačiau jei padarysite viską iki finišo linijos ir sukursite funkcionalią operacinę sistemą, būsite prisijungę prie elitinių aukščiausio lygio programuotojų grupės.

Kas yra operacinė sistema?

Ankstyviausi kompiuteriai neturėjo operacinių sistemų.

Kiekvienoje programoje, kuri veikė šiose ankstyvosiose sistemose, reikėjo įtraukti visą kodą, reikalingą kompiuteriui paleisti, bendrauti su prijungta aparatine įranga ir atlikti skaičiavimus, kuriuos programa turėjo iš tikrųjų atlikti. Ši situacija reiškė, kad net paprastos programos buvo sudėtingos.

Kai kompiuterinės sistemos tapo įvairesnės ir tapo sudėtingesnės bei galingesnės, vis nepraktiškiau buvo rašyti programas, kurios veikė ir kaip operacinė sistema, ir kaip naudinga programa..

Atsakydami į tai, atskiri pagrindinių kompiuterių savininkai pradėjo kurti sistemos programinę įrangą, kuri palengvino programų rašymą ir vykdymą, ir gimė operacinės sistemos..

Operacinė sistema (OS) yra programinė įranga, valdanti kompiuterio aparatinę įrangą ir sistemos išteklius bei teikianti įrankius, kuriuos programoms reikia veikti. Gimusios operacinės sistemos reiškė, kad nebereikėjo rašyti programų, kad būtų galima valdyti visą kompiuterio veikimo sritį.

Vietoj to, gali būti parašyta, kad kompiuterio programas turi valdyti operacinė sistema, o operacinė sistema nerimauja dėl kompiuterio išteklių ir prijungtos periferinės įrangos, tokios kaip spausdintuvai ir perforuotų popierinių kortelių skaitytuvai..

Trumpa operacinių sistemų istorija

Pirmąją operacinę sistemą „General Motors“ sukūrė 1956 m., Norėdama paleisti vieną IBM pagrindinį kompiuterį. Kiti IBM didžiųjų kompiuterių savininkai pasekė pavyzdžiu ir sukūrė savo operacines sistemas.

Kaip galite įsivaizduoti, ankstyviausios operacinės sistemos labai varijavo nuo vieno kompiuterio prie kito ir, nors joms buvo lengviau rašyti programas, jos neleido programų naudoti keliuose pagrindiniuose kompiuteriuose be visiško perrašymo.

Septintajame dešimtmetyje IBM buvo pirmoji kompiuterių gamintoja, kuri ėmėsi operacinių sistemų kūrimo užduoties ir pradėjo platinti operacines sistemas su savo kompiuteriais.

Tačiau per tą laiką IBM nebuvo vienintelis pardavėjas, sukūręs operacines sistemas. „Control Data Corporation“, „Computer Sciences Corporation“, „Burroughs Corporation“, GE, „Digital Equipment Corporation“ ir „Xerox“ taip pat visos išleido pagrindinio kompiuterio operacines sistemas septintajame dešimtmetyje..

Septintojo dešimtmečio pabaigoje buvo sukurta pirmoji „Unix“ operacinės sistemos versija. Parašyta C kalba ir laisvai prieinama per ankstyviausius jos metus, „Unix“ buvo lengvai perkelta į naujas sistemas ir greitai pasiekta plačiai priimtina.

Daugybė šiuolaikinių operacinių sistemų, įskaitant „Apple OS X“ ir visas „Linux“ skonio savybes, siekia „Unix“.

„Microsoft Windows“ buvo sukurta reaguojant į IBM prašymą operacinei sistemai paleisti savo asmeninių kompiuterių asortimentą.

Pirmoji „Microsoft“ sukurta OS nebuvo vadinama „Windows“, ji vadinosi „MS-DOS“ ir buvo pastatyta 1981 m. Iš Sietlo „Computer Products“ įsigijus 86 DOS operacinę sistemą ir modifikavus ją taip, kad ji atitiktų IBM reikalavimus.

Vardas „Windows“ pirmą kartą buvo panaudotas 1985 m., Kai buvo sukurta grafinė vartotojo sąsaja ir suporuota su MS-DOS.

„Apple OS X“, „Microsoft Windows“ ir įvairios „Linux“ (įskaitant „Android“) formas dabar valdo didžioji dauguma šiuolaikinės operacinės sistemos rinkos.

Operacinės sistemos dalys

Operacinės sistemos yra sudarytos iš dviejų pagrindinių dalių:

  • Branduolys;
  • Sistemos programos.

branduolys yra operacinės sistemos širdis. Tai yra pirmoji programa, įkelta paleidus kompiuterį, ji tvarko kompiuterio išteklius ir tvarko sistemos programų ir programų užklausas.

Sistemos programos paleisti ant branduolio. Jie nėra naudojami naudingam darbui atlikti, jie yra programos, būtinos norint prijungti branduolį prie vartotojo programų ir periferinių įrenginių. Įrenginių tvarkyklės, failų sistemos, tinklo programos ir sistemos priemonės, tokios kaip disko defragmentavimas, yra visos sistemos programų pavyzdžiai.

Taikymo programos nėra operacinės sistemos dalis ir yra programos, naudojamos naudingam darbui atlikti. Teksto apdorojimo programos, naršyklės ir daugialypės terpės grotuvai yra įprasti programų tipai. Taikymo programas valdo ir įgalina branduolys, o kompiuterių periferijos įrenginiams ir aparatinei įrangai pasiekti naudoja sistemos programas.

Ką tu turi žinoti

Daiktų, kuriuos reikia žinoti prieš bandant kurti operacinę sistemą, sąrašas yra labai ilgas. Trys svarbiausi dalykai, kuriuos turite išmokti prieš pradėdami kurti OS:

  • Pagrindinės informatikos žinios;
  • Kompiuterių programavimo teorija ir geriausia praktika;
  • Žemo ir aukšto lygio programavimo kalbos.

Sužinok kompiuterių mokslą

OS kūrimas nėra panašus į interneto plėtrą. Tai nėra kažkas, į kurį galite pereiti ir išmokti. Prieš pereidami prie kitų temų, turite sukurti tvirtą pagrindą informatikos moksle.

Čia yra keletas šaltinių, kuriuos galite pradėti:

Kursai: Kompiuterių mokslas 101 yra kursas, kurį pirmiausia turėtumėte pasirinkti, jei esate visiškai naujas kompiuterių programavimo ir informatikos srityje.

Jei turite mažai žinių ir patirties pagal savo diržą, praleiskite šį kursą naudodami „Udacity edX“ parinktis. Tačiau, jei esate visiškai naujas šioje srityje, šiame kurse pasirenkamas kompiuterių mokslo ir programavimo temų pristatymo metodas, kurio nereikia gauti iš anksto.

Udacity: įvadas į informatiką taiko internetinės plėtros metodą dėstydamas informatiką. Nors tai nėra tiesiogiai taikoma operacinės sistemos kūrimo perspektyvai, tai yra tvirtas kursas, pateikiantis naudingos informacijos ir pateikiantis gerą kompiuterio programavimo pagrindų apžvalgą..

edX: Įvadas į kompiuterių mokslą yra išsamiausias ir išsamiausias informatikos kursas šiame sąraše. Šį nemokamą savarankišką kursą sukūrė Harvardo universitetas ir jis atspindi kurso pateiktą turinį tuo pačiu pavadinimu, siūlomu Harvardo universiteto miestelyje..

Šiame plačiame kurse sužinosite apie algoritmus, duomenų struktūras, išteklių valdymą, programinės įrangos inžineriją ir susipažinsite su programavimo kalbomis, tokiomis kaip C, PHP ir „JavaScript“..

Išmokite kompiuterinio programavimo

Turėdamas tvirtą kompiuterio mokslo suvokimą ir turėdamas ribotą programavimo kalbų patirtį, kitas žingsnis yra išmokti spręsti didelio masto programavimo projektą..

Udacity: programinės įrangos kūrimo procesas yra puikus kursas, kurį turėtų eiti kiekvienas, jei anksčiau niekada nebuvo ėmęsis didelio masto iššūkių programavimo projekto. Šiame kurse išmoksite darbo eigos ir valdymo įrankius bei metodus, tokius kaip „Git“, ir kaip sukurti integruotą kūrimo aplinką.

Išmokite programavimo kalbas

Norėdami sukurti operacinę sistemą, turėsite mokėti bent dvi programavimo kalbas:

  • Žemo lygio surinkimo kalba;
  • Aukšto lygio programavimo kalba.

Asamblėjos kalbos yra naudojamos tiesiogiai bendrauti su centriniu procesoriumi. Kiekvienas CPU tipas kalba mašinine kalba ir yra tik viena atitinkama surinkimo kalba kiekvienam CPU tipui. Dažniausia kompiuterio architektūra yra x86, ją iš pradžių sukūrė „Intel“ ir dabar ją naudoja įvairūs kompiuterių lustų gamintojai, įskaitant AMD, VIA ir daugelį kitų. Šiame vadove mes nurodysime jus x86 surinkimo kalbos mokymosi kryptimi.

Aukšto lygio programavimo kalbos veikia kartu su keliomis kompiuterių architektūromis. C yra programavimo kalba, dažniausiai naudojama ir rekomenduojama rašyti operacines sistemas. Dėl šios priežasties mes ketiname rekomenduoti mokytis ir naudoti C kuriant OS. Tačiau taip pat galima naudoti kitas kalbas, tokias kaip C ++ ir Python.

x86 susirinkimo kalba

x86 surinkimo vadovas yra puiki vieta pradėti mokytis montažo kalbos. Šis trumpas dokumentas pateikia trumpą „x86“ surinkimo kalbos apžvalgą ir parengs sudėtingesnių šaltinių, kuriuos perkelsite prie kito, etapą.

Programavimas nuo pat pradžių autorius Jonathanas Bartlettas yra viena iš apibūdinančių asamblėjos kalbų kraštovaizdžio knygas. Šioje knygoje surinkimo kalba naudojama kaip pagrindas mokytis informatikos ir programavimo. Šį šaltinį taip pat galima rasti interneto archyve.

Asamblėjos kalbos menas autorius Randy Hyde – tai dar vienas ikoninis tekstas kalbų asamblėjos pasaulyje. Iš pradžių jis buvo parašytas specialiai „Hyde“ programavimo kursams „Cal Poly“ ir „UC Riverside“. Dešimtojo dešimtmečio viduryje jis buvo išleistas kaip HTML el. Knyga ir pripažintas kaip pagrindinį darbą šioje srityje. „Yales FLINT“ grupė taip pat priglobia tekstą kaip PDF failų seriją.

Jei norite naudoti tradicinį vadovėlį, norėdami sužinoti apie x86 surinkimo kalbą, du dažniausiai naudojami ir labai rekomenduojami tekstai yra šie:

  • Asamblėjos kalba žingsnis po žingsnio: Jeffo Duntemanno programavimas su Linux;
  • Šiuolaikinis „X86“ asamblėjos kalbų programavimas – Danielis Kusswurmas.

C

Yra daug aukšto lygio programavimo kalbų, kurių galėtumėte išmokti, ir daug įvairių šaltinių, kuriuos galėtumėte naudoti joms išmokti. Mūsų rekomendacija ir OS kūrimo bendruomenės dažniausiai kartojama rekomendacija yra išmokti C kalbą. Mes radome keletą puikių šaltinių, kurie pavers jus kompetentingu C programuotoju..

Užpildę šią informaciją, greitai peržiūrėkite C programavimo kalbą C vadovėlis. Šis šaltinis nepavers jūsų ekspertu, tačiau suteiks jums gerą pagrindinį kalbos supratimą ir parengs jus spręsti sudėtingesnes temas ir išteklius..

Sužinokite C kietą kelią yra nemokama HTML el. knyga, apimanti daugybę praktinių pratimų. Šis tekstas padės jums mokytis C programavimo kalbos. Jei įdėsite darbą, skirsite laiko ir atliksite visus pratimus, jums gerai seksis būti kompetentingu C programuotoju. užpildykite šią mokymo programą.

Jei tradicinis vadovėlis yra kažkas, ką jūs, labiau linkę, išbandyti, šie du tekstai yra vieni populiariausių mokant C programavimo kalbos..

  • C programavimo kalba Kernighan ir Ritchie;
  • C Perry ir Milleris „Absoliučio pradedančiojo vadovas“.

OS kūrimo vadovėliai

Kai gerai suprantate pagrindines kompiuterių mokslo ir programavimo sąvokas ir įvaldote surinkimo kalbą bei C, kitas žingsnis yra baigti vieną ar dvi OS kūrimo pamokas, kuriose aprašomas visas paprastos OS kūrimo procesas nuo nulio. Mes radome tris puikius išteklius, kurie tą ir daro.

„Linux from Scratch“ padės jums sukurti visą „Linux“ operacinę sistemą. Visiškai šiame vadove nebus sukurta visavertė operacinė sistema, tačiau tai suteiks jums tvirtą kodo bazę, kuria galėsite sukurti visą operacinę sistemą. Spręskite pažangias mokymo programas, tokias kaip „Be Linux“ iš „Scratch“, Automatizuotą „Linux“ iš „Scratch“, „Cross Linux“ iš „Scratch“ arba Sukietintą „Linux“ iš „Scratch“, kad jūsų pagrindinė OS taptų naudinga programine įranga..

Maža knyga apie OS plėtrą autoriai Erikas Helinas ir Adomas Renbergai buvo sukurti kaip dalis pažengusio informatikos kurso, kurio autoriai baigė studentus, kaip Stokholmo Karališkojo technologijos instituto dalis. Šis kursas apima visą x86 operacinės sistemos kūrimo procesą, pradedant programavimo aplinkos sukūrimu, baigiant daugelio užduočių programavimu ir įtraukiant tokias temas kaip sistemos atminties tvarkymas ir failų sistemų kūrimas..

Operacinės sistemos kūrimo serija iš „Broken Thorn Entertainment“ yra 25 vadovėlių, kurie supažindina jus su OS kūrimo procesu nuo pat pradžių, serija. Pradedantiesiems saugokitės: ši serija reiškia, kad jūs jau žinote savo kelią aplink IDE ir esate kompetentingas C ir montažo kalbų programuotojas.

Yra daug tekstų, kuriuos galėtumėte naudoti norėdami sužinoti apie OS kūrimo discipliną. Trys iš dažniausiai rekomenduojamų yra:

  • „Tanenbaum“ ir „Bos“ modernios operacinės sistemos;
  • Maurice’o Bacho sukurtas UNIX operacinės sistemos dizainas;
  • Silberschatz, Galvin ir Gagne operacinės sistemos koncepcijos.

OS kūrimo bendruomenės

Kai pradedate tapti OS kūrėju, yra keletas vietų, kur galite rasti kitų OS kūrėjų, iš kurių galima pasimokyti ir atsiminti:

  • OSDev.org yra wiki, kuriame yra daug informacijos apie OS plėtrą, taip pat forumas, kuriame galite susitikti ir gauti atsiliepimų iš kitų bendraminčių programuotojų..
  • „Reddit“ OS kūrimo kanalas yra puiki bendruomenė, kurioje galite sužinoti apie OS plėtrą ir mėgautis švelnumo akimirka, kai OS kūrimo užduotis tampa šiek tiek sunki.
  • Kompiuterių mokslas, programuotojai ir „StackOverflow“ iš „StackExchange“ yra vietos, kuriose galite užduoti techninius klausimus kitiems programuotojams, susidūrę su problema, kurios, atrodo, negalite išsiaiškinti patys..

Santrauka

Mokymasis OS kūrimo yra viena iš sudėtingiausių programavimo užduočių, kurias galite atlikti. Tačiau jei pasistengsite sukurti veikiančią OS, jūs žymėsite kaip kompetentingas programuotojas ir tas, kuris giliai supranta, kaip procesoriai, aparatinė ir kompiuterinės programos veikia kartu, kad sukurtų tai, kas likusiam pasauliui atrodo savaime suprantama, kaip veikiantis kompiuteris.

Tolesni žingsniai – Ieškai žiniatinklio prieglobos? Žr. Žiniatinklio prieglobos vadovą & mūsų rekomenduojami šeimininkai.

Taip pat skaitykite kitus mūsų programavimo kalbų vadovus.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map