Tietokone ilman käyttöjärjestelmää
Tietokoneen tehtävänä on tiedon käsittely eli tiedon työstäminen.
Tietotyö tehdään ohjelman ohjailemana.
Ohjelma koostuu peräkkäisistä konekielisistä käskyistä (ja datasta) ja
noiden käskyjen mukaan prosessori, CPU Central Prosessing Unit, manipuloi dataa.
Sitä varten ohjelmakoodin on oltava tietokoneen keskusmuistissa (RAM).
Tämä siksi, että CPU:lla on suora yhteys keskusmuistiin data- ja osoiteväylien kautta.

Tietokone ilman käyttöjärjestelmää toimii ns ikuisessa silmukassa.

Ikuinen silmukka

Yksittäinen tietokoneohjelma ajetaan tietokoneen ”raudassa” (CPU + muisti) ikuisessa silmukassa
kiertokysely-pollaus menetelmällä ja toimintaa ”häiritsee” vain ulkoisten laitteiden (näyttö, anturit...) keskeytyspyynnöt.
Keskeytyksen tullessa kone keskeyttää pääohjelman suorittamisen,
hyppää keskeytyspalveluohjelmaan palvellakseen huomiota pyytäneen laitteen toiveet.
Kun keskeytysohjelma on suoritettu, palataan pääohjelmaan ja jatketaan sitä siitä mihin jäätiin.
Keskeytyksen aiheuttajia voi olla useita erilaisia, jolloin jokaisella on oltava oma palveluohjelma.

Tämä on edullinen ja yksinkertainen järjestely ns sulautetuissa järjestelmissä,
joissa CPU on upotettu jonkin laitteen sisään (tv, kauko-ohjain, pyykinpesukone… ).

 

Käyttöliittymä versus käyttöjärjestelmä
Kun käynnistät tietokoneen, näyttöruutuun avautuu graaffinen käyttöliittymä GUI, Graphic User Interface.
Sen ulkoasu riippuu siitä onko kone iMac, Windows tai jokin Linuxeista.
Käyttöliittymästä käynnistetään sovelluksia, kuten www-selain Firefox, peliohjelma Pasianssi, jne.
Tämä ei meitä kiinnosta.

Käyttöjärjestelmä on jotain muuta.
Meitä kiinnostaa miksi sitä tarvitaan,
mistä palasista se on rakennettu,
mitä mikin niistä tekee ja miten ne ovat riippuvaisia toisistaan.
Tätä tietoa tarvitaan kun ryhdymme koodaamaan ohjelmia Laitteiden Internettiin.

Monta ohjelmaa
Useasti tulee tilanne, että on ajettava monta eri ohjelmaa samanaikaisesti;
kirjoitetaan teksturilla muistiinpanoja,
etsitään netistä asiaan liittyvää lisätietoa,
tulostetaan paperille tähänastinen työ,
kuunnellaan nettiradiota, jne.
Jos vielä halutaan lisätä/vaihtaa/poistaa sovelluksia, käyttää erilaisia oheislaitteita ja
jos tuo kaikki on tarkoitus tehdä vielä usean samanaikaisen käyttäjän kanssa, se on ilman erikoisjärjestelyjä mahdotonta.

Tavallisesti (sulautetussa) tietokoneessa on vain yksi mikroprosessori ja
tuo CPU voi ajaa vain yhtä ohjelmaa kerrallaan.
Jos on tarvetta ajaa useaa ohjelmaa samanaikaisesti, toimintoa varten tarvitaan järjestely nimeltä moniajo, multitasking.
Ohjelmia ajetaan mukamas rinnakkain, mutta kaikki tapahtuukin vuorotteluperiaatteella.
Kun ohjelmien vaihto tehdään hyvin nopeasti, näyttää käyttäjästä ikäänkuin kaikki ohjelmat etenisivät rinnakkain.
Jokaisesta ajossa olevasta ohjelmasta ajetaan esim. 10 ms pätkä, sitten saman verran seuraavasta, jne.
Täydellisempään moniajoon päästään, kun järjestelmässä on useampia prosessoreja, oikeastaan tarvittaisiin jokaiselle ohjelmalle oma CPU.

