Äänestys

Onko linux (kernel) pelkkä ydin vai koko käyttis?

Linux (kernel) on käyttis eli monoliittinen ydin
Linux (kernel) on pelkkä ydin eli mikroydin

Kirjoittaja Aihe: Linuxin viilaamista  (Luettu 55843 kertaa)

Fri13

  • Käyttäjä
  • Viestejä: 465
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #100 : 20.10.10 - klo:19.11 »
Without its software, a computer is basically a useless lump of metall. With its
sofware, a computer can store, process, and retrieve information, find spelling
errors in manuscripts, play adventure, and engage in many other valuabel activities
to earn its keep. Computer software can be roughly divided into two kinds: the system programs, which manage the operation of the computer itself, and the application programs, which solve problems for their users. The most fundamental of all the system programs is the operating system, which controls all the computer's resources and provides the base upon which the application programs can be written.

  A modern computer system consists of one or more processors, some main memory
(often known as "core memory", even though magnetic cores have not be used in
memories for over a decade), clocks, terminals, disks, network interfaces, and other
input/output devices. All in all, a complex system. Writing programs that keep track
of all these compinents and use them correctly, let alone optimally, is an extremely
difficult job. If every programmer had to be concerned with how disk drives work, and
with all the dozens of things that could go wrong when reading a disk block, it is
unlikely that many programs could be written at all.

 Many years ago it became abudantly clear that some way had to be found to shield
programmers from the complexity of the hardware. The way that has gradually eveolved is to put a player of software on top of the bare hardware, to manage all parts of the system, and presents the user with interface or virtual machines that is easier to understand and program. This layer of software is the operating system, and forms the subject of this book.

  The situation is shown in Fig. 1-1. At the bottom is the hardware, which in many
cases is itself composed of two or more layers. The lowest layer contains physical
devices, consisting of integrated circuit chips, wires, power supplies, cathode ray
tubes, and similar physical devices. How these are constructed and how they work is
the province of the electrical engineer.


A computer system consists of hardware, system programs, and application programs.)

  • [Banking system][Airline reservation][Adventure games]
  • [Compilers][Editors][Command interpreter]
  • [Operating system]
  • [Machine language]
  • [Microprogrammin]
  • [ Physical devices]

Next comes a layer of primitive software that directly controls these devices and
provides a cleaner interface to the next layer. This software, called microprogram,
is usually located in read-only memory. It is actually a interpreter, fetching the
machine language instuctions such as ADD, MOVE, and JUMP, and carrying them out as
series of little steps. To carry out an ADD instuction, for example, the microprogram
must determine where the numbers to be added are located, fetch them, add them, and store the result somewhere. The set of insructions that the microprogram interpres defines the machine language. Which is not really part of the hard machine at all, but computer manufacturers always describe it in their manuals as such, so many people think of it as being the real "machine." On some machines the microprogram is implented in hardware, and is not really a distinct layer.

 The machine language typically has betweeon 50 and 300 instcutions, mostly for
moving data around the machine, doing arithmetic, comparing values. In this layer,
the input/output devices are controlled by loading values into special device
registers. For example, a disk can be commaneded to read by loading the values of the dis address, main memory address, byte count, and directions (READ or WRITE) in its registers. In practice, many more parameters are needed, and the status returned by the drive after an operation is highly complex. Furthemore, for many I/O devices,
timing plays an important role in programming. A major function of the operating
system is to hide all this complexity and give the programmer a more convenient set
of insructions to work with
. For example, READ BLOCK FROM FILE is conceptually
simpler than having to worry about the details of moving disk heads, waiting for them
to settle down, and so on. On top of the operating system is the rest of the system
software
.

Here we find the command interpreter (shell), compilers, editors and
similar application independent programs
. It is important to realize that these
programs are definitely not part of the operating system, even though they are
typically supplied by the computer manufacturer
.

This is crucial, but subtle, point. The operating system is that portion of the software that runs in kernel mode or supervisor mode. It is protected from user tampering by the hardware (ignoring for the moment some of the older microprocessors that do not have hardware protections at
all). Compilers and editors run in user mode. if a user does not like a particular
compiler, he is free to write his own if he so chooses; he is not free to write his
own disk interrupt handler, which is part of the operating system and is normally
protected by hardware against attempts by user to modify it.

  Finally, above the system programs come the application programs. These programs are written by the user to solve their particular problems, such as commercial data processing, engineering calculations, or game playing.
« Viimeksi muokattu: 20.10.10 - klo:19.17 kirjoittanut Fri13 »

kuutio

  • Vieras
Vs: Linuxin viilaamista
« Vastaus #101 : 20.10.10 - klo:19.26 »
Eihän määritelmät mitenkään kiveen hakattuja ole, mutta jos joku aikoo esittää olemassaolevasta määritelmästä poikkeavaa määritelmää, niin pitää kyllä mielestäni pystyä perustelemaan, miksi uusi määritelmä on parempi kuin vanha (näinhän homma tieteiden piirissä toimii).

Mutta kun minä en ole mitenkään vakuuttunut siitä että sinun ja parin muun esittämä määritelmä on se "olemassaoleva" vanha määritelmä.
Sille minä en voi mitään. Korostan kuitenkin, ettei määritelmä ole mitenkään omasta hatusta vedetty.  Jos löydät jostain (suht. luotettavasta lähteestä) tuosta jollain oleellisella tavalla poikkeavia määritelmiä, niin laita toki tänne. Olen aina valmis vastaanottamaan lisää informaatiota.

Muoks: Laitetaan nyt tuohon vielä pari linkkiä, ettei tunnu siltä, että määritelmä on omasta päästä:
http://www.thefreedictionary.com/operating+system
http://www.merriam-webster.com/dictionary/operating+system

Lainaus
Määrittääkö POSIX käyttöjärjestelmän, vai kenties jotain muuta? Määrittääkö LSB käyttöjärjestelmän, vai jotain muuta?
Jotain muuta. Nämä ovat (vain) standardeja, joita noudattavat ohjelmistojärjestelmät ovat standardien kanssa yhteensopivia, LSB:n sivuilla puhutaan nimenomaan linux-jakeluiden yhteensovittamisesta (siis ohjelmistojärjestelmien standardoinnista). LSB määrittelee mm. pakettiformaatiksi RPM:män, kyllä kai Debian ja Ubuntukin sisältää käyttöjärjestelmän, vaikka pakettiformaattina on deb?

Lainaus
UNIXissa on erikseen käyttöjärjestelmän ydin, eli kerneli. Linux on ydin, eli kerneli, (katso vaikka kernel.org), mutta minkä ydin se on?
Unix nimeä käytetään paitsi käyttöjärjestelmistä, myös koko ohjelmistojärjestelmistä (Tuleehan mukana mm. koko dokumentaatio, mitä aika harva pitää käyttöjärjestelmän osana).
« Viimeksi muokattu: 21.10.10 - klo:09.43 kirjoittanut kuutio »

wally

  • Käyttäjä
  • Viestejä: 138
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #102 : 22.10.10 - klo:13.33 »
UNIXissa on erikseen käyttöjärjestelmän ydin, eli kerneli. Linux on ydin, eli kerneli, (katso vaikka kernel.org), mutta minkä ydin se on?

Asia alkaa varmaan hahmottua, jos katsot tuolta tämän ketjun kyselystä:

*Linux (kernel) on käyttis eli monoliittinen ydin
vai
*Linux (kernel) on pelkkä ydin eli mikroydin

Koska jälkimmäinen on ilmiselvästi virheellinen väite, on mielenkiintoista, että se on silti kerännyt jo 10 ääntä. Sinällään äänestysvaihtoehdot ovat hassut, koska tuohon kysymykseen ainoa mahdollinen vastaus on ensimmäinen, sillä Linux tosiaan on monoliittinen ydin. Voisi sanoa, että Linux on "itseriittoinen", mikä itsessään jo tarkoittaa, että se on (vähintään) käyttöjärjestelmä.

Linux on siis monoliittinen ydin sisältäen kaiken tarpeellisen, jotta sitä voidaan kutsua käyttöjärjestelmäksi.

asuspoju

  • Käyttäjä
  • Viestejä: 640
  • Linux_Eki useissa verkkopeleissä, palveluissa jne.
    • Profiili
    • Youtube kanavani.
Vs: Linuxin viilaamista
« Vastaus #103 : 22.10.10 - klo:23.53 »
UNIXissa on erikseen käyttöjärjestelmän ydin, eli kerneli. Linux on ydin, eli kerneli, (katso vaikka kernel.org), mutta minkä ydin se on?

Asia alkaa varmaan hahmottua, jos katsot tuolta tämän ketjun kyselystä:

*Linux (kernel) on käyttis eli monoliittinen ydin
vai
*Linux (kernel) on pelkkä ydin eli mikroydin

