Sólin Sólin Rís 05:40 • sest 21:16 í Reykjavík
Tunglið Tunglið Rís 15:13 • Sest 05:59 í Reykjavík
Flóð Flóð Árdegis: 03:57 • Síðdegis: 16:31 í Reykjavík
Fjaran Fjara Árdegis: 10:23 • Síðdegis: 22:34 í Reykjavík

Hvernig eru stýrikerfi búin til og hvernig virka þau?

Hjálmtýr Hafsteinsson

Stýrikerfi eru yfirleitt gríðarlega flókin og margþættur hugbúnaður. Þess vegna er ekki auðvelt að svara því í stuttu máli hvernig þau eru búin til. Stýrikerfi koma alls staðar við sögu í notkun á tölvunni. Til að útskýra hversu margt stýrikerfið þarf að sjá um þá skulum við taka sem dæmi þegar notandi keyrir upp vafra, til dæmis Firefox.

Til að geta keyrt Firefox þarf fyrst að finna keyrsluskrána. Hún er geymd í skráarkerfi (e. file system), sem er hluti af stýrikerfinu. Skráarkerfi eru oftast byggð upp sem tré, þar sem skráarsöfn (eða möppur) mynda greinarnar og skrárnar mynda laufin. Skrárnar sjálfar geta svo verið geymdar í mörgum hlutum á harða disknum en skráarkerfið sér um það allt fyrir okkur og þurfum við ekki að vita neitt af því. Það er mun hraðvirkara að lesa skrá sem er samfelld á disknum. En þegar harður diskur er aftvístraður (e. defragmented) þá er athugað hvort skrár séu geymdar á mörgum ólíkum stöðum á harða disknum og ef svo er þá eru hlutarnir færðir saman.

Oftast þegar við ræsum forrit eins og Firefox þá gerum við það með því að smella á myndtákn á skjáborðinu eða veljum það úr ræsivalmynd. Þá er unnið með grafískt notendaviðmót (e. Graphical User Interface, GUI) stýrikerfisins. Stýrikerfi geta haft mismunandi notendaviðmót, til dæmis eru til nokkur slík fyrir Linux-stýrikerfið (algengustu eru KDE og Gnome).


Nýjasta útgáfa Windows-stýrikerfisins, Windows 7.

Við ræsingu notendaforrits hleður stýrikerfið því fyrst inn í minni tölvunnar og síðan þarf það að láta örgjörvann keyra skipanirnar sem mynda forritið. Á hverjum tíma eru mörg forrit í keyrslu á tölvunni, þar með talið stýrikerfið sjálft! Hægt er að sjá hvaða forrit eru í keyrslu í MS Windows-stýrikerfinu með því að keyra upp verkstjórann (e. Task Manager). Hægt er að opna hann með því að hægrismella á valröndina neðst á skjánum og velja Task Manager. Í Linux heitir sambærilegt forrit System Monitor eða System Guard.

Hvert forrit, eða verk (e. process), fær aðgang að örgjörvanum í tiltekinn tíma, algeng tímalengd er 10 millisekúndur, það er einn hundraðasti úr sekúndu. Það er verkraðari (e. scheduler) sem ræður því hvaða verk fær næst aðgang að örgjörvanum. Verkraðarinn er hluti af kjarnanum (e. kernel) sem er innsti og mikilvægasti hluti stýrikerfisins. Kjarninn sér um úthlutun minnis, aðgang að örgjörvanum, samskipti milli verka og ýmislegt fleira.

Snúum okkur aftur að Firefox-vafranum sem er nú að hefja keyrslu. Það er búið að hlaða keyrsluskránni inn í minni og forritið (verkið) hefur fengið aðgang að örgjörvanum. Þá þarf það ýmsa þjónustu frá stýrikerfinu. Forritið þarf að tengjast við Internetið og það þarf einnig að fá úthlutað meira minni til að geta geymt vefsíður og myndir sem það mun hlaða niður.

Það eru því ekki síður notendaforritin en mannlegir notendur tölvunnar sem nota stýrikerfið. Þetta útskýrir hvers vegna ekki er hægt að taka forrit sem er skrifað fyrir MS Windows og keyra það á Linux. Flest ólík stýrikerfi nota mismunandi aðferðir við að láta forrit biðja um minni, ná í gögn á harða diskinn og til að sýna niðurstöður á skjánum. Þannig þarf oftast að endurskrifa stóra hluta af forritinu til að það virki á öðru stýrikerfi. Þetta er væntanlega ástæðan fyrir því að Microsoft hefur verið frekar tregt til að umskrifa Office-forritin fyrir önnur stýrikerfi, til dæmis Mac OS.


Hér má sjá Mac OS X-stýrikerfið frá Apple.