Tuon ohjelmien vuorottelun hoitaa käyttöjärjestelmä.
Moniajo eli se, että tietokoneessa ajetaan useita ohjelmia näennäisesti samanaikaisesti,
vaatii käyttöjärjestelmältä paljon ja tekee siitä hyvin monimutkaisen.
Mutta.
Moniajolla saavutetaan suuri prosessorin eli CPU:n käyttöasteen nosto, ts. koneen nopeus kasvaa.
Ohjelmien (prosessien) näennäisen rinnakkaisajon aiheuttama toiminnan monimutkaisuus ja
ylimääräinen CPU-kuorma kannattaa ottaa, koska systeemin tehokkuus kasvaa ja paljon.

Moniajossa prosesseja on ajettava ”samanaikaisesti” kymmenittäin.
Isoissa tietokonesysteemeissä voi olla aktiivisena tuhansia prosesseja (prosessi on ajossa oleva ohjelma)
ja yhden käyttäjän työasemassakin tusinoittain.
Käyttöjärjestelmän ydin, kernel, hoitelee tietyn ohjeistuksen (algoritmi) mukaan prosessien pääsyn vuorotellen CPU:ta käyttämään.
GNU/Linuxin kernel versiosta 2.6.21 lähtien vuoronvaihto ei toimi kellon ohjaamana,
vaan prosessi valitaan tarpeen mukaan, siitä tarkemmin omassa dokumentissa).
Prosessin valinnan ja käynnistyksen ajoituksen tekee vuoronantaja, scheduler.
Näistäkin tarkemmin niiden omissa dokumenteissa.

Nykyisissä prosessoripaketeissa on useita CPU-ytimiä jotka toimivat yht'aikaisesti.
Uusimman RasPin, RaspberryPi-3, ARM-ohjaimessa on 4 ydintä (siis itsenäisesti toimivaa CPU:ta),
joten se on noin 4 kertaa tehokkaampi kuin yhden ytimen CPU. Oikeastaan enemmänkin.

Käyttöjärjestelmä
Käyttöjärjestelmä on ohjelma jota tavallinen tietokoneen käyttäjä ei koskaan näe,
eikä hänen tarvitse siitä olla kiinnostunut.
Mutta se on oleellisin osa koko järjestelmää. Ilman sitä ei tulla toimeen.
Se on ikäänkuin alusta joka palvelee käyttäjän sovelluksia kuten web-selain tai kuvan/äänen käsittelyohjelmat.

Toisaalta käyttöjärjestelmä on ilmeisesti monimutkaisin ohjelmakokonaisuus
mitä tavallinen ihminen on koskaan käyttänyt tai tulee käyttämään, tietämättään.
Onneksi normaalikäyttäjän ei tarvitse tietää siitä kovinkaan paljoa.
Pienikin ymmärrys kuitenkin auttaisi kummasti ongelmien tullessa.
Mutta tehokäyttäjän ja ohjelmoijan on tiedettävä käyttöjärjestelmästä ainakin perusteet.

Tietokoneen voidaan ajatella koostuvan kolmesta päällekkäisestä kerroksesta:
- alimpana on tietokoneen rauta (prosessori - CPU, muistit, oheislaitteet),
- sen päällä laitteiden ja sovellusohjelmien toimintaa ohjaa ja valvoo käyttöjärjestelmä,
- joka puolestaan luo alustan käyttäjän käyttämille sovellusohjelmille.

Käyttöjärjestelmä toimii lähellä "rautaa".
Käyttäjän ohjelmat eli sovellukset toimivat lähellä käyttäjää.