Koska jälkimmäinen on ilmiselvästi virheellinen väite, on mielenkiintoista, että se on silti kerännyt jo 10 ääntä. Sinällään äänestysvaihtoehdot ovat hassut, koska tuohon kysymykseen ainoa mahdollinen vastaus on ensimmäinen, sillä Linux tosiaan on monoliittinen ydin. Voisi sanoa, että Linux on "itseriittoinen", mikä itsessään jo tarkoittaa, että se on (vähintään) käyttöjärjestelmä.

Linux on siis monoliittinen ydin sisältäen kaiken tarpeellisen, jotta sitä voidaan kutsua käyttöjärjestelmäksi.
Ehkä on luettu väärin ja painettu se vaihtoehto. Ääntä ei saa pois otettua. Olisi ainakin yhden pienempi tuo luku :D
http://www.youtube.com/user/LinuxEki
"Varkaat tulee ikkunoista"
http://tinyurl.com/ltspopin - Opinnäytetyöni LTSP-järjestelmästä

Fri13

  • Käyttäjä
  • Viestejä: 465
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #104 : 25.10.10 - klo:13.37 »
Ehkä on luettu väärin ja painettu se vaihtoehto. Ääntä ei saa pois otettua. Olisi ainakin yhden pienempi tuo luku :D

Kumpi olisi yhden pienempi?

asuspoju

  • Käyttäjä
  • Viestejä: 640
  • Linux_Eki useissa verkkopeleissä, palveluissa jne.
    • Profiili
    • Youtube kanavani.
Vs: Linuxin viilaamista
« Vastaus #105 : 26.10.10 - klo:01.07 »
Ehkä on luettu väärin ja painettu se vaihtoehto. Ääntä ei saa pois otettua. Olisi ainakin yhden pienempi tuo luku :D

Kumpi olisi yhden pienempi?
No voi sun kun unhotu jotenkin viestistä :D Alempi.
http://www.youtube.com/user/LinuxEki
"Varkaat tulee ikkunoista"
http://tinyurl.com/ltspopin - Opinnäytetyöni LTSP-järjestelmästä

raips

  • Käyttäjä
  • Viestejä: 76
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #106 : 26.10.10 - klo:13.11 »
Eli tässä päästään juuri tähän virhepäätelmään, jossa käyttöjärjestelmä-sanan etymologia oletetaan johtuvan siitä, että se on järjestelmä, jota ihminen käyttää. Totta on, että pelkällä käyttöjärjestelmällä ei välttämättä tee yhtään mitään. Tarvitaan varusohjelmia, jotta käyttöjärjestelmästä saadaan ihmiselle hyötyä.

Tämä on kuitenkin lopulta vähän sama asia kuin sanoisi, että auton moottori ei ole moottori, koska tarvitaan lisäksi laatikko ja neljä pyörää, että tätä moottoria voitaisiin käyttää. Kuulostaisi kuitenkin vähintäänkin kornilta nimittää autoa "moottoriksi", vaikka moottori toden totta on täysin välttämätön osa autoa.

Tuo on hyvin autovertauksena selitetty. Täällä nyt ihmiset uskovat että auto on moottori, siitä puhutaan moottorina ja selitetään kuinka moottori ei ole moottori vaan auto on moottori.

Käyttöjärjestelmällä ei ole mitää kaksoismerkitystä yhtään sen enemää kuin moottorilla on autoon liittyen.
Jos asiantuntijan täytyy ymmärtää että tosi on epätosi niin eihän engineeri voi mitään sellasta hyväksyä!

Totta, ja ihmiset unohtavat että käyttöjärjestelmä on vain tekninen määritelmä ohjelmistolle mitä sen on sisällytettävä että sitä voidaan kutsua käyttöjärjestelmäksi. Monoliittinen kernel sisältää kaikki käyttöjärjestelmän määritelmän vaatimat toiminnot. Mikrokernel taas vain kaikkein kriittisimmän mutta vain pienen osan käyttöjärjestelmän toiminnoista. Suurin osa käyttöjärjestelmän toiminnoista on Server-Client arkkitehtuurissa irroitettu kernel toiminnoista omiksi palvelimiksi joita voidaan joko suorittaa kernel space tai user space -tiloissa. Kun palvelin kaatuu niin se ei kaada mikrokerneliä vaan ainoastaan ne prosessit jotka käyttivät sen palveluita. Mikrokernel kyllä pystyy pistämään niitä käyttävät prosessit pysäytetyksi, käynnistämään kaatuneen palvelimen uudelleen ja jatkamaan sitä tarvitsevien prosessien suoritusta.

No jopas. Kyllä ne ovat ihan muut asiat kuin sanan "käyttöjärjestelmä" määritelmä, jotka tekevät käyttäjän riippuvaiseksi markkinoista. Mitä vaikkapa yhteensopivuuteen tulee, se menee käytännössä yleensä ohjelmistojärjestelmän mukaan. Laite tai ohjelma, jolla on vaikkapa SUSE- ja RedHat -sertifikaatit ei välttämättä toimi pienellä äheltämiselläkään Ubuntussa, vaikka taustalla ruksuttaa käytännössä sama käyttöjärjestelmä.

Käyttöjärjestelmä on ainoana vastuussa siitä toimiiko vai ei kyseessä oleva laite vai ohjelmisto.
Nyt kun ruvetaan markkinoimaan Linuxin eri jakelupaketteja eri käyttöjärjestelminä, niin laitevalmistajat ja ohjelmistovalmistajat rupeavat paketoimaan ohjelmistonsa vain niille "käyttöjärjestelmille". Vaikka he eivät tee mitään sellaista teknistä asiaa minkä takia heidän ohjelmistonsa tai laitteensa eivät toimisi kaikilla Linux-käyttöjärjestelmän jakelupaketeilla.

Sitä varten on olemassa LSB-standardi joka määrittelee Linux-käyttöjärjestelmän, Glibc:n, Xorgin ja jopa työpöytäympäristöjen ym rajapintoja. Sillä taataan että ohjelmistopino mitä tarvitaan sovellusohjelman asennukseen ja käyttämiseen löytyy jokaisesta jakelusta joka LSB-standardia noudattaa.

Ohjelmisto- ja laitevalmistajien täytyy vain noudattaa LSB-standardia ja sen jälkeen lyödä tuotteensa vaatimuksiin LSB X.Y.z.

Se mikä saa RedHat Sertifikoidun laitteen tai ohjelmiston "toimimattomaksi" esim Ubuntussa on myös monesta muusta kiinni. Esimerkiksi jos ohjelmistosta on lähdekoodi saatavilla, niin se voidaan kääntää (ja tarpeen tullen) puukottaa että se toimii. Jos ohjelmisto on ohjelmoitu siten että se tarvii nimenomaan vain tietyt kirjastoversiot ja järjestelmäsovellukset että se toimii. Tällöin eri jakelupaketeissa kun on eri versioita samoista kirjastoista niin toiminta onkin vaikeampaa. Mutta koska usein kirjastot ja sovellukset on taaksepäinyhteensopivia niin riittää jo että luodaan linkkejä. Laitteen saa kyllä toimimaan niin kauan kuin lähdekoodin on avoinna että se voidaan oikeasti kääntää oman jakelijan tarjoaman Linux-käyttöjärjestelmän versiolle. Usein juuri tuollaiset laitteet ym on sidottu tiettyyn jakelupakettiin että ei tarvitse avata lähdekoodia eikä tarvitse pohtia koska eri jakeluissa Linux päivittyy kun voidaan vain keskittyä siihen yhteen jakelijaan joka esim päivittää Linuxia vain 3-6 kuukauden välein. Tuolloin he voivat myös tehdä sopimuksia jakelijan kanssa NDA:n (Non-Disclosure Agreement, salassapitosopimus) avulla että jakelija itse hoitaa ylläpidon mutta ei paljasta lähdekoodia muille.

Tämähän on muutenkin hiertänyt mm. Richard Stallmania koska Linux-käyttöjärjestelmä on lisenssoitu GPLv2:lla joka sallii suljetun lähdekoodin ajurien käyttämisen. RMS tahtoisi että Linux lisensoitaisiin GPLv2 or later, tai GPLv3 (or later) lisenssillä, koska se pakottaisi laitevalmistajat tekemään laiteajureistaan GPLv3 (tai uudemmista) yhteensopivia.

Mutta Linux on nyt lisenssoitu GPLv2 (only) lisenssillä ja jotta se voitaisiin muuttaa, täytyisi jokaisen tekijänoikeudet omistavan henkilön tehdä itse lisenssimuutos kaikista koodeista mitä käyttöjärjestelmään lahjoittanut. Tämä tarkoittaisi satoja tuhansia koodareita, tuhansia jos ei kymmeniä tuhansia yrityksiä ja työ olisi painajainen melkein kenelle tahansa. Ja jos ei tekijänoikeuksien haltija suostu (tai sitä ei tavoiteta enää) salli lisenssin vaihtoa, täytyisi ne kohdat ohjelmoida uudelleen.