Kröfurnar sem gerðar eru til stýrikerfa í dag eru mjög miklar. Þegar við stingum USB-minnislykli í tölvuna okkar ætlumst við til þess að stýrikerfið skynji það og leyfi okkur að vinna með minnislykilinn eins og hann væri harður diskur, þó að hann sé byggður á allt annarri tækni og geymi gögnin á allt annan hátt en harðir diskar. Sömuleiðis ætlumst við til þess að stýrikerfið geti á auðveldan hátt tengst við Internetið, hvort sem við erum tengd með netkapli við staðarnet eða við þráðlaust net heima hjá okkur eða í skólanum. Við viljum einnig geta haft mörg forrit opin samtímis og jafnvel verið að vinna í þeim sitt á hvað. Allt þetta krefst flókins hugbúnaðar sem bregst skynsamlega við ef eitthvað er ekki eins og það á að vera.

Það er því augljóslega ekki hrist fram úr erminni að skrifa stýrikerfi frá grunni. Einn þeirra sem hefur þó gert það er finnski tölvunarfræðingurinn Linus Torvalds, sem skrifaði fyrstu útgáfuna af Linux-stýrikerfinu árið 1991. Sú útgáfa var þó mjög frumstæð og hafði fáa af þeim eiginleikum sem við ætlumst nú til að stýrikerfi hafi. Linux hefur síðan smátt og smátt verið endurbætt. Þúsundir sjálfboðliða hafa tekið þátt í þessum endurbótum og er jafnvel talið að Linus Torvalds eigi aðeins um 2% af kóðanum sem myndar kjarna Linux-stýrikerfisins.

Sama má segja um stýrikerfin frá Microsoft. Þeirra fyrsta stýrikerfi, MS-DOS, var upphaflega skrifað af einum manni, Tim Paterson, en Microsoft keypti það af honum og endurbætti það smátt og smátt. En Microsoft hefur endurskrifað allan stýrikerfiskóðann oftar en einu sinni. Það er talið að yfir 1000 forritarar hjá Microsoft hafi tekið þátt í að skrifa nýjasta stýrikerfið þeirra, Windows 7.

Frekara lesefni á Vísindavefnum:

Myndir:

Höfundur

Hjálmtýr Hafsteinsson

dósent í tölvunarfræði við HÍ

Útgáfudagur

15.9.2010

Spyrjandi

Jóhann Guðnason, Berglind Helgadóttir, Elín Lóa Baldursdóttir, Margrét Sveinsdóttir, Hákon Magnús Hjaltalín

Tilvísun

Hjálmtýr Hafsteinsson. „Hvernig eru stýrikerfi búin til og hvernig virka þau?“ Vísindavefurinn, 15. september 2010. Sótt 19. apríl 2024. http://visindavefur.is/svar.php?id=10218.

Hjálmtýr Hafsteinsson. (2010, 15. september). Hvernig eru stýrikerfi búin til og hvernig virka þau? Vísindavefurinn. Sótt af http://visindavefur.is/svar.php?id=10218

Hjálmtýr Hafsteinsson. „Hvernig eru stýrikerfi búin til og hvernig virka þau?“ Vísindavefurinn. 15. sep. 2010. Vefsíða. 19. apr. 2024. <http://visindavefur.is/svar.php?id=10218>.

Chicago | APA | MLA

Spyrja

Sendu inn spurningu LeiðbeiningarTil baka

Hér getur þú sent okkur nýjar spurningar um vísindaleg efni.

Hafðu spurninguna stutta og hnitmiðaða og sendu aðeins eina í einu. Einlægar og vandaðar spurningar um mikilvæg efni eru líklegastar til að kalla fram vönduð og greið svör. Ekki er víst að tími vinnist til að svara öllum spurningum.

Persónulegar upplýsingar um spyrjendur eru eingöngu notaðar í starfsemi vefsins, til dæmis til að svör verði við hæfi spyrjenda. Spurningum er ekki sinnt ef spyrjandi villir á sér heimildir eða segir ekki nægileg deili á sér.

Spurningum sem eru ekki á verksviði vefsins er eytt.

Að öðru leyti er hægt að spyrja Vísindavefinn um allt milli himins og jarðar!

=

Senda grein til vinar

=

Hvernig eru stýrikerfi búin til og hvernig virka þau?
Stýrikerfi eru yfirleitt gríðarlega flókin og margþættur hugbúnaður. Þess vegna er ekki auðvelt að svara því í stuttu máli hvernig þau eru búin til. Stýrikerfi koma alls staðar við sögu í notkun á tölvunni. Til að útskýra hversu margt stýrikerfið þarf að sjá um þá skulum við taka sem dæmi þegar notandi keyrir upp vafra, til dæmis Firefox.

Til að geta keyrt Firefox þarf fyrst að finna keyrsluskrána. Hún er geymd í skráarkerfi (e. file system), sem er hluti af stýrikerfinu. Skráarkerfi eru oftast byggð upp sem tré, þar sem skráarsöfn (eða möppur) mynda greinarnar og skrárnar mynda laufin. Skrárnar sjálfar geta svo verið geymdar í mörgum hlutum á harða disknum en skráarkerfið sér um það allt fyrir okkur og þurfum við ekki að vita neitt af því. Það er mun hraðvirkara að lesa skrá sem er samfelld á disknum. En þegar harður diskur er aftvístraður (e. defragmented) þá er athugað hvort skrár séu geymdar á mörgum ólíkum stöðum á harða disknum og ef svo er þá eru hlutarnir færðir saman.