Mitä käyttöjärjestelmä tekee?
Jotta ohjelmat saavat laiteresursseja käyttöönsä oikeudenmukaisesti ja kokonaisuuden kannalta tehokkaasti ja
ennenkaikkea turvallisesti, tarvitaan toiminnalle ”valvoja”.

Tämä valvoja on käyttöjärjestelmä joka huolehtii kaikesta:
** se ohjaa ja valvoo laitteistoa ja sen käyttöä.
Yksittäisen ohjelman ei tarvitse osata käyttää/tulkita näppäimistöä, näyttöä, tulostinta, nettiä,
vaan käyttöjärjestelmä huolehtii laiteresurssien (CPU, muistit, oheislaitteet) jakamisesta ja
ohjauksesta oikeudenmukaisesti ja turvallisesti.
Sovellus ei saa suoraan käyttää laitteen rautaa, vaan se on tehtävä käyttöjärjestelmän kernelin kautta.
  ** se hallitsee ja ohjaa käyttäjän sovelluksia ja niiden ajoa,
se antaa jokaiselle ajettavalle ohjelmalle keskusmuistista (RAM) oman muistialueen johon muut ohjelmat eivät pääse käsiksi.
Näin se huolehtii siitä etteivät sovellukset häiritse toisiaan (esim. kirjoita toistensa päälle).
  ** se huolehtii järjestelmän turvallisuudesta ja käyttöoikeuksista
** se tarjoaa koodareille yhtenäisen ohjelmointirajapinnan (Application Programming Interface, API) tietokoneen laitteistoon.
Ohjelmointirajapintojen ansiosta jokaisen ohjelmoijan ei tarvitse huolehtia jokaisesta perusasiasta itse.

Käyttöjärjestelmä on tietokoneen aivot ja hermojärjestelmä.
Se hoksaa näppäimen painalluksen ja hiiren liikkeen, heittää työn tulokset näytölle,
valvoo kiintolevyllä olevia hakemistoja ja tiedostoja, ohjaa tulostinta ja nettiliitäntää.
Käyttöjärjestelmä estää kutsumattomien vieraiden pääsyn tiedostoihin ja
se sallii vain luvallisen ohjelma- ja laiteresurssien käytön.

Kukaan tietokoneen käyttäjä ei aja pelkästään käyttöjärjestelmää,
vaan jokainen käyttää jotain sovellusta, sovellusohjelmaa.
Käyttöjärjestelmä on vain apuohjelmisto sovelluksille, eräänlainen ajoalusta.
Käyttöjärjestelmää tavallinen käyttäjä tuskin tunnistaa,
sillä se on ohjelma joka liittää käyttäjän, käyttäjän ohjelmat ja tietokonelaitteiston toisiinsa.

Linux-käyttöjärjestelmän lohkorakenne

Kuva kertoo, että käyttöjärjestelmän ytimen, kernelin,
ulkopuolisia osia ovat muun muassa komentotulkki, shell,
sen yksinkertaiset tiedosto- ja levynkäsittelykomennot,
sekä erilaiset kirjastot, joiden kautta sovellusohjelmat käyttävät käyttöjärjestelmän palveluita.
Graafinen näyttösysteemi, GUI, X Windows, ei myöskään kuulu ytimeen.

GUI, graafinen työpöytäohjelmisto, siis se minkä tavallinen käyttäjä näkee ruudullaan,
CLI, komentotulkkijärjestelmä, shell, jota käyttävät ohjelmien tekijät ja laitehallinnasta vastaavat
C-ohjelmakirjastot ovat ohjelmien yhteiskäytössä ja joita tarvitaan ohjelmien kehitystyössä