Samalla on riskinä että moni laitevalmistaja alkaakin nipottamaan että eivät enää halua tukea RedHat ym suuria jakelijoita koska eivät voi "sertifikoida" laitteitaan niille kun eivät halua avata ajureidensa lähdekoodia koska pelkäävät kilpailijoiden varastavan heidän IP:nsä.

Tällä tavoin mm. Canonical ja Ubuntu-fanit rajoittavat Ubuntu käyttäjien oikeuksia ja vapauksia kun selittävät että Ubuntu on käyttöjärjestelmä ja Linux on vain sen Ubuntu käyttöjärjestelmän kernel. Ihmiset etsivät laitteita Ubuntulle eivätkä Linuxille. Laitevalmistajat katsovat että nyt kannattaa tehdä vain ajureita Ubuntulle ja muut jakelut jäävät ilman kun laitevalmistajat eivät tee standardien mukaiseksi ajureita tai paketoi niitä standardin mukaisesti.

Linux käyttöjärjestelmä määrää mitkä laitteet toimivat ja se myös määrää kaikkien matalan tason ohjelmistojen toiminnan. Tietenkin jos ohjelmisto tehdään jollekkin ohjelmistoalustalle tai korkeamman tason ohjelmistoihin riippuvaisiksi, se ei ole kytköksissä mitenkään Linux-käyttöjärjestelmään.

Ja taas on vapauden riistosta kun ohjelmistovalmistajat tarjoavat ohjelmistonsa esim valmiiksi käännettyinä deb paketteina tietyille jakelupaketeille ja niiden versioille. Jälleen kerran ne jotka selittää "Ohjelmisto vaatii Ubuntu käyttöjärjestelmän Xx.Yy version" antaa vallan suljetun lähdekoodin valmistajille kieltää muiden jakelijoiden asiakkaiden saamasta ohjelmistoja käyttöönsä. Jos ohjelmistovalmistaja tekee ohjelmistonsa LSB-standardin mukaiseksi, se toimii kaikissa jakeluissa jotka vaadittua LSB-standardin versiota tarjoavat.
Ohjelmistovalmistajalle (kuten laitevalmistajallekkaan) ei ole yhtään suurempi vaiva tehdä tuotettaan LSB:lle kuin tehdä se tietylle jakelupaketille ja sen versiolle. Ainoa ero on että LSB versiolla tuote toimisi paljon useammalla jakelulla ja se olisi vapautta kaikille, eikä vain Ubuntulle tai niille kenen jakelua käytetään.

Ja suljetun lähdekoodin ohjelmistovalmistajat pääsevät tuohon valtaan melkein vain sillä että väitetään Linux-käyttöjärjestelmän eri jakelupaketteja eri käyttöjärjestelmiksi. Markkinoidaan niitä, kuten Ubuntua, käyttöjärjestelmäksi ja eri käyttöjärjestelmäksi kuin muita jakelupaketteja ja Linuxia vain niiden kerneliksi.
Ihmiset eivät tiedä tuolloin vaatia ja äänestää lompakollaan että heidän täytyy saada laitteet ja ohjelmistot Linuxille, eikä sille jakelupaketille mitä käyttävät.

Linux-yhteisö on taistellut yli 15 vuotta siitä että se on saanut maineen laitevalmistajien ja ohjelmistovalmistajien parissa että Linux on luotettava käyttöjärjestelmä ja sitä kannattaa tukea koska kukaan käyttäjä ei ole riippuvainen yhdestäkään jakelijasta vaan se pysyy aina vapaana ja avoimena niin että laite- ja ohjelmistovalmistajat voivat tehdä sille tuotteensa ja ne toimii.
Yli 15-vuotta taisteltu siitä että on saatu laitteiden kylkeen Tux ja Linuxin maininta. Ja nyt jotkut haluaa repiä kaiken tuon tähän asti saavutetun irti vain sen takia että he saavat fanittaa Ubuntua tai käyttämäänsä jakelupakettia "ylivertaisena käyttöjärjestelmänä jonka kernelinä toimii Linux". He ovat toisten vapauden riistäjiä ja toimivat Linux- ja siten myös koko avoimen lähdekoodin yhteisöä vastaan.

Ja mitä sekin tarkoittaa että Canonicalin edustajat kiertävät maailmalla eri ICT alan messuilla ja lähestyvät laite- ja ohjelmistovalmistajia kertomalla että heidän kannattaa tehdä tuotteensa Ubuntulle koska Canonical on Linux maailman Microsoft. Herättääkö yhtään mitään ajatusta?

Meillä ICT- ja erityisesti Open Source -ammattilaisilla ei ole tapana alkaa haukkumaan toisia eikä nimittelemään ammattitaidottomaksi, sillä se ei yleensä johda mihinkään. Ei myöskään tässä tapauksessa.

Minä en tiedä sitten missä ICT- tai Open Source -ammattilaisten parissa työskentelet kun ihan tässä todellisessa maailmassakin käy niin että jos:

- Lääkäri kertoo sydämmen sijaitsevan päässä, häntä kutsutaan ammattitaidottomaksi.
- Autonasentaja kertoo auton olevan moottori, häntä kutsutaan ammattitaidottomaksi.
- Ala-asteen opettaja kertoo maailman olevan litteä ja auringon kiertävän maapalloa, häntä kutsutaan ammattitaidottomaksi.
- Yliopiston opettaja kertoo Ubuntun olevan käyttöjärjestelmä ja Linux vain sen kerneli, häntä kutsutaan ammattitaidottomaksi.

Nimittäin minä en ole haukkunut sinua yhtään. En edes sanonut sinua ammattitaidottomaksi. Minä _kysyin_ että kutsuisitko sinä ammattitaitoiseksi sellaista autonasentajaa tai ammattikoulua joka opettaa auton olevan auton moottori? Sinä siis itse sanoisit heitä ammattitaidottomiksi ja sitähän te nyt sitten olette (vai onko OSA:ssa muitakin?). Nimittäin OSA:n koulutus eroaa yliopistojen käyttöjärjestelmäkurssien koulutuksesta että sitä pitäisi tehdä päätelmä että kumpi on väärässä, yliopistot vai OSA?

Lainaus
Minä en ole vielä yli 25 -vuotisen kansainvälisen IT-urani aikana nähnyt ihmistä joka pystyisi hallitsemaan kaiken IT alalla, joten jokainen meistä erikoistuu omaan alueeseensa. -ja nykyään erikoistutaan yhä enemmän ja enemmän.

Sieltä se tuli "minä ja X määrä vuotta" ja "kansainvälinen suuri mahtava urani".

Lainaus
Ehkäpä nimimerkki "raips" on erityisesti keskittynyt Linuxiin ja muihin käyttöjärjestelmiin ja niiden filosofiaan käyttöjärjestelmänä ja hänellä lienee tästä vakuudeksi myös jokin pätevyystodistus. Tätä emme voi tietenkään nyt tässä todistaa.

Että oikein pätevyystodistusta peräät että ilman sitä ei sanotulla asialla ole mitään merkitystä. Oikein suomalaisen kulttuurin olet kyllä itseesi imenyt että ihminen ei ole mitään ilman että sillä on tohtorin hattua ja vähintään viittä väitöskirjaa hyllyssään, vasta silloin hän pystyy kertomaan että miten päin siemen täytyy maahan painaa että siitä kasvaa puu.

Minäpä toistan jälleen kerran. Sillä ei ole mitään merkitystä kuka sanoo ja mitä sanoo vaan sillä että mitä hän sanoo. Jos minä olen suorittanut viisi tohtorin väitöstutkintoa ja yksi niistä on käyttöjärjestelmistä, niin tekeekö se minun puheistani jotenkin viisaampia kuin sen joka ei ole vielä edes suorittanut ensimmäistä yliopistotutkintoaan tai joka ei ole vielä käynyt ammattikoulusta mutta tietävät silti että Linux kernel on käyttöjärjestelmä eikä mikään "käyttöjärjestelmän kernel"? Entä jos olisinkin juuri viime viikolla käynyt läpi käyttöjärjestelmäkurssit joissa on opettanut viisi yli 30-vuotta käyttöjärjestelmistä koulutusta pitäneet professorit ja he sanovat että Linux kernel on käyttöjärjestelmä eikä siihen kuulu mitään muuta. Ja he ovat käyttäneet oppilaiden koneissa Ubuntua ja selittäneet että kuinka ihmiset luovat vääriä mielikuvia käyttöjärjestelmistä. Tekisikö se minusta taas viisaamman vai tyhmemmän?

Lainaus
Näinollen minä vetäydyn tästä keskustelusta, jossa yksi uhoaja näyttää haluavan omilla mielipiteillään keskipisteeksi ja maailman pätijäksi kaikessa. Yleensä se kuitenkin tehdään esimerkiksi väittelemällä ko. aiheesta tohtoriksi.

Sinä et kyennyt yhteen ainoaankaan kysymykseen HURD:ista ja Linuxta vastaamaan. Et kyennyt yhtään perustelemaan teknisesti käyttöjärjestelmän toimintaa että miksi Ubuntu olisi käyttöjärjestelmä. Tuollaistako koulutusta OSA sitten antaa että ei tarvitse tekniikkaa tuntea?

