Wikiproiektu:Informatika/Sistema eragileak

Sistema eragileak, non kokatzen diren aplikazioaren eta hardwarearen artean.


Sistema eragilea software bat da eta programekin eta datuekin osatzen da. Sistema eragileak konputagailuaren hardwarea kudeatzen du, eta askotariko software aplikazioak efizientziaz exekutatzeko zerbitzu komunak eskaintzen ditu. Sistema eragileak hardwarearen gainean eta beste programa eta aplikazioen azpian egon behar du programa hauek ondo funtzionatu ahal izateko.

Sistema eragile baten oinarrizko helburuak eta ikuspuntuak bi dira, elkarren artean erlazionaturik badaude ere: batetik makina-mailakoak baino funtzionalitate ahaltsuagoak eskaintzea programei eta programatzaileei, eta bestetik, baliabideen kudeaketa orekatu eta eraginkorra. Lehen helburua sistema-deiek betetzen dute, horretarako, sistema-dei horien kodea definitu behar da, baina hori egiterakoan baliabideen kudeaketa orekatua eta eraginkorra hartu behar da kontuan. Era berean, kudeaketa egokia ziurtatzeko sinkronizazio/komunikazioa eduki behar da kontuan.

Sistema eragilea beharrezkoa da erabiltzailea konputagailuarekin komunikatzeko. Hardwarearen funtsezko kudeaketa oso konplexua da, hori dela eta, sistema eragileak sistemaren ulermena eta erabilpena errazten du erabiltzailearentzat.

Makinaren zehaztasunak alde batera utziz, oro har, baliabideak kudeatzeko aukera eskaintzen duen softwarea da. Mota honetako softwarea, mikroprozesadoreak erabiltzen dituzten sistema gehienetan aurki dezakegu, hala nola, telefono mugikorretan, DVDak ikusteko sistemetan, konputagailuetan eta abarretan.

Oinarrizko zeregina bat ere konputagailuaren baliabideak kudeatzea da, hardwarea koordinatzea eta konputagailuaren memoriako fitxategi eta direktorioak antolatzea dira.

Mikroprozesadoreak erabiltzen duten aparatu elektroniko gehienak sistema eragilea daukate, adibidez: telefono mugikorrak, DVD irakurgailuak, konputagailuak, bideratzaileak, etab.

Mahaigaineko Sistema eragilerik erabilienetatik lehena Microsoft-en Windows da, merkatuko %82.74-rekin. Jarraian Apple Inc.-ren macOS doa merkatuko %13.23-rekin eta hirugarren Linux-en oinarritutako Sistema eragileak merkatuko %1.57-rekin. Mugikorren (telefono mugikorrak eta tabletak bateratuta) sektorean 2017-an bildu ziren datuetik ondokoa ondorioztatzen da: Merkatuko %70-a (eta urteroko %10.3-ko hazkundearekin) Googleren Android sistema eragileak du. Apple Inc.ren iOS-ek duen eragina %12.1-koa da (eta urtero %5.2 txikitzen da balio hori). Gainontzeko Sistema eragileen artean %0.3a osatzen dute. Zerbitzarien sektorean aldiz sistema eragile erabilienak Linuxen oinarritutakoak dira.

Historia aldatu

Gaur egungo informatika Bigarren Mundu Gerraren ondorioz sortu zen, 40.hamarkadan. Garai haietan, ez zen existitzen "Sistema Eragile" kontzepturik eta programatzaileek zuzenean lan egiten zuten konputagailuaren hardwarearekin zenbaki-sistema bitarra erabiliz (0koak eta 1koak soilik erabiliz).

Lehen sistema eragilea 50.harmakadan sortu zen, zehazki, 1956. urtean. General Motors konpainiak garatu zuen IBM 704 konputagailu batentzat eta bere eginkizun bakarra programa baten exekuzioa amaitzean beste bat exekutzatzea zen. Bere izena, GM-NAA I/O.

60.harmakadan, iraultza eman zen sistema eragileen arloan eta kontzeptu berriak azaldu ziren: multiataza, multierabiltzailea, multiprozesadoreak eta denbora errealeko sistemak. Hamarkada honetan, UNIX sortuko da eta hau izango da sistema eragile gehienen oinarria, baita gaur egun ere.