User mode ja kernel mode
Jos tietokoneessa ajetaan useaa ohjelmaa samanaikaisesti vailla valvontaa, on varmaa,
että ne häiritsevät toinen toisiaan. Siitä seuraa katastrofi.
Tämän estämiseksi prosessoreihin on kehitetty ominaisuuksia joilla estetään haitalliset vaikutukset.
Useimmilla prosessoreilla on vähintään kaksi suojaustasoa (real mode ja protected mode), Intelillä jopa useampia.
Se kumpaa suojaustasoa CPU ajaa, määritetään käyttöjärjestelmään kuuluvan muistinhallintayksikön
(MMU, Memory Management Unit) toimesta.
Prosessorin ohjausrekisterillä määritetään kaksi muistialuetta, user space ja kernel space.
Käyttäjän sovellukset ajetaan user space-muistialueessa ja käyttöjärjestelmän ytimelle, kernelille,
on varattu ihan oma muistialue johon muut ohjelmat eivät pääse.
Käyttäjän sovellukset eivät voi kirjoittaa kernel-alueelle, joten se ei voi korruptoitua, vikaantua.
Tämä luo stabiilisuutta ja tietoturvaa.

Käyttöjärjestelmän ydin on kernel
Käyttäjän sovellusohjelmat eivät voi suoraan käyttää mitään laiteresurssia.
Kaikki tapahtuu kernelin ohjauksessa ja valvonnassa.
Aina kun kone käynnistetään, kernel ladataan kiintolevyltä tai SSD- tai SD-muistista RAM-keskusmuistiin.
Siellä se on koko toiminnan ajan.
Kernel on tiivis koodipaketti joka tietää kaiken mitä tietokoneessa tapahtuu;
se hallitsee koko systeemin, sekä ohjelmat että raudan.
Kernel on lähimpänä laitteistoa, eli se hoitaa laitteiston ohjauksen ja valvonnan.
Se on myös lähimpänä sovellusohjelmia, eli se tarjoaa toimivan ja valvotun rajapinnan sovellusohjelmille.

Järjestelmäkutsut-yksikkö käsittelee ensin kaikki ”ylhäältä tulevien” sovellusohjelmien laite- ym. resurssitoiveet,
välittää ne kernelille, joka puolestaan tietää mitä, miten ja milloin toiveet toteutetaan.
Järjestelmäkutsu on tarkoin määritelty liitäntä kerneliin. Niitä on kaikkiaan n. 400 kpl.

Kernel on RAM-keskusmuistissa koko tietokoneen toiminnan ajan. Tästä seuraa:
joko kernelin tulee olla pieni - tai keskusmuistin iso, muuten kone toimii hitaasti.

GNU/Linuxin kernel on monoliittinen, yhtenäinen, ts. kaikki käyttöjärjestelmän osat kuuluvat samaan binääritiedostoon
(joka on ajokelpoinen ohjelma).
Kernel toimii siis yhdessä prosessissa ja siten yhdessä muistialueessa kernel-modessa.
Siksi GNU/Linux-kernel on nopea ja yhtenäisenä se helpottaa sovellusohjelmien kehittäjän työtä.
GNU/Linux-kernel on nykyään pakattuna kiintolevyllä,
joten järjestelmän käynnistymisen yhteydessä se on purettava keskusmuistiin (RAM).

GNU/Linux on myös modulaarinen.
Osa kernelistä, useimmiten laiteajurit, voidaan kääntää omiksi moduuleikseen.
Ne otetaan käyttöön tarvittaessa dynaamisesti ajon aikana ja vapautetaan kun käyttöä ei enää ole.
Täten kernelin koko voidaan minimoida omissa systeemeissä, otetaan mukaan vain aivan välttämätön.
Modulaarisuuden avulla kernelistä tulee kohtuullisen pieni ja sen voi koodata ”yleiseksi”,
jolloin sen siirtäminen toisiin prosessoriarkkitehtuureihin käy vähällä vaivalla.
Kernelin pieni koko, vain olennainen on siinä mukana, ja modulaarisuus, mahdollistaa sen,
että järjestelmän kokoonpano on täysin muunneltavissa omiin tarpeisiin.
Se on osaajan kannalta hieno asia.
Kernel koostuu pääosin tuhansista laiteajureista, lukuisista verkkoprotokollista,
useasta eri laite-arkkitehtuurista (CPU) ja tiedostojärjestelmästä.
Varsinainen ydin, core, on aika pieni, vain muutaman prosentin verran koko distrosta.
Näin GNU/Linux soveltuu esimerkiksi sulautettuihin järjestelmiin vallan mainiosti.

 