Minä en ole mikään "25-vuotisen kansainvälisen uran" avulla pyrkimässä keskipisteeksi ja pätijäksi. Etenkään "kaikessa", joka sinun pitäisi nyt todistaa. Vai tarkoitatko "kaikessa" vain tätä ketjua vai kaikkea?

Useimmat suomalaiset eivät osaa väitellä. Nimittäin väittely on omien mielipiteiden perustelemista. Se ei ole tappelemista tai se ei ole olkinukkien rakentamista. Tässä tapauksessa sinun olisi täytynyt kyetä selittämään miten HURD eroaa Linuxista ja mitä ne ovat. Mutta sinulla ei ollut edes teknistä tietoutta noista kahdesta joten luikit karkuun heittäen vain pätijän huudot perässäsi 25-vuoden kokemuksella. Taisi kalikka kalahtaa.

Lainaus
En ota enää kantaa siihen kuka on oikeassa ja kuka on väärässä. Sen sijaan jokainen vetäköön omat johtopäätöksensä keskustelun aiheiden oikeellisuudesta, Linuxista, Ubuntusta sekä keskustelijoiden ammattitaidosta.

Sen sijaan että olisit perustellut kantasi tekniikasta, rakensit olkinukkeja ja vetoat lopuksi muiden tunteisiin ja mielipiteisiin jotka saattavat olla pelkästään markkinoinnin aiheuttamista mielikuvista muodostettuja.

Mä en ole nähnyt yhtään asiantuntijaksi itseään tituteeleeravaa ja vielä kehuskelevan yli 25 vuotista uraa joka ei silti edes erota käyttöjärjestelmiä markkinoinnista :D

Tuollaisia näkyy, ikävä kyllä. He puhuvat nimenomaan markkinoinnin suulla koska heidän oma leipänsä on kiinni siitä yrityksestä jota edustavat. Heille on tärkeämpää saada vain asiakkaita (tai lukijoita lehdilleen) eikä se että onko heidän tietonsa totta vai ei. Tämä usein näkyy jo siitä että tituuleretaan itsensä ylemmäksi (kokeneemmaksi ym) kuin muut tai että heidän tarjoamansa koulutuksensa vasta tekee ihmisistä raudanlujia ammattilaisia. Aivan normaalia markkinointia missä pitää vaikka huijata että saadaan oma leipä pöytään.

Hah ;D! Tai sitten: Kuva kertoo enemman kuin tuhat sanaa, ja raips kertoo enemman kuin tuhat kuvaa.

Olen syyllinen, mutta mitä siitä voi sanoa että kirjoittaa? Yritän perustella asiat laajemmalti, mutta... Ehkä pitäisi vain käyttää jotain Twitter tapaa ja pistää 140 merkkiä yksinkertaisesti "Linux kernel on käyttöjärjestelmä ja Ubuntu on sen jakelupaketti". Mutta sehän on todella hyvin perusteltu ja muut varmaan oppivat siitä todella paljon?

Monessa tämänkin ketjun kirjoituksessa on erittäin paljon tekstiä, mutta siihen nähden vähänlaisesti asiaa.

Käsitän varmaan oikein että viittaat tuolla minun viesteihin?

Lainaus
Tämä kuva tosiaan tiivistää olennaisen tästä keskustelusta:
http://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/OS-structure2.svg/1000px-OS-structure2.svg.png

Tiivistää ihan hyvin mutta tuossakin on virheitä mm. IPC:n toimesta. Mutta pääidea on oikein (kernel space, user space, microkernel/servers jne).

Mahtava polli. Mistä lähin linuxi on mikroydin ollut?

Eihän se olekkaan jos ei katsota MkLinux -kehityshaaraa, missä ideana on tehdä Linuxista Server-Client arkkitehtuurin käyttöjärjestelmä Monoliittisen sijasta. Kuitenkin täysin sama käyttöjärjestelmä mutta arkkitehtuuria muutettu. (Ei ole kyseessä forkki millään tavoin).

Mutta täytyy muistaa että tuon version nimi on MkLinux, kuten on myös SELinux (joka ei ole myöskään forkki).

MkLinux on muuten Applen aloittama projekti, ja siitä projektista Apple haki oppia kehittääkseen XNU-käyttöjärjestelmän. Ja harva tietää että XNU on Mac OS X:n ja iOS:n käyttöjärjestelmä. Apple haki Server-Client arkkitehtuuriin oppia Linuxista ja sen jälkeen kehitti XNU-käyttöjärjestelmän Mach 3.0 Mikrokernelin varaan. Otti FreeBSD:stä tietyt toiminnot (sekin on monoliittinen käyttöjärjestelmä) palvelimiksi ja sitten kehitti itse vähän lisää. Lopputuloksena oli sitten XNU ja sitten Mac OS X:n käyttöliittymään taas otettiin paljon ideoita ja koodia NeXT:istä. Lyhyesti tuo noin siis. Linuxilla on siis ollut hyvin merkittävät vaikutukset koko Mac OS X:n toimivuudelle. Ja kuinka moni tietää että XNU on avoimen lähdekoodin käyttöjärjestelmä?

Mutta tuosta äänestyksestä näkee että nyt 34,3% kuvittelee että Linux on mikrokernel. Vain sen vuoksi että he uskovat sen että Linux on vain kernel ja käyttöjärjestelmä on kernel + X.
34,3% tietää vain mitä markkinointi ja GNU propaganda kertoo. He eivät tiedä tekniikkaa (minkä olisi muuten tuo mikrokernel asia kertonut jo heti).

Joten mitä voidaan oppia tästäkin asiasta demokratiasta? Olisiko 34,3% nyt oikeassa ja 65,7% on väärässä vain sen vuoksi että se on enemmistö? Vai olisiko 65,7% oikeassa koska Linux on monoliittinen kernel joka on yhtä kuin käyttöjärjestelmä?