70.hamarkadan, konputagailu pertsonalen hazkundeak, hauek jendeari gerturatzea eragin zuen, inoiz pentsatu izan ez zen bezala. Honek, garapena izugarri bultzatu zuen eta ondorioz, C programazio lengoaia sortu zen. Honek, erabiltzaileen hazkunde handia ekarri zuen, gehiengoa programatzen ez zekiten erabiltzaileak eta horregatik, lehentasuna sistema eragile ulerterrazak sortzea izan zen, lehen interfaze grafikoak sortuz 80. hamarkadaren hasieran.

80.hamarkadan, konputagailu pertsonaletan errendimendua alde batera utzi zen eta sistema eragileak lagungarri izatea eta erabileraren erraztasuna bultzatu zen. Honen ondorioz, aplikazioen azkartasuna gutxitzen zen baina geroz eta praktiko eta soilagoak ziren erabiltzaileentzat. Garai honetan, dagoeneko existitzen ziren lengoaiak erabiltzen ziren, Smalltalk edo C adibidez, eta beste lengoaia berri batzuk sortu ziren, C++, Eiffel, Haskell edo Miranda adibidez. Hamarkada honen erdian bi sistema eragile ziren gehien erabiltzen zirenak(MS-DOS eta UNIX). 1984.ean merkaturatu zen lehen Macintosh konputagailua eta honek Mac OS sistema eragilea zuen bere barnean, non, berrikuntza oso garrantzitsuak ekarri zituen, multiataza eta saguaren erabilera adibidez. Azken honek, eztabaida sortu zuen batez ere komando lerroarekin lan egitea ohituta zeuden erabiltzaileen artean, sagua jostailu moduan ikusten baitzuten.

90.hamarkadan azaldu zen lehen Linux bertsioa, zehazki, 1991.eko irailean Linus Torvalds-ek sortua beste hainbat kolaboratzailerekin batera. Sistema honek UNIX du oinarritzat eta hasiera batean, komandoen bidez bakarrik egiten zuen lan, MS-DOSn antzera. Gaur egun, interfaze grafikoen bidez ere erabil daiteke arazorik gabe. Hamarkada honetan ere zabaldu zen Windows sistema eragilea. Microsoft-ek garatua, MS-DOSn oinarritzen da eta Windows 95 iritsi arte ez zen interfaze grafiko bidezko sistema izan. 3.11 bertsiora arte, MS-DOS erabiltzeko mahaigain ingurune bat besterik ez zen izan. Windows 95 sistema 1995.eko abuztuaren 24n merkaturatu zen eta arrakasta nabarmena izan zuela esan daiteke. Ondoren, 1999.ean Microsoft-ek Windows 98 bertsio berria merkaturatu zuen, erabiltzaileei hainbat abantaila eskainiz eta Internetaren inguruko ezaugarri batzuk barneratzen zituela.

Hemendik aurrera, 21.mendean sarturik, Windows, Mac OS eta Linux izan dira sistema eragile erabilienak eta gehien garatu direnak. Hauek, bakoitzak bere moduan, berrikuntza eta abantaila ugari ekarri dituzte gaur egun arte, hainbat bertsio eguneratuz.

Sistema eragile motak aldatu

Ataza bakarreko sistemak eta sistema multiatazak aldatu

Ataza bakarreko sistemak programa bakarra eduki dezake martxan, aldiz sistema eragile multiatazak, programa bat baino gehiago exekuta ditzake momentu berean, hauek konkurrentzian exekutatuz. Hau denbora partekatzeari esker lor daiteke, prozesadorearen denbora prozesuen artean banatzean datza. Prozesu hauek, esleitu zaien denbora amaitzean etengo dira, horrela hainbat prozesu momentu berean exekutatzen direnaren sentsazioa lortuz. Geldialdi txiki hauek kontrolatzen duen azpiprozesu bat egongo da sisteman, honen helburua prozesu guztiak exekuzioan mantentzea izanik.

Erabiltzaile bakarreko sistemak eta sistema multierabiltzaileak aldatu