Kernelin toiminta lyhyesti

Prosessien hallinta
- prosessi on ajossa oleva ohjelma
Kernel hoitaa prosessien luomisen, niiden ajovuorojen
valinnan (schedulerin ohjaamana), ajon, lopettamisen
ja tuhoamisen, sekä mm. prosessien välisen kommunikoinnin.
Muistinhallinta
- käyttömuisti RAM
Kernel hallinnoi keskusmuistin käyttöä.
Se jakaa jokaiselle prosessille oman muistialueen ja
huolehtii siitä etteivät ne häiritse toisiaan. Jos muisti ei riitä,
osa datasta voidaan siirtää kiintolevylle ja
tarvittaessa palauttaa takaisin työmuistiin. Swap.
Tiedostojärjestelmä Kernel tietää minne se tiedoston tallettaa (missä on tilaa) ja
mistä haettava tieto ja ohjelmat löytyvät.
Se pitää kirjaa kiintolevyllä (tai SD-muisti) olevista tiedostoista
ja hakemistoista, ts. se hallinnoi tiedostojärjestelmää.
Tiedosto on vain kernelin luoma illuusio, data on oikeesti
säilöttynä pieninä palasina kiintolevyllä tai SD-muistissa.
Laitehallinta Kernel hoitelee järjestelmän raudan laiteajurien avulla.
Laiteajurit ymmärtävät miten rauta, kuten näyttö,
hiiri tai tulostin toimii.
Kernel hallinnoi oheislaitteita estäen ohjelmia pääsemästä
käsiksi suoraan laitteistoon ja vain yksi ohjelma kerrallaan
saa laitteen haltuunsa. Laiteajurit ovat joko käännettynä kerneliin
tai ne otetaan käyttöön dynaamisina moduuleina.
Keskeytysten käsittelijä Kernel hoitelee ohjelmalliset ja laitekeskeytykset.
Se palvelee järjestelmäkutsuja, keskeytyksiä ja
muita kriittisiä prosesseja.
Verkon hallinta
- osa laitehallintaa
Kernel hoitelee yhteydet tietoverkon kautta internetin
palvelin-koneisiin. Se ottaa vastaan ja lähettää
datapaketteja verkkoon.
Protokollat huolehtivat siitä että kaikki on ok.
Käyttäjien hallinta Määrittää käyttäjien oikeudet,
siis mitä kukin käyttäjä saa koneella tehdä, mitä ohjelmia ajaa,
mitä tiedostoja lukea, mihin kirjoittaa, jne.

Kernel ei itse päätä mitään, se vain toteuttaa käyttäjän/laitteiston palvelupyyntöjä:
- se ottaa vastaan käyttäjän käskyt, kuten "käynnistä FireFox"
- se ottaa vastaan laitteiston toiveet, kuten ”USB-liitäntä kaipaa huomioita"
- kernel on ohjelmistoliitäntä tietokoneen rautaan (CPU+muistit+I/O ts.input-output)

Tietokone käynnistyy aina kernel modeen ja kernel space-muistialueeseen joka on varattuna vain ja ainoastaan kernelille.
Sinne ei muilla ohjelmilla ole asiaa. Rajoja valvoo muistinhallintayksikkö.
Kernelin palveluksiin käyttäjän ohjelmat pääsevät vain järjestelmäkutsu-rajapinnan (SCI, System Call Interface) kautta.