Minua ei kiinnosta nuo prosenttiluvut, vaan että ymmärtääkö ihmiset mikä on monoliittisen ja Server-Client käyttöjärjestelmäarkkitehtuurien ero?
(OSA:lla voisi olla oma sanansa tähän asiaan. (Sitä kysyin kahteen kertaan eikä hän kyennyt kertomaan mitään tekniikasta). Mutta pitäisikö hänen tyytyä nyt sitten tuohon 65,7% enemmistöön että hän on väärässä vai pitäisikö hänen kyetä perustelemaan (väittelemään) kantansa miksi Linux on kernel ja miksi HURD on kernel ja GNU/Linux ja GNU/Hurd ovat käyttöjärjestelmiä, tai kuten hän sanoi, että Ubuntu on käyttöjärjestelmä?

raips

  • Käyttäjä
  • Viestejä: 76
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #107 : 26.10.10 - klo:13.11 »
Asiaa voi ajatella silti niinkin, että eihän esimerkiksi Ubuntu lakkaa olemasta käyttöjärjestelmä vaikka siitä otettaisi Gnome pois. Ubuntu nimenä vain kertoo, minkälaisilla lisukkeilla Linux kyseisessä jakelupaketissa tulee.

Siis Linux ei lakkaa olemasta käyttöjärjestelmä vaikka Ubuntusta otetaan GNOME pois. Ubuntu on Canonicalin omistama tavaramerkki, brändi eli nimi, jonka idea on luoda käyttäjille mielikuvia ja tietoa Canonicalin tuotteistamisesta.

Ubuntu on Linuxin jakelupaketti eli tietyllä tavalla tuotteistettu ohjelmistojärjestelmä joka käyttää Linux-käyttöjärjestelmää. Ubuntu on säädetty tietyllä tavalla oletuksena, että se on helppo ottaa käyttöön. Eli tämä tarkoittaa että on laitettu tietty taustakuva työpöydälle, valikot on lajiteltu tietyllä tavalla, WWW-selaimeen on laitettu tietyt kirjanmerkit oletuksena (Ubuntu forums, Canonical jne mitä nyt mainostuloihinkin tarvitaan kuten Jamendo), GNOME:lle on laitettu tietty teema. GNOME on valittu oletustyöpöytäympäristöksi (tai ainoaksi) jne.
Eli tarkoittaa myös sitä että mitä ohjelmistoja on paketoitu asennuslevylle, mikä asennusohjelma on käytössä, kuinka ohjelmistot on jaettu paketteihin. Millä tavalla ohjelmistot on käännetty paketeiksi ja mitä pakettivarastoja lopulta siis voidaan käyttää (riippuen ohjelmistojen kääntötavasta) ja mistä ne voidaan ottaa käyttöön. Ja paljon kaikkea muuta kuin itse tekniikkaa. Jakelupaketti on melkein vain tuotteistamista tietyllä tavalla.

Sen vuoksi Linux-käyttöjärjestelmää käyttäviä ohjelmistojärjestelmiä alettiin kutsumaan jakelupaketeiksi (distributions) koska kuka tahansa pystyi paketoimaan avoimen lähdekoodin ohjelmistot omilla halutuilla säädöillä, niin että muut pystyivät vain lataamaan jakelupaketin (levykkeet siihen aikaan) ja asentamaan koko ohjelmistojärjestelmän. Säästääkseen aikaa ja vaivaa kootakseen koko ohjelmistojärjestelmän itse. Jos jakelupaketteja ei olisi, joutuisi jokainen Linuxia käyttävä kokoamaan ohjelmistojärjestelmän itse LFS (Linux From Scratch) menetelmällä. Se olisi viikkoja, jos ei kuukausia kestävä prosessi. Kuvitelkaa mikä työ kun  jokainen ohjelmisto teidän täytyisi päivittää itse, ettekä voisi vain pakettihallinnasta ruksia päivityksiä ja klikata "Apply" tai ette voisi sitä kautta asentaa niitä.

Jakelupaketti vaikuttaa siis paljonkin siltä että mikä on pakettihallinnassa saatavilla. Sitä se pääasiassa onkin että jakelija huolehtii että ohjelmistot on valmiiksi käännettyjä paketteja palvelimilla ja käyttäjät voivat sitten vain asennella niitä helposti.

Siitä myös muodostuu Upstream <-> Downtream malli. Eli ohjelmistokehittäjät ovat Upstream, mistä jakelijat eli Downstream ottavat lähdekoodin ja paketoivat sen ja laittavat pakettivarastoihin (repositories) mistä jakelupakettien käyttäjät saavat ne itselleen.

Upstream <-> Downstream kuuluisi olla symbioosissa. Eli muutokset, parannusehdotukset ym kulkevat aina takaisin Upstreamiin missä tapahtuu kaikki kehitys.
Mutta tietyistä syistä huolimatta jotkut jakelijat (kuten Canonical) eivät halua edes auttaa yhteisöä, eivätkä palauta parannuksia upstreamiin. Tällöin kaikki parannusehdotukset ym jäävät Downstream <-> Käyttäjä välille. Käyttäjistä tuntuu että jakelija tekee hyvää työtä, mutta todellisuudessa koko avoimen lähdekoodin yhteisö kärsii asiasta.

Se on sallittua että tilanne olisi:
Upstream -> Downstream -> Käyttäjä
Mutta se ei ole oikein että tilanne on
Upstream -> Downstream <-> Käyttäjä
Kaikkein parasta on kun tilanne on
Upstream <-> Downstream <-> Käyttäjä.
Tai että se on peräti:
Upstream -> Downstream -> Käyttäjä -> Upstream (muodostuu siis lenkki).

Canonical on nyt nimenomaan "Upstream -> Downstream <-> Käyttäjä" -tilanteessa. Canonical edesauttaa vain itseään, ja Ubuntun käyttäjät edesuattavat vain itseään, mutta ei avoimen lähdekoodin yhteisöä.

Melkein pelkästään tuon takia Ubuntu on hyvin vahingollinen Linux-yhteisölle koska kun Ubuntu hankkii käyttäjiä, se sitoo ne itseensä markkinoinnillaan ja toteutuksillaan. Canonical jopa pyrkii kaiken heidän kehittämiin ohjelmistoihin (Bazaar jne) hankkimaan tekijänoikeudet, joka sallii Canonicalin sulkea lähdekoodi tulevaisuudessa. Tämän vuoksi FSF (Free Software Foundation) ei hyväksy Canonicalin kehitysmallia ja lisenssointia.

Asiaa voi ajatella myös niin että jos Ubuntusta karsitaan yksitellen osia pois, niin missä vaiheessa se lakkaa olemasta käyttöjärjestelmä? Itse sanoisin että tämä tapahtuu jo ennen kuin ollaan karsimassa itse Linux-ydintä.

Linux kernel ei lakkaisi olemasta käyttöjärjestelmä tuolloinkaan. Ainoastaan Ubuntu lakkaisi olemasta käyttökelpoinen tietyissä asioissa. Niin kauan kuin on käynnistyslataaja joka käynnistää käyttöjärjestelmän suorituksen niin käyttöjärjestelmä toimii. Tietenkin jotkut BIOS:it tai EFI:t osaavat etsiä suoraan käyttöjärjestelmän imagen ja käynnistää sen suoritusen ilman käynnistyslataajaa, mutta kaikki Linuxin jälkeen käynnistyvät prosessit ovat käyttöjärjestelmään kuulumattomia.
Linux-käyttöjärjestelmän ensimmäinen käyttöjärjestelmän ulkopuolinen prosessi joka käynnistyy on INIT. Joka sitten ottaa vastuulleen käynnistää muita järjestelmäsovelluksia kuten käynnistys-scripteissä on säädetty.
Kaikki muut prosessit kulkevat jatkuvasti INIT:in kautta.

Edelleenkin pelkästään Linux voidaan laittaa sulautettuun järjestelmään ja käyttöliittymänä toimii fyysiset ohjaimet ja joku valotaulu. Se on vain ohjelmoijasta kiinni haluaako hän helpottaa työskentelyään ja ottaa mukaan jotain muita ohjelmistoja eikä tehdä kaikkea suoraan käyttöjärjestelmään. Nimittäin ohjelmoimalla oman sovelluksen joka suorittaa asioita ja käyttää vain käyttöjärjestelmää on helpompaa kuin ohjelmoida käyttöjärjestelmään halutut toiminnot.

Kyse on ohjelmistopinosta ja mitä korkeammalle tasolle mennään niin sen helpompaa on kun voidaan käyttää alempien tasojen toimintoja, eikä itse tarvitse luoda kuin sellaisia mitä ei ole olemassakaan.

Onko bensa sitten auton osa, autolla kun ei tee mitään ilman bensaa???

GNU- ja nähtävästi monien Ubuntu-fanien (myös tuo >30%) mukaan niinhän se olisi.
Aivan kuten tietokoneella ei tee mitään ilman sähköä, joten sähkövoimala on osa tietokonetta.

Vaikka auto ei kulje ilman polttoainetta (bensiini, diesel, sähkö ym) niin ne eivät ole osa autoa. Auto on auto ilman niitäkin, vaikkakin toimimaton.

Vaikka tietokone ei toimi ilman sähköä niin sähkö ei ole osa tietokonetta. Tietokone on tietokone ilman sitäkin, vaikkakin toimimaton.

Vaikka puukiuas ei toimi ilman klapeja, niin klapit eivät ole osa puukiuasta. Puukiuas ei vain lämpene ilman klapeja.

Silti ilman autoa me voimme käyttää polttoainetta erilaisiin asioihin, kuten akrigaatin käyttämiseen että saamme sähköä.
Ilman tietokonetta voimme käyttää sähköä vaikka valaisemaan talon.
Ja ilman kiuastakin me voimme käyttää klapeja lämmmittämään talon.

En sanoisi että suorittaa, korkeintaan käynnistää.

Käynnistää suorituksen ja prosessori sitten laskee sovelluksen laskut. Käyttöjärjestelmä operoi kaikkia prosesseja että mikä prosessi saa kuinkakin monta kellojaksoa prosessorilta.

Ehkä joitakin auttaisi ymmärtämään käyttöjärjestelmä jos se kuvitellaan kuin vanhan ajan puhelinoperaattoriksi jotka istuivat puhelinkeskuksissa. Puhelinoperaattori vastasi puheluun, kuunteli että kenelle soittaja haluaa puhua ja sen jälkeen puhelinoperaattori kytki puhelun vastaanottajalle. Kun puhelu loppui, irroitettiin taas piuha.
Yksi operaattori kykeni käsittelemään vain hyvin rajallista määrää puheluita (prosesseja). Ja mitä useampaa oikeastaan piti operoida, niin sen hitaammaksi kävi vastata ja sulkea yhteyksiä.

Nykyäänhän noita tehtäviä hoitaa enään yrityksien puhelinkeskuksissa olevat henkilön joihin kannattaa soittaa jos ei tiedä kenelle pitäisi soittaa yrityksessä. Yhdysvalloissa vielä on kuitenkin puhelinoperaattoreita maalinjoillekin että jos antaa soida tarpeeksi kauan niin saa operaattorin langan päähän. On olemassa joitakin matkapuhelinvalmistajia jotka tarjoaa senioripuhelimia mitkä toimii siten että puhelimessa on vain yksi nappi ja sitä painamalla puhelin soittaa operaattorille jolle seniori voi kertoa että kenelle haluaa soittaa ja operaattori yhdistää. Ei joudu opettelemaan laitetta ja saa aina yhteyden. Joudutaan vain kertomaan operaattorille ne tietyt numerot ja henkilöt (poika, tytär jne).

Mutta käyttöjärjestelmä toimii juuri tuollaisena että se prosessoi kaikkia prosesseja että ne saavat suoritusaikaa prosessorilta. Se järjestelee että mille ytimelle mikäkin prosessi saa aikaa ja kauanko, mikä prosessi on seuraavaksi ja kauanko se saa jne. Minkä verran keskusmuistia prosessi saa ja missä se sijaitsee. Saako se lisää keskusmuistia ja kun prosessin suoritus loppuu niin keskusmuisti vapautetaan taas.

Käyttöjärjestelmä on myös vastuussa siitä että saako mikäkin prosessi kommunikoida millekkin prosessille. Eli jos sovellus haluaa ottaa yhteyden tiettyyn ohjelmistokirjastoon, täytyy käyttöjärjestelmän hyväksyä se ja avata "yhteys" niiden välille. Ja jälleen kerran käyttöjärjestelmän täytyy huolehtia että kirjasto ladataan tiedostojärjestelmästä keskusmuistiin ja se saa suoritusaikaa jne.

Eli ohjelmisto, joka välittää informaatiota vain toisten ohjelmistojen välillä (kuten kirjastot) ei kuulu käyttöjärjestelmään (tämän määritelmän mukaan).

Siis käyttöjärjestelmä huolehtii siitä että sovellus saa yhteyden toiseen sovellukseen tai kirjastoon. Ja kirjasto sisältää toimintoja joita sovellus itse voi hyödyntää.

Eli jos on ohjelmistokirjasto A joka osaa vaikka pakata ääntä tehokkaasti, niin ohjelmistokehittäjän ei tarvitse itse kirjoittaa sovellukseensa B1 äänenpakkauksen toimintoa tai omaa ohjelmistokirjastoa B2 joka sisältäisi tuon äänenpakkauksen, vaan ainoastaan kutsuu B1:sta tuota A:ta. Käyttöjärjestelmä varmistaa että toimintoon on aikaa (tai oikeus) ja käynnistää koko operaation ja vahtii sen toimintaa että muutkin prosessit toimivat.

Se että B1 tarvitsee A:n, ei tee A:sta mitenkään B1:n osaa tai käyttöjärjestelmän osaa.

Jos käyttäjärjestelmä on A, niin ohjelmistokirjastoja voisi olla B1, B2, B3. Ja sovellusohjelmistoja voisi olla C1, C2, C3, joista C2:lla ja C3:lla on omat ohjelmistokirjastot (C2a, C2b, C3a, C3b). Niin meillä olisi sitten sellainen kokonaisuus kuin

A+B1+B2+B3+C1+C2+C2a+C2b+C3+C3a+C3b

A on kaikkein välttämättömin kaikille. Se mahdollistaa B-C:n toiminnan.
Vaikka C2 vaatii toimiakseen A:n sekä B2:n ja B3:n niin B2 tai B3 eivät ole osa A:ta tai C2:sta.

Tuo A-C pino on ohjelmistojärjestelmä. Ja tuo ohjelmistojärjestelmä voisi olla saatavilla viideltä eri taholta. Jokainen tekisi omat säädöt että kuinka C1, C2 ja C3 toimivat oletuksena. Nuo viisi olisi tuolloin viisi eri jakelua. Ja kun jokainen jakelija on vapaa lisäämään ohjelmistokirjastoja tai sovellusohjelmia sekä säätämään niiden oletussäätöjä niin siinä tulee nopeasti hyvin erilaisia ohjelmistojärjestelmiä mitä erilaisimpiin tilanteisiin mihin ne olisi helposti asennettavissa jokaisen jakelijan mukaisesti. Tai sitten jokainen käyttäjä voisi itse ladata jokaisen (A, Bx, Cx jne) ohjelmiston itse ja kääntää ja virittää toimimaan.

Onko MS-DOS käyttöjärjestelmä? Onko UNIX käyttöjärjestelmä? Molempiin näihin kuuluu osia jotka tekevät muutakin kuin kommunikoivat laitteiden kanssa tai jakavat ohjelmille muistia.

Kukaan ei kiellä ohjelmoimasta käyttöjärjestelmään toimintoja jotka eivät käyttöjärjestelmän määritelmään kuulu. Mutta se on vain typerää lisätä jotain käyttöjärjestelmään mitä ei siinä tarvita. Se tuo vain ongelmia.

Tästä on erinomainen esimerkki Microsoftin tapa lisätä käyttöjärjestelmiinsä toimintoja joita kukaan muu ei koskaan olisi tehnyt.

Ja tämä on juuri se eräs ratkaiseva asia joka sai alunperin koko Server-Client arkkitehtuurin kehityksen käyntiin, nimittäin alunperin käyttöjärjestelmät olivat kaikki monoliittisia. Niiden koko pysyi hyvin hallittavana ja toiminta oli varmaa. Mutta kun laitteiston tarjoamat rajoitukset (keskusmuisti ja tallennustila) katosivat, lähti ns. mopo käsistä ja käyttöjärjestelmät alkoivat kasvamaan. Sen sijaan että käyttöjärjestelmä oli enää 32-64 tuhatta riviä koodia, ne sisälsivätkin miljoonia rivejä.

Yksi bugi saattoi kaataa koko käyttöjärjestelmän ja samalla koko ohjelmistojärjestelmä kaatui.

Syntyi idea että pilkotaan monoliittinen käyttöjärjestelmä osiin, yksinkertaiseen mikrokerneliin ja erillisiin servereihin.

Idea oli sama kuin laivoissa on erilliset osastot. Et sinä halua että kun kapteenin vessa hajoaa niin laiva uppoaa koska pohjaventtiilit ja kapteenin vessa on kytköksissä toisiinsa.

Erillinen mikrokerneli joka on hyvin yksinkertainen, vain muutamia tuhansia rivejä koodia. Ja sitten jokainen käyttöjärjestelmän toiminto (muistinhallinta, tiedostojärjestelmät, laiteajurit, I/O ym) tulivat omiksi palvelimiksi. Nuo palvelimet voitiin joko pitää kernel spacessa tai sitten siirtää user space puolelle muiden ohjelmistojen sekaan. Kuitenkin kaikki palvelimet suojattiin muilta palvelimilta ja muita prosesseilta että ne ajettiin supervisor moodissa ja ne olivat suojattuina prosesseina mikrokerneliin joka operoi niitä.

Sitten sovellukset itsessään käytti näitä palvelimien tarjoamia käyttöjärjestelmäpalveluja itse.

Mutta kukaan ei kieltänyt ohjelmoimasta vaikka WWW-selainta (tai sellaisen tarvitsemia kirjastoja) osaksi käyttöjärjestelmää omiksi palvelimiksi. Muut sovellukset sitten pystyivät mukamas helposti hyödyntämään näitä kirjastoja kun piti jotain HTML:ää parsia tai javascriptiä suorittaa.

Mutta heti kun löytyi haavoittuvuus tuollaisista toiminnoista, niin koodi suoritettiin käyttöjärjestelmän oikeuksin ja kaikki prosessit olivat vaarassa.

Kukaan ei kiellä työntämästä käyttöjärjestelmään muita toimintoja kuin vain prosessinhallinnan, muistinhallinnan jne. Mutta se ei ole millään tavoin järkevää.

Monoliittisen käyttöjärjestelmän kohdalla se on vain helpompaa pitää puhtaana ja ylläpitää käyttöjärjestelmän toimintoja. Server-Client arkkitehtuurissa taas se on hankalampaa jo saada mikrokernel toimimaan. Mutta teoriassa Server-Client on turvallisempi kuin monoliittinen, vaikkakin käytännössä eroa ei ole.

Vakauskin saadaan monoliittisessa käyttöjärjestelmässä sellaiseksi että yhden palvelun kaatuminen (esim tiedostojärjestelmä tai laiteajuri) ei kaada koko käyttöjärjestelmää. Tuohon auttaa jo paljon modulaarisuus mutta voidaan tehdä sisäisiä toimintoja jotka eristää kaatuvat palvelut muista monoliittisen käyttöjärjestelmän toiminnoista.

Server-Client arkkitehtuurin käyttöjärjestelmän yksi akilleen kantapäistä on ollut nopeus. Se ei salli yhtä nopeaa suoritusta kuin monoliittinen kun muodostuu ns. IPC overhead.

Lainaus
UNIXissa on erikseen käyttöjärjestelmän ydin, eli kerneli. Linux on ydin, eli kerneli, (katso vaikka kernel.org), mutta minkä ydin se on?

Unix (Unix koostuu monesta käyttöjärjestelmästä, se on vain tapa ja filosofia tehdä käyttöjärjestelmä, ei itse käyttöjärjestelmä. Linux on Unixin uusi tuleminen) on monoliittinen käyttöjärjestelmä.

Unix voidaan toteuttaa joko monoliittisen tai server-client arkkitehtuurin mukaisena käyttöjärjestelmänä. Unix on määritelmä järjestelmäkutsuja mitä täytyy käyttöjärjestelmän toteuttaa. Unix-yhteensopivuus voidaan tarjota monella muulla tavalla myös.

Esimerkiksi Microsoft lisäsi NT-käyttöjärjestelmään Unix-yhteensopivuuden, uskoen että voisi kaapata Unix-palvelimilta markkinat. Toisin vain kävi nimittäin se ei toiminut kunnolla. Ja Linux veikin markkinat Unix-yhteensopivuutensa vuoksi.

Linux on kyllä kernel mutta se ei ole mikrokernel. Ihmiset sekoittavat että käyttöjärjestelmä on aina kernel + X. Mutta eivät tiedä käyttöjärjestelmien historiaa eivätkä toimintatekniikkaa joten uskovat helposti aina että koska Linux on kernel niin se ei voi olla käyttöjärjestelmä. Koska eivät tiedä että monoliittinen kernel sisältää kaikki käyttöjärjestelmän toiminnot itsessään, kun taas Server-Client arkkitehtuurissa käyttöjärjestelmä koostuu mikrokernelistä ja palvelimista. Server-Client arkkitehtuurissa mikrokernel on "vain kernel" ja käyttöjärjestelmä on (mikro)kernel + X, missä X on palvelimet.

Ja tuolla mitä Fri13 lainaa on Andrew S.Tanenbaumin "Modern Operating Systems" kirjasta, joka on eräs yliopistojen peruskirja käyttöjärjestelmien kursseilla.

Käyttöjärjestelmät eivät ole mikään yksinkertainen aihe, eikä todellakaan sellainen mistä voidaan tehdä vain lyhyt ja kattava selostus. Faktan voi sanoa suoraan "Linux kernel on käyttöjärjestelmä ja Ubuntu on sen käyttöjärjestelmän jakelupaketti" ja "Ubuntu ei ole käyttöjärjestelmä vaan Linux kernel on käyttöjärjestelmä". Mutta kun monikaan ei ymmärrä miksi niin on niin se tuottaa paljon riitaa kun aletaan inttämään markkinoinnin luomilla mielikuvilla että Ubuntu on käyttöjärjestelmä tai että Linux on "vain kernel" ja käyttöjärjestelmä on jotain muuta.

Jos haluaa olla rehellinen ja kunnioittava koko avoimen lähdekoodin (etenkin Linuxin) yhteisöä kohtaan, niin silloin täytyy pyrkiä siihen että kaikki laiteajurit ja ohjelmistot tehdään Linuxille ja LSB-standardin mukaiseksi. Ubuntulle ei pidä tehdä yhtään mitään, eikä asia muutu vaikka olisi jokin toinen jakelupaketti kyseessä. Nimittäin se on kaikkien Linux käyttäjien oikeuksien riistämistä ja vapauden sortoa.

Jos haluaa avoimen lähdekoodin ohjelmistoille käyttäjille ja etenkin Linuxille, niin älkää puhuko mistään "Ubuntu-käyttöjärjestelmä":stä, nimittäin sellaista ei ole eikä koskaan tule olemaan jos ei Canonical nimenomaan ohjelmoi omaa käyttöjärjestelmää ja kutsu sitä Ubuntuksi. Mutta mitä luulette, kauanko Canonicallilla kestäisi saada oma käyttöjärjestelmä sille tasolle missä Linux on nyt? Kuka haluaisi alkaa tukemaan jotain Canonicalin käyttöjärjestelmää kun Linuxia kehittää tuhannet yritykset ja sadat tuhannet kehittäjät?

Linux pyörittää supertietokoneita, ADSL-modeemeja, Internetin runkoreitittimiä, älypuhelimia, televisioita, pöytäkoneita ym.

Vaatikaa Linux-yhteensopivuutta, älkää puhuko mitään Ubuntustua kun täytyy puhua käyttöjärjestelmistä.

eelis

  • Käyttäjä
  • Viestejä: 187
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #108 : 26.10.10 - klo:14.14 »
hyvaa tekstia raipsilta. Kiitos.

Fri13

  • Käyttäjä
  • Viestejä: 465
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #109 : 26.10.10 - klo:19.17 »
Hyvää settii!

Tuli tosta nyt mielee mulla että onko kukaan GNU/linux fani ja ubuntua käyttikseksi kutsuvat tulleet ajatelleeks että jos ubuntu on käyttis niin eihän silloinkaan GNU/linux voi olla yhtää sen enempää käyttis kuin linux?
Tai jos GNU/linux on käyttis niin sitten ubuntu ei voi olla käyttis kuten ei linuxikaan?

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #110 : 26.10.10 - klo:22.28 »
Jos haluaa olla rehellinen ja kunnioittava koko avoimen lähdekoodin (etenkin Linuxin) yhteisöä kohtaan, niin silloin täytyy pyrkiä siihen että kaikki laiteajurit ja ohjelmistot tehdään Linuxille ja LSB-standardin mukaiseksi.

Miten tehdään laiteajuri LSB-standardin mukaiseksi, ja miten tehdään kaikki ohjelmistot Linuxille?

Nimittäin se on kaikkien Linux käyttäjien oikeuksien riistämistä ja vapauden sortoa.

Ja nämä "Linux käyttäjät" ovat siis niitä ohjelmia jotka tekevät järjestelmäkutsuja?

Tuli tosta nyt mielee mulla että onko kukaan GNU/linux fani ja ubuntua käyttikseksi kutsuvat tulleet ajatelleeks että jos ubuntu on käyttis niin eihän silloinkaan GNU/linux voi olla yhtää sen enempää käyttis kuin linux?
Tai jos GNU/linux on käyttis niin sitten ubuntu ei voi olla käyttis kuten ei linuxikaan?

En usko että kovinkaan moni on tullut tuollaista ajatelleeksi, sillä tavallisilta terveiltä ihmisiltä puuttuu se mielisairaus joka tekee ajatuksista tuolla tavalla virheellisiä.

Fri13

  • Käyttäjä
  • Viestejä: 465
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #111 : 26.10.10 - klo:22.59 »
En usko että kovinkaan moni on tullut tuollaista ajatelleeksi, sillä tavallisilta terveiltä ihmisiltä puuttuu se mielisairaus joka tekee ajatuksista tuolla tavalla virheellisiä.

Sä et totakaan edes tajua.

1 Linux
2 GNU
3 Ubuntu

1=käyttis
1+2=käyttis
1+2+3n=käyttis

Onko ristiriitaista? No ei sun mielestä koska sähän et mielestäs ole mielisairas vaan ihan loogista!

Jos 1 on käyttis niin 1+2 on käyttis + GNU ja 1+2+3n = käyttis + GNU + ohjelmat eli ubuntu.

Jos 1=käyttis niin 1+2 ei voi olla käyttis vaan käyttis + GNU ja 1+2+3n ei voi olla käyttis vaan käyttis+GNU+ohjelmat
Jos 1+2=käyttis niin Linux ei voi olla käyttis vaan Linux + GNU on käyttis ja 1+2+3n ei voi olla käyttis vaan GNU/Linux käyttis + ohjelmat.
Jos 1+2+3n=käyttis niin Linux ei voi olla käyttis ja Linux + GNU ei ole käyttis vaan Linux+GNU+ohjelmat on käyttis.

Sun terveen logiikan mukaan siis 1 on sama kuin 1+2 ja se on sama kuin 1+2+3n ja ne on kaikki samaa toistensa kanssa eli Linux on käyttis, GNU/Linux on käyttis ja Ubuntu on käyttis.

Auto on moottori, moottori on auto ja bensiini on moottori. Joo tosi loogista kun ei ole mielisairas kuten sä et ole.

Jos linux on käyttis (kuten se on monoliittinen käyttis) niin GNU/Linux ei voi olla käyttis koska se on käyttis + GNU

Jos GNU/Linux olis käyttis (se on kehitysalusta Linux käyttiksellä) niin linux ei voisi olla käyttis eikä ubuntu voisi olla käyttis.

Jos ubuntu olis käyttis (se on ohjelmistojärjestelmä) niin linux ei voisi olla käyttis eikä GNU/Linux ei voisi olla käyttis vaan vasta ubuntu olisi käyttis.

« Viimeksi muokattu: 26.10.10 - klo:23.05 kirjoittanut Fri13 »

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #112 : 27.10.10 - klo:10.32 »
1 Automaattivaihteisto
2 Saab
3 BMW

2=auto
3=auto
2+1=auto
3+1=auto
3+2=auto
3+2+1=auto

kuutio

  • Vieras
Vs: Linuxin viilaamista
« Vastaus #113 : 27.10.10 - klo:10.52 »
1 Automaattivaihteisto
2 Saab
3 BMW
...
3+2+1=auto
Eiköhän tuo ole pikemminkin kaksi autoa (yhdellä automaattivaihteistolla)?
Mielestäsi ubuntu sisältää kaksi käyttöjärjestelmää? (Gnu/Linux OS ja Ubuntu OS?)

Jälleen kaipaisin hieman perusteluja tälle tulkinnalle. (Ja mielellään jotain muuta kuin iänikuisia autovertauksia).

Muoks: Jos välttämättä haluat autovertailuja käyttää, niin auto != käyttöjärjestelmä. Käyttöjärjestelmä on ohjelmisto, joka suorittaa käyttöjärjestelmän toimintoja, käyttöjärjestelmä ei ole "kokonainen auto, jolla käyttäjä voi ajaa Lahteen kuunnellen radiosta suomipoppia". Tällainen "kokonainen auto" on ohjelmistojärjestelmän vertauskuva.
« Viimeksi muokattu: 27.10.10 - klo:11.07 kirjoittanut kuutio »

Fri13

  • Käyttäjä
  • Viestejä: 465
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #114 : 27.10.10 - klo:12.49 »
1 Automaattivaihteisto
2 Saab
3 BMW

2=auto
3=auto
2+1=auto
3+1=auto
3+2=auto
3+2+1=auto

Joo sulla ei logiikka toimi yhtään.

Fri13

  • Käyttäjä
  • Viestejä: 465
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #115 : 27.10.10 - klo:12.52 »
Muoks: Jos välttämättä haluat autovertailuja käyttää, niin auto != käyttöjärjestelmä. Käyttöjärjestelmä on ohjelmisto, joka suorittaa käyttöjärjestelmän toimintoja, käyttöjärjestelmä ei ole "kokonainen auto, jolla käyttäjä voi ajaa Lahteen kuunnellen radiosta suomipoppia". Tällainen "kokonainen auto" on ohjelmistojärjestelmän vertauskuva.

Käyttöjärjestelmä olisi siis auton moottori. Miten se moottori sitten rakentuu olisikin kyse onko se diesel vai bensiini eli olisko se monoliittinen vai mikrokernelillä.

Linux on avoin käyttis koska sä saat nähdä sen lähdekoodin samalla tavalla kuin sä saat nähdä auton moottorin katsomalla konepellin alle ja sä saat viritellä sitä käyttistä.

Fri13

  • Käyttäjä
  • Viestejä: 465
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #116 : 27.10.10 - klo:12.54 »
1 Automaattivaihteisto
2 Saab
3 BMW
...
3+2+1=auto
Eiköhän tuo ole pikemminkin kaksi autoa (yhdellä automaattivaihteistolla)?
Mielestäsi ubuntu sisältää kaksi käyttöjärjestelmää? (Gnu/Linux OS ja Ubuntu OS?)


Tommin mielestä se on ihan loogista että tuossa 3+2+1 eli vaihteisto+saab+BMW = yksi auto eikä kaksi autoa ja yksi vaihteisto.

Tommi S.

  • Käyttäjä
  • Viestejä: 240
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #117 : 27.10.10 - klo:18.46 »
1 Automaattivaihteisto
2 Saab
3 BMW
...
3+2+1=auto
Eiköhän tuo ole pikemminkin kaksi autoa (yhdellä automaattivaihteistolla)?

http://www.tuulilasi.fi/artikkelit/saab-saa-bmwn-moottorin-v-2012

kuutio

  • Vieras
Vs: Linuxin viilaamista
« Vastaus #118 : 27.10.10 - klo:19.21 »
1 Automaattivaihteisto
2 Saab
3 BMW
...
3+2+1=auto
Eiköhän tuo ole pikemminkin kaksi autoa (yhdellä automaattivaihteistolla)?

http://www.tuulilasi.fi/artikkelit/saab-saa-bmwn-moottorin-v-2012
Oikein linkinkin laitoit. Onko sitten bmw:n moottori ja automaattivaihteisto sitten myös auto, jos "1+3=auto".

(Ja mielellään jotain muuta kuin iänikuisia autovertauksia).
Ja ihan oikeasti, vertaukset on kyllä hauskoja, mutta väitteen perusteina yleensä heikkoja:
"Saabissa on BMW:n moottori, joten Ubuntu on käyttöjärjestelmä" on päättelyketjuna yhtä onneton kuin "Saabissa on BMW:n moottori, joten porkkana on kiveä". Olisiko sinulla antaa jotain ihka oikeita perusteluja, eikä vain yhden rivin hauskoja heittoja?

Kerro vaikka mitä mieltä olet tuosta aiemmin ketjussa lainatusta Tanenbaumin tekstistä?

raips

  • Käyttäjä
  • Viestejä: 76
    • Profiili
Vs: Linuxin viilaamista
« Vastaus #119 : 08.11.10 - klo:21.19 »
Jos haluaa olla rehellinen ja kunnioittava koko avoimen lähdekoodin (etenkin Linuxin) yhteisöä kohtaan, niin silloin täytyy pyrkiä siihen että kaikki laiteajurit ja ohjelmistot tehdään Linuxille ja LSB-standardin mukaiseksi.

Miten tehdään laiteajuri LSB-standardin mukaiseksi, ja miten tehdään kaikki ohjelmistot Linuxille?

Laiteajurit tehdään seuraamalla LSB-standardia joka määrittelee mm. Linux-käyttöjärjestelmän versiot ja rajapinnat ja ennen kaikkea paketointitavan miten ohjelmistoja (kuten laiteajureita) jaetaan.

Ja täytyy nyt selventää että "ohjelmistot tehdään linuxille" tarkoittaa siis sitä kun tehdään ohjelmistoja linuxille, että ne oikeasti tehdään LSB-standardin mukaisesti jos ei haluta lähdekoodia avata ja lisenssoida siten että kuka tahansa saa ottaa lähdekoodin (, muokata sitä) ja kääntää siitä omalle Linuxin jakelupaketille paketit ja laittaa jakoon.

Esimerkiksi tämän ketjun alussa oleva ohjelmisto on ns. mahdotonta saada mihinkään muuhun jakelupakettiin saataville kuin Ubuntulle koska a) lähdekoodia ei ole saatavilla b) ohjelmistoa ei ole tehty LSB-standardin mukaisesti.