Erabiltzaile bakarreko sistema eragileak ezin ditu erabiltzaileak desberdindu, baina multiataza baimendu dezake. Sistema multierabiltzaileetan hainbat erabiltzaile aldi berean konputagailu bera erabiltzean oinarritzen da.

Sistema banatuak aldatu

Sistema banatuetarako sistema eragileak, konputagailu desberdinak maneiatzen ditu bakar bat izango balira bezala. Konputagailuen sareko garapenak, hau da, ordenagailuak elkarren artean lotuta eta komunikatuta egoteak, sistema banatuak ekarri zituen. Sistema banatuetan programak makina bat baino gehiagotan exekutatzen dira, eta konputagailuak kooperazioan lanean aritzen dira.


Kernela aldatu

Sistema eragilearen kernela, sistema eragile guztiek erabiltzen duten software garrantzitsu bat da. Kernela sistema eragilearen bihoztzat hartzen da, hardwarea eta softwarea elkarlotzen dituelako. Elkarlotze honek konputagailu edo ordenagailu batek modu eraginkor batean lan egitea ahalbidetzen du. Sistema eragilearen barruan, modu pribilegiatuan exekutatzen da, horrela, programek hardwarea modu seguruan atzitu ahal izango dute. Hau dena gauzatu ahal izateko, sistema-deiak (system calls) erabiltzen ditu. Kernelak, erabiltzaile arruntari makinaren erabilpena errazteko erabiltzen da.

Konputagailua pizten dugun bakoitzean, kernela, ordenagailuko RAM memorian kargatzen da eta bertan dirau ordenagailua itzali arte.

Nahiz eta aurretik esan sistema eragile orok erabiltzen duela kernela, benetan, hardwarearen abstrakzioa (hardware abstraction) lortu nahi ez badugu ez dugu kernelik behar. Abstrakzioa (hardware abstraction) lortzea, programatzaileak hardwareari buruzko detaileak jakin gabe, hau atzitzeko aukera izateari deritzo.

Funtzioak aldatu

Kernelak konputagailuari baliabideak eskaini eta kudeatzen dizkio, beste programei exekuzioa eta baliabide horiek erabiltzea baimenduz. Kernelak gainera memoriako helbide espazioa ezartzen du aplikazioetarako, memorian aplikazioen kodea duen fitxategiak kargatzen ditu eta programentzako edota programen barnean kokapen bereziak dituzten adarrentzako exekuzio pila ezartzen du.

Kernela hauen arduradun da:

1. Periferikoei edo makinara konektatzen diren gailuei sarbidea baimentzen die, erabiltzaileak erabili ditzan.

2. Makinaren zerbitzuak eta programak modu eraginkor batean exekuta daitezen memoria kudeatzen du.

3. Prozesu eta programa ezberdinek prozesatzeko behar duten denbora kudeatzen du.

Kernel motak aldatu

Hasiera batean, konputagailuak, nukleorik gabe funtzionatzen zuten, baina, programa ezberdinak erabili ahal izateko, makinak berrabiarazi eta birkonfiguratu behar ziren. Horregatik, programa laguntzaileak memorian gordetzen hasi ziren. Programa hauek garatzen joan ziren eta gaur egun nukleo edo kernel izenarekin ezagutzen direnen oinarri izan ziren.

Egun, lau kernel mota daude indarrean:

1. Nukleo monolitikoak (Monolithic kernel): hauek hardwarearen abstrakzioa errazten dute. Ez dute modulurik erabiltzen, hau da, kernela programatua dago dena kapa batean garatzeko. Honek azkarragoa egiten du, baina segurtasun aldetik galerak sortzen dira eta gainera prozesua konplexuagoa da. Adibidez, Linux edo Unix sistema eragileek honako nukleoak erabiltzen dituzte.

2. Mikronukleoak (Microkernel): funtzionalitatea hobetzeko, hardwareari abstrakzio bakunak eskaini eta zerbitzari aplikazioak erabiltzen dituzte. Sistema hau, aurrekoa baina seguruagoa da, baina motelagoa ere eta askotan erantzuna jasotzeko denbora dezente itxaron behar da. Adibidez, MAC OS X sistema eragileak , Mach mikronukleoa erabiltzen du.