Kun toimitaan user modessa,
        CPU pääsee ainoastaan user spaceksi määritettyyn muistialueeseen.
Kun toimitaan kernel modessa,
        CPU pääsee kumpaankin muistialueeseen.

Tuo jako kahteen eri modeen voidaan ajatella myös niin,
että kernelin kehitystyö tapahtuu tarkan valvonnan alla (Linux Foundation),
silloin koodille voidaan sallia kaikki toimet.
Käyttäjän sovelluksia tekevät ”ketkä tahansa”,
silloin ei voida sallia ohjelman tekevän kaikkea mitä se haluaa.
Koneen on toimittava.

Ohjelmien tekijät, koodarit, kirjoittavat sovellusohjelmia jotka toimivat user modessa,
muisti-alueessa "joka on kaikkien käytettävissä".
Kernel ajetaan kernel modessa, joka on muistialue johon vain kernel pääsee.
GNU/Linux käyttöjärjestelmä on avoin ympäristö, joten sen ja kernelin lähdekoodi on
kaikkien vapaasti saatavissa ja muokattavissa.
Kukin voit muuttaa siitä mitä tahansa tarpeen mukaan, kaikki on osaamisesta kiinni.
Siksi kannattaa hankkia koodaustaito.


Kernelin kehitys tapahtuu nykyään Linux Foundationin toimesta.
Työtä johtaa suomalainen Linux-projetkin alkuunpanija Linus Torvalds.
Koodia kirjoittavat eri yrityksistä palkkaa saavat ammattilaiset ja alan parhaat harrastaja-gurut.

Milloin laite toimii kernel modessa?
**
laitteiston käynnistyksen jälkeen (booting, bootstrap)
** keskeytyksen tullessa (interrupt)
** järjestelmäkutsun tullessa (system call)
** poikkeustilanne, virhetilanne (exeption)

”Häiriö” on user-modessa ajettava käyttäjän sovellus (esim selain),
kun se tarvitsee laiteresurssia (esim tallettaa dataa kiintolevylle) se kutsuu järjestelmäkutsun avulla kernelin apuun.
Kernel tekee pyydetyn työn.
Paluu user modeen tapahtuu, kun kernel on käsitellyt ”häiriön”.

Prosessi
Ajossa olevasta ohjelmasta (sen on oltava koneen keskusmuistissa, RAM) käytetään nimitystä prosessi.
Kukin prosessi saa vain pienen siivun CPU-aikaa kerrallaan. Tähän toimintoon tarvitaan käyttöjärjestelmää.
Käyttöjärjestelmä muodostaa ikään kuin alustan jonka päällä, avustuksella ja valvonnassa käyttäjän sovellusohjelmat ajetaan.
Prosessi on ympäristö jossa yksittäinen ohjelma ajetaan ja käyttöjärjestelmä on vain yksi prosessi muiden joukossa.
Prosessien vuoronvaihto, niiden välinen kommunikointi, laitteistoresurssien turvallinen ja
järkevä käyttö sekä ohjelmien käynnistys/lopetus ovat hyvin monimutkaisia toimenpiteitä.
Siksi niistä kerrotaan tässä vain yleisesti ja syvällisempi tarkastelu tehdään niiden omissa dokumenteissa.
(jotka ovat tulossa Punomon sivuille kuin Angelniemen posti).

Tärkeimmät pc-käyttöjärjestelmät:

Tärkeimmät mobiili-käyttöjärjestelmät:

 

Meitä kiinnostaa Raspberryyn soveltuvat käyttöjärjestelmät, joita on saatavilla useita.
Aloittelijalle ja kaikille muillekin suositellaan Linuxin Debian-pohjaista Raspbian-versiota.

Debian on GNU-Linuxin suosituin levitysversio, distro.

RaspberryPi + Debian = Raspbian