Tuollaiset ohjelmistot luovat Ubuntua käyttäville käyttäjille ns. DRM:n kaltaisen rajoitteen että käyttäjä ei kykene vaihtamaan vapaasti käyttämäänsä jakelupakettia erilaisista syistä (eettiset, tekniset, taloudelliset jne) koska hänen tarvitsemansa ohjelmistot eivät ole saatavilla. Tämä asettaa etenkin sellaiset jakelupaketit huonompaan asemaan joilla ei ole niin suurta käyttäjämäärää että suljetun lähdekoodin tai epävapaiden ohjelmistojen kehittäjät 
tekisivät ohjelmistonsa saataville niihin sopivasti paketoituna.

Juuri tuollaista "DRM":n estoa vastaan on LSB kehitetty, että ei ole käyttäjälle merkitystä mitä jakelupakettia käyttää kunhan vain vaadittu LSB versio täyttyy.

Jo pelkästään se että ohjelmiston lähdekoodi on GPL alaisena takaa käyttäjälle vapauden ja oikeudet saada ohjelmisto käyttöönsä. Joko ihan suoraan vain kääntämällä ohjelmisto lähdekoodista koneen ymmärtämään binäärimuotoon (ja/tai tekemällä siitä lisäksi vielä helposti asennettavan paketin levitystä varten) tai että hän voi palkata jonkun tekemään sen.