3. Nukleo hibridoak (Hybrid kernel): mikronukleoen parekoak dira, baina kernela azkarragoa izan dadin, kernelaren espazioan kode gehigarria eskaintzen dute. Windowsek esaterako, Windows NT kernela erabiltzen du, mota honetakoa dena.

4. Exonukleoak (Exokernel): hardwarea zuzenean atzitzeko liburutegiak eskaintzen dituzte. Gaur egun Nemesis sistema eragileak honelako kernel mota erabiltzen du, hala ere, Nemesis ez da oso ezaguna.

Sistema deiak aldatu

Konputazioan, Sistema-deiak bat programa informatiko batek uneko sistema eragilearen kernelari zerbitzu eskaera bat egiteko balio duen errutina bat da. Zerbitzu hauen artean: hardwarearekin lotutako zerbitzuak (adibidez, disko gogorraren atzipena), prozesuen exekuzioa eta sorrera edota kernelaren barneko zerbitzuen komunikazioa, esate baterako, prozesuen planifikazioa.

Linux kernelean oinarritzen diren sistema eragileek, sitema-dei mota ezberdinak dituzte zereginaren edo lortzen dutenaren arabera. Batez ere, 5 taldetan sailkatzen dira:

  1. Prozesuen Kontrol kudeaketarako: load, wait, sleep...
  2. Fitxategi kudeaketarakoak: open, close, read...
  3. Gailuen kudeaketarako: request device, read...
  4. Informazioaren mantenimendurako
  5. Komunikaziorako

Moduak aldatu

Aplikazioak ez dira prozesadorearen agindu guztiak erabiltzeko gai izan behar; aitzitik, sistema eragileak instrukzio horiek guztiak erabili ahal izatea ezinbestekoa da. Hori horrela izanik, hardware fabrikatzaileek eskuarki bi operazio modu dituzten prozesadoreak eskaintzen dituzte: erabiltzaile modua (ez pribilegiatua) eta gainbegirale modua (pribilegiatua).

  • Erabiltzaile modua:

Modu hau ez pribilegiatua da eta aplikazioek exekutatu ditzaketen agindu multzoari dagokio. Modu ez pribilegiatu honetan exekutatu daitekeen agindu bilduma hori prozesadoreak eskaintzen dituen agindu guztien azpimultzo bat da. Beraz, erabiltzaile moduan prozesadoreak agindu kopuru mugatua soilik exekutatu ahal izango du, prozesuari esleitutakoak, hain zuzen ere, eta ezin du hardwarearekin elkar eragin.

  • Gainbegirale modua:

Modu hau pribilegiatua da eta Kernel modua ere deritzo. Prozesadorearen egindu multzo osora eta sistemaren errekurtsoetara sartzea ahalbidetzen du, ez du inolako murriztapenik sistemaren Kernelera sartzerako orduan; hortaz, modu ez pribilegiatuaren agindu multzoa ere du barne. Prozesadorearen agindu guztiak erabili ditzake, memoria osoa manipulatu, gailu-kontrolagailu guztiekin elkar eragin... Modu honetan exekutatzen da sistema eragilearen nukleoa.

Erabiltzailetik gainbegiralerako trantsizioa prozesadorearen agindu baten bitartez egiten da, INT (software bidezko etena) edota SYSCALL (sistema-deia) bitartez. Sistema eragileak, aplikazio bati prozesadore errekurtso bat esleitu baino lehen, prozesadorea modu ez pribilegiatuan jartzen du.

Fitxategiak aldatu

Artikulu nagusia: «Fitxategi (informatika)»

Konputagailuak, informazioa diskoetan modu iraunkorrean gordetzeko fitxategiak erabiltzen ditu. Fitxategiak modu konkretu batean antolatzen dira atzipen azkarragoa lortzeko, fidagarritasuna handitzeko eta erabilitako espazioa hobeto aprobetxatzeko. Honi fitxategi sistema deitzen zaio, eta fitxategien edukia gordetzeaz gain, izena, propietateak, direktorio hierarkia, baimenak... kudeatzen ditu, informazioa era erabilgarriagoan eskainiz.

Ikus, gainera: aldatu

Kanpo loturak aldatu

  Wikimedia Commonsen badira fitxategi gehiago, gai hau dutenak: Informatika/Sistema eragileak