Oftast þegar við ræsum forrit eins og Firefox þá gerum við það með því að smella á myndtákn á skjáborðinu eða veljum það úr ræsivalmynd. Þá er unnið með grafískt notendaviðmót (e. Graphical User Interface, GUI) stýrikerfisins. Stýrikerfi geta haft mismunandi notendaviðmót, til dæmis eru til nokkur slík fyrir Linux-stýrikerfið (algengustu eru KDE og Gnome).


Nýjasta útgáfa Windows-stýrikerfisins, Windows 7.

Við ræsingu notendaforrits hleður stýrikerfið því fyrst inn í minni tölvunnar og síðan þarf það að láta örgjörvann keyra skipanirnar sem mynda forritið. Á hverjum tíma eru mörg forrit í keyrslu á tölvunni, þar með talið stýrikerfið sjálft! Hægt er að sjá hvaða forrit eru í keyrslu í MS Windows-stýrikerfinu með því að keyra upp verkstjórann (e. Task Manager). Hægt er að opna hann með því að hægrismella á valröndina neðst á skjánum og velja Task Manager. Í Linux heitir sambærilegt forrit System Monitor eða System Guard.

Hvert forrit, eða verk (e. process), fær aðgang að örgjörvanum í tiltekinn tíma, algeng tímalengd er 10 millisekúndur, það er einn hundraðasti úr sekúndu. Það er verkraðari (e. scheduler) sem ræður því hvaða verk fær næst aðgang að örgjörvanum. Verkraðarinn er hluti af kjarnanum (e. kernel) sem er innsti og mikilvægasti hluti stýrikerfisins. Kjarninn sér um úthlutun minnis, aðgang að örgjörvanum, samskipti milli verka og ýmislegt fleira.

Snúum okkur aftur að Firefox-vafranum sem er nú að hefja keyrslu. Það er búið að hlaða keyrsluskránni inn í minni og forritið (verkið) hefur fengið aðgang að örgjörvanum. Þá þarf það ýmsa þjónustu frá stýrikerfinu. Forritið þarf að tengjast við Internetið og það þarf einnig að fá úthlutað meira minni til að geta geymt vefsíður og myndir sem það mun hlaða niður.

Það eru því ekki síður notendaforritin en mannlegir notendur tölvunnar sem nota stýrikerfið. Þetta útskýrir hvers vegna ekki er hægt að taka forrit sem er skrifað fyrir MS Windows og keyra það á Linux. Flest ólík stýrikerfi nota mismunandi aðferðir við að láta forrit biðja um minni, ná í gögn á harða diskinn og til að sýna niðurstöður á skjánum. Þannig þarf oftast að endurskrifa stóra hluta af forritinu til að það virki á öðru stýrikerfi. Þetta er væntanlega ástæðan fyrir því að Microsoft hefur verið frekar tregt til að umskrifa Office-forritin fyrir önnur stýrikerfi, til dæmis Mac OS.


Hér má sjá Mac OS X-stýrikerfið frá Apple.

Kröfurnar sem gerðar eru til stýrikerfa í dag eru mjög miklar. Þegar við stingum USB-minnislykli í tölvuna okkar ætlumst við til þess að stýrikerfið skynji það og leyfi okkur að vinna með minnislykilinn eins og hann væri harður diskur, þó að hann sé byggður á allt annarri tækni og geymi gögnin á allt annan hátt en harðir diskar. Sömuleiðis ætlumst við til þess að stýrikerfið geti á auðveldan hátt tengst við Internetið, hvort sem við erum tengd með netkapli við staðarnet eða við þráðlaust net heima hjá okkur eða í skólanum. Við viljum einnig geta haft mörg forrit opin samtímis og jafnvel verið að vinna í þeim sitt á hvað. Allt þetta krefst flókins hugbúnaðar sem bregst skynsamlega við ef eitthvað er ekki eins og það á að vera.

Það er því augljóslega ekki hrist fram úr erminni að skrifa stýrikerfi frá grunni. Einn þeirra sem hefur þó gert það er finnski tölvunarfræðingurinn Linus Torvalds, sem skrifaði fyrstu útgáfuna af Linux-stýrikerfinu árið 1991. Sú útgáfa var þó mjög frumstæð og hafði fáa af þeim eiginleikum sem við ætlumst nú til að stýrikerfi hafi. Linux hefur síðan smátt og smátt verið endurbætt. Þúsundir sjálfboðliða hafa tekið þátt í þessum endurbótum og er jafnvel talið að Linus Torvalds eigi aðeins um 2% af kóðanum sem myndar kjarna Linux-stýrikerfisins.

Sama má segja um stýrikerfin frá Microsoft. Þeirra fyrsta stýrikerfi, MS-DOS, var upphaflega skrifað af einum manni, Tim Paterson, en Microsoft keypti það af honum og endurbætti það smátt og smátt. En Microsoft hefur endurskrifað allan stýrikerfiskóðann oftar en einu sinni. Það er talið að yfir 1000 forritarar hjá Microsoft hafi tekið þátt í að skrifa nýjasta stýrikerfið þeirra, Windows 7.

Frekara lesefni á Vísindavefnum:

Myndir:...