Edes silloin ei ohjelmiston tekijä aseta eri arvoiseen asemaan eri jakelupakettien käyttäjiä teknisellä mahdottomuudella vaan antaa mahdollisuuden jokaiselle sentään saada se ohjelmisto toimimaan.

Lainaus
Nimittäin se on kaikkien Linux käyttäjien oikeuksien riistämistä ja vapauden sortoa.

Ja nämä "Linux käyttäjät" ovat siis niitä ohjelmia jotka tekevät järjestelmäkutsuja?

Mitä sinä nyt oikein höpiset? Linux käyttäjä ei ole mikään ohjelmisto joka suorittaisi järjestelmäkutsun. Kai sinä nyt kykenet erottamaan ihmisen ja tietokoneohjelmiston toisistaan? Uskon että sinulta pääsi nyt sammakko suusta ajatussekoilun vuoksi.... vai uskonko väärin?

Lainaus
Tuli tosta nyt mielee mulla että onko kukaan GNU/linux fani ja ubuntua käyttikseksi kutsuvat tulleet ajatelleeks että jos ubuntu on käyttis niin eihän silloinkaan GNU/linux voi olla yhtää sen enempää käyttis kuin linux?
Tai jos GNU/linux on käyttis niin sitten ubuntu ei voi olla käyttis kuten ei linuxikaan?

En usko että kovinkaan moni on tullut tuollaista ajatelleeksi, sillä tavallisilta terveiltä ihmisiltä puuttuu se mielisairaus joka tekee ajatuksista tuolla tavalla virheellisiä.

Mikä ihmeen mielisairaus on järjellinen logiikka? Minun mielestäni Fri13:n esiin tuoma epälogiikka monien GNU/Linux ja Ubuntu fanien parissa on ihan asiallinen. Kaikki kolme (Linux, GNU/Linux ja Ubuntu) eivät voi olla käyttöjärjestelmiä yhtä aikaa. Ne ovat kaikki toisensa pois sulkevia yhtälössään.