Distro
GNU/Linux-käyttöjärjestelmä koostuu kernelistä, koodikirjastoista, erilaisista apu- ja työkalu-ohjelmista.
Itse käyttöjärjestelmän päälle asennetaan erilaiset sovellusohjelmat tekstin- ja kuvankäsittelyyn,
web-selailuun, videoiden ja musiikin toistoon, pelaamiseen ja vaikka mihin tarkoitukseen.
Nykyään tuo kaikki kootaan yhteen asennuspakettiin joista käytetään nimiä:
jakelu, levitysversio, levityspaketti, distro, engl. Distribution.
Distro-paketit (Ubuntu, Debian, SUSE, Fedora, Mint...) ovat imuroitavissa netistä ja ne ”poltetaan” CD tai DVD-levylle.
Kukin toimija laittaa pakettiinsa mitä ohjelmia haluaa.
Vain kernel on yhteinen ja se on hyvin tarkoin säännelty.

Distro = kernel + työkaluohjelmia + sovellusohjelmia
- työkaluohjelmilla hallitaan systeemiä

Miksi GNU/Linux?
Eräs hyvä syy:
GNU/Linuxin ytimestä, kernelistä ja kaikista sovellusohjelmista, laiteohjaimista ja sen sellaisista,
on vapaasti saatavissa lähdekoodit.
Osaava saa muokata niitä mieleisekseen. Varsinkin, kun kaikkeen löytyy kunnon dokumentit.

Akuuttiin ongelmaan löytyy heti apu netistä.
Kaikki tuo auttaa ohjelmoinnin ja sulautettujen järjestelmien rakentelussa, opiskelussa ja harrastuksessa.

Julkaistut koodit ovat maailmanlaajuisesti koodauksen ammattilaisten ja muiden gurujen valvovien silmien alla,
joten ne ovat laajasti toimiviksi testattuja. Tämä auttaa myös ammattilaisia ja nopeuttaa ohjelmien tekemistä.

Vapaasti saatavilla olevien avoimen lähdekoodin työkalujen avulla on mahdollista rakentaa omiin tarpeisiin
sovitettu sulautettu GNU/Linux-järjestelmä. Nopeasti ja ilmaiseksi.
Mutta, ennen kuin tämä onnistuu,
tarvitaan hyvä ja vankka tietämys sulautetun GNU/Linux-järjestelmän ohjelmakomponenteista ja niiden toiminnasta.
Ja on osattava hieman koodin muokkausta.

GNU/Linux is an ideal operating system for power-users and programmers,
because it has been and is being developed by such people.
Everything a good programmer can wish for is available: compilers, libraries, development and debugging tools.
These packages come with every standard GNU/Linux distribution. - netistä lainattua

Mitä GNU/Linux tarjoaa opiskelijalle, harrastajalle ja ammattilaiselle?
* Valmista koodia netti täynnä, se odottaa sovittamista omiin juttuihin
* Vapauden vääntää ja kääntää koodia omiin tarpeisiinsa, eikä tarvitse pelätä lisenssipoliisia
* Valmiita Linuxin kanssa laajasti testattuja ohjelmakomponentteja (ajureita, jne.)
* Vapaita sovelluksia, applikaatioita, Linuxin päälle (pelejä, toimisto, kotikäyttö, ...)
* Uudet teknologiat tulevat nopeasti Linuxiin (tai itse asiassa ne kehitetään Linuxilla)
* Alati kasvavan määrän innokkaita kehittäjiä kavereiksi ja auttajiksi
* Hienon imagon, on hienoa osata jotain "mitä Pat Boone ei osaa"
* Käyttöjärjestelmän joka pyörii melkein jokaisella rautakonfiguraatiolla
* Sulautettujen järjestelmien voittajapari on ARM ja Embedded Linux = Raspberry Pi

 

Paluu pääsivulle:


© KÄYTTÖEHDOT: Ammattikäyttöön tarvitset lisenssin »

Tue toimintaamme käsityön hyväksi, tee lahjoitus!