Ero sivun ”Linux (ydin)” versioiden välillä

[katsottu versio][katsottu versio]
Poistettu sisältö Lisätty sisältö
→‎Historiaa: mtv ei tainnut ollakaan mainittu tuossa yhteydessä
kh
Rivi 50:
Torvaldsin motivaatio työhön alkoi horjua vuoden 1991 lopussa, kun kernel oli saatu pyörimään ja edessä näytti olevan vain ikävämpää debuggausta. Lisää motivaatiota kuitenkin tuli kahdelta suunnalta. Ensinnäkin, ihmiset Internetin uutisryhmissä eivät jättäneet häntä rauhaan, vaan kysyivät innokaasti jatkokehittelyn perään. Toisekseen Torvalds tuhosi vahingossa koneensa kovalevyn Minix-osion, jolloin hänelle nousi mielenkiinto pyrkiä käyttämään sitä pelkän Linux-osionsa turvin. Ensimmäinen ulkopuolisen ihmisen pyynnöstä Linuxiin luotu toiminto oli vuoden 1991 joulupäivänä valmistunut mahdollisuus jatkaa keskusmuistia levymuistilla. Torvaldsin oma 386-kone (joka oli osista kasattu, merkitön) omasi neljä megaa muistia, mutta pienemmällä määrällä varustetut käyttäjät (erityisesti eräs saksalainen käyttäjä, joka alun perin teki asiasta pyynnön) olivat ongelmissa keskusmuistin vähyyden kanssa. Tämä ominaisuus oli vuoden 1992 alussa merkittävä ja toi osaltaan Linux-kernelille huomiota.
 
Kun versio 0.12 julkaistiin tammikuussa 1992, Linuxin parissa työskenteli aktiivisesti lähes kaksisataa ihmistä. Tuolloin ydin oli jo vakaa ja toimiva. Yhdessä GNU-hankkeen luomien työkalujen kanssa siitä oli rakennettavissa kokonainen käyttöjärjestelmä. Linux alkoi levitä nopeasti. Vuonna 1992 saatiin valmiiksi ensimmäinen graafisella käyttöliittymällä varustettu jakelu.<ref name="grkgnux">{{Verkkoviite | osoite = http://www.groklaw.net/articlebasic.php?story=20051031235811490 | nimeke = The Daemon, the GNU and the Penguin, by Dr. Peter H. Salus - Ch. 20 | julkaisija = Groklaw | viitattu = 25.11.2017}}</ref> Näihin aikoihin Linuxista kiinnostuttiin myös yliopistomaailman ulkopuolella.
 
Linuxin varhaiset versiot oli julkaistu Torvaldsin itse kirjoittamalla lisenssillä, joka ei sallinut ytimen levitystä rahaa vastaan. Linus ilmoitti version 0.12 julkistuksen yhteydessä siirtyvänsä käyttämään [[GNU GPL]] -lisenssiä [[1. helmikuuta]] [[1992]] lähtien.<ref>http://www.kernel.org/pub/linux/kernel/Historic/old-versions/RELNOTES-0.12</ref> Nykyinen lisenssi on GPL versio 2 ja Torvalds on sanonut vastustavansa siirtymistä versioon 3 sen lisäämien käyttörajoituksien vuoksi.<ref>{{Verkkoviite | osoite = https://www.youtube.com/watch?v=PaKIZ7gJlRU | nimeke = Linus Torvalds says GPL v3 violates everything that GPLv2 stood for | julkaistu = 4.9.2014 | viitattu = 3.7.2017}}</ref>
Rivi 56:
Torvalds on kuvaillut päätöstään julkaista Linux-ydin GPL-lisenssillä parhaaksi tekemäkseen asiaksi.<ref name="Yamagata_Interview">Hiroo Yamagata: [http://www.tlug.jp/docs/linus.html ''The Pragmatist of Free Software'', Linus Torvalds Interview], 30 September 1997</ref>
 
Ytimen julkaisun yhteydessä Torvalds ja Tanenbaum kävivät laajalti tunnetun debatin ytimen rakenteesta.<ref>{{Verkkoviite | osoite = https://www.ibm.com/developerworks/community/blogs/6e6f6d1b-95c3-46df-8a26-b7efd8ee4b57/entry/linux_is_obsolete_a_must_read_debate_between_andrew_s_tanenbaum_and_linus_torvalds34?lang=en| nimeke = Linux is obsolete - A must read debate between Andrew S. Tanenbaum and Linus Torvalds | julkaisija = IBM | ajankohta = 24.11.2012 | viitattu = 20.12.2017}}</ref><ref>{{Verkkoviite | osoite = https://groups.google.com/forum/?fromgroups=#!topic/comp.os.minix/wlhw16QWltI[1-25] | nimeke = LINUX is obsolete | ajankohta = 29.1.1992 | viitattu = 20.12.2017}}</ref> Microsoftin palkkaama Ken Brown ajoi väitettä, jossa Torvalds olisi kopioinut Minixiä, mutta Tanenbaum on tyrmännyt tämän väitteen.<ref>{{Verkkoviite | osoite = http://www.cs.vu.nl/~ast/reliable-os/ | nimeke = Tanenbaum-Torvalds Debate Part II | tekijä = Tanenbaum, Andy | ajankohta = 12.5.2006 | viitattu = 20.12.2017}}</ref>
 
== Kehitysprosessi ==
Rivi 135:
Linux-ydin tukee ulkoista moniajoa (''preempt''), sekä ytimen sisäinen moniajo on mukana 2.6-sarjassa, jota on myöhemmin laajennettu nk. vapaaehtoiseen moniajoon.<ref>{{Verkkoviite | osoite = https://kernelnewbies.org/FAQ/Preemption | nimeke = FAQ/Preemption | julkaisija = Kernelnewbies | viitattu = 25.11.2017}}</ref><ref>{{Verkkoviite | osoite = https://lwn.net/Articles/563185/ | nimeke = Optimizing preemption | julkaisija = LWN.net | ajankohta = 14.8.2013 | tekijä = Corbet, Jonathan | viitattu = 25.11.2017}}</ref><ref>{{Verkkoviite | osoite = https://lwn.net/Articles/93604/ | nimeke = Addressing latency problems in 2.6 | ajankohta = 14.7.2017 | viitattu = 25.11.2017}}</ref>
 
Ydin tukee useita menetelmiä ja algoritmeja tehtävien ajoituksen hallintaan.<ref>{{Verkkoviite | osoite = http://man7.org/linux/man-pages/man7/sched.7.html | nimeke = sched - overview of CPU scheduling | julkaisija = Linux man-pages project | viitattu = 2.12.2017}}</ref><ref>{{Verkkoviite | osoite = http://www.linuxjournal.com/magazine/real-time-linux-kernel-scheduler | nimeke = Real-Time Linux Kernel Scheduler | julkaisija = Linux Journal | ajankohta = 1.8.2009 | tekijä = Ankita Garg | viitattu = 2.12.2017}}</ref> Ytimen versiossa 2.6.23 lisätty CFS korvasi O(1) skedulerin.<ref>{{Verkkoviite | osoite = https://www.ibm.com/developerworks/library/l-completely-fair-scheduler/ | nimeke = Inside the Linux 2.6 Completely Fair Scheduler | julkaisija = IBM | tekijä = M.Jones | ajankohta = 15.12.2009 | viitattu = 2.12.2017 }}</ref><ref>{{Verkkoviite | osoite = http://www.informit.com/articles/article.aspx?p=101760&seqNum=2 | nimeke = The Linux Process Scheduler | julkaisija = Informit | ajankohta = 13.11.2003 | tekijä = Robert Love | viitattu = 2.12.2017}}</ref> Ytimeen on kehitetty tuki ladattaville skedulereille eri käyttötarpeita varten.<ref>{{Verkkoviite | osoite = http://www.classiccmp.org/interex/conference/iworks2001/proceedings/3018/3018.pdf | nimeke = Plug-In Scheduler Policies for Linux | tiedostomuoto = PDF | tekijä = Scott Rhine | viitattu = 2.12.2017}}</ref><ref>{{Verkkoviite | osoite = https://lwn.net/Articles/109049/ | nimeke = Pluggable cpu scheduler framework | tekijä = Con Kolivas | julkaisija = LWN.net | viitattu = 2.12.2017}}</ref>
 
Ydintä voidaan suorittaa moniajossa yhdellä suorittimella sekä rinnakkain [[moniprosessointi|moniprosessoinnilla]].<ref>{{Verkkoviite | osoite = https://www.ibm.com/developerworks/library/l-linux-synchronization/index.html | nimeke = Anatomy of Linux synchronization methods | julkaisija = IBM | tekijä = M. Jones | julkaistu = 31.10.2007 | viitattu = 25.11.2017}}</ref> Ydin tukee ulkoisien [[Native POSIX Thread Library|NPTL-säikeiden]] lisäksi ytimen sisäisiä [[Säie (tietotekniikka)|säikeitä]].<ref>{{Verkkoviite | osoite = http://www.cs.fsu.edu/~cop4610t/lectures/project2/kthreads/kthreads.pdf | nimeke = kthreads | tiedostomuoto = PDF | viitattu = 25.11.2017}}</ref>
Rivi 153:
 
== Prosessien välinen kommunikointi ==
Linux-ydin tukee useimpia tyypillisiä menetelmiä [[Prosessien välinen kommunikaatio|prosessien väliseen kommunikaatioon]] kuten [[Unix-putki|anonyymit putket]], [[nimetty putki|nimetyt putket]], [[viestijono]]t ja [[jaettu muisti]].<ref>{{Verkkoviite | osoite = http://tldp.org/LDP/lpg/node7.html | nimeke = 6 Linux Interprocess Communications | julkaisija = The Linux Documentation Project | viitattu = 30.11.2017}}</ref> Linuxissa on mahdollista käyttää myös useita muita menetelmiä.<ref>{{Verkkoviite | osoite = http://www.chandrashekar.info/articles/linux-system-programming/introduction-to-linux-ipc-mechanims.html | nimeke = IPC mechanisms on Linux - Introduction | tekijä = Chandrashekar Babu | ajankohta = 1.8.2012 | viitattu = 30.11.2017}}</ref>
 
Lisäksi on mahdollista käyttää useita käyttäjäavaruudessa toimivia menetelmiä kuten [[D-Bus]], jotka perustuvat daemon-prosessien palveluihin.
Rivi 164:
''kdb'' tukee mm. muistin ja [[Rekisteri (tietokonetekniikka)|rekisterien]] tilojen tutkimista ja pysäytyskohtien asettamista. ''kgdb'' käytetään [[GNU Debugger]]in kanssa.<ref name="lkdebug" />
 
Lisäksi ydin tukee suorituksen seurantaan muita menetelmiä kuten ''strace''<ref>{{Verkkoviite | osoite = https://linux.die.net/man/1/strace | nimeke = strace(1) - Linux man page | viitattu = 25.11.2017 }}</ref>, <code>ptrace()</code><ref>{{Verkkoviite | osoite = http://man7.org/linux/man-pages/man2/ptrace.2.html | nimeke = PTRACE(2) | viitattu = 25.11.2017 }}</ref> ja ''kprobe''.<ref>{{Verkkoviite | osoite = https://www.kernel.org/doc/Documentation/kprobes.txt | nimeke = Kernel Probes (Kprobes) | viitattu = 25.11.2017}}</ref>
 
Suorituskyvyn [[Profilointi (ohjelmointi)|profilointiin]] on olemassa muun muassa ''perf'' laskurit, jota ovat edeltäneet ''oprofile'', ''perfctr'' ja ''perfmon2''.<ref>{{Verkkoviite | osoite = http://web.eece.maine.edu/~vweaver/projects/perf_events/overhead/fastpath2013_perfevent_slides.pdf | nimeke = Linux perf event Features and Overhead | tekijä = Vince Weaver | ajankohta = 21.4.2013 | viitattu = 25.11.2017}}</ref>
Rivi 170:
== Alustat ==
{{Pääartikkeli|[[Luettelo Linuxissa tuetuista tietokonearkkitehtuureista]]}}
Linux on historian eniten eri laitteistoalustoja tukeva käyttöjärjestelmä.<ref>{{Verkkoviite | osoite = http://www.cmswire.com/cms/information-management/linux-22th-birthday-is-commemorated-subtly-by-creator-022244.php | nimeke = Linux' 22th Birthday Is Commemorated - Subtly - by Creator | julkaisija = CMS Wire | julkaistu = 26.8.2013 | tekijä = Levine, Barry | viitattu = 30.8.2017}}</ref>
 
Linux tukee NUMA-[[muistiarkkitehtuuri]]n tietokoneita ja toteuttaa järjestelmäkutsuja järjestelmien hallintaan.<ref>{{Verkkoviite | osoite = http://man7.org/linux/man-pages/man7/numa.7.html | nimeke = NUMA(7) | julkaisija = Linux man-pages project | viitattu = 30.11.2017}}</ref> Tuki on ollut ytimessä versiosta 2.5 lähtien ja on parannettu jälkeenpäin.<ref>{{Verkkoviite | osoite = http://lse.sourceforge.net/numa/ | nimeke = Linux Support for NUMA Hardware | viitattu = 30.11.2017}}</ref><ref>{{Verkkoviite | osoite = https://lwn.net/Articles/524977/ | nimeke = NUMA in a hurry | julkaisija = LWN.net | ajankohta = 14.11.2002 | tekijä = Corbet, Jonathan | viitattu = 30.11.2017}}</ref>
Rivi 189:
* Linux 2.0 kesäkuussa 1996 mahdollisti käytön usealla suorittimella yhtä aikaa ([[Moniprosessointi|monisuoritintuki]]) sekä tuen [[m68k]]- ja [[PowerPC]]-arkkitehtuureille.
* Linux 2.2 tammikuussa 1999 lisäsi televisiokorttien tuen, [[bittikarttagrafiikka]]a tukevan [[konsoli]]n ja [[IPv6]]-tuen.
* Linux 2.2.13 joulukuussa 1999 lisäsi tuen [[IBM]]:n [[S/390]] [[suurtietokone]]ille<ref>{{Verkkoviite | osoite = http://linuxvm.org/penguinvm/notes.html | nimeke = Linux/390 - Notes and Observations | viitattu = 6.8.2017 | kieli = {{en}} }}</ref>
* Linux 2.4 tammikuussa 2001 lisäsi [[ISA]]-PnP-, [[USB]]- ja [[PCMCIA]]-tuen, sekä tuen yli 2 GiB tiedostoille (LFS) ja ext3- ja ReiserFS-tiedostojärjestelmät (ReiserFS versiossa 2.4.1). Versio 2.4.6 lisäsi [[Bluetooth]]-tuen.
* Linux 2.5.43 lokakuussa 2002 lisäsi [[Read-Copy-Update]] (RCU) mekanismin tuen<ref name="knewver" /><ref>{{Verkkoviite | osoite = https://lwn.net/Articles/262464/ | nimeke = What is RCU, Fundamentally? | julkaisija = LWN.net | julkaistu = 17.12.2007 | tekijä = McKenney, Paul | viitattu = 6.8.2017}}</ref>
Rivi 226:
* [http://groups.google.com/groups?selm=1991Oct5.054106.4647%40klaava.Helsinki.FI] Torvaldsin ilmoitus Linuxin versiosta 0.02 Internetin postituslistalla vuonna 1991 {{en}}
* [http://kernel.org/ kernel.org] Linux-ydin {{en}}
* [https://www.kernel.org/doc/html/latest/ Ytimen dokumentaatiota] - viittaa viimeisimpään versioon {{en}}
* [http://linux.fi Linux.fi] – suomenkielinen Linux-aiheinen wiki, joka sisältää tietoa ja vinkkejä Linuxiin käyttöön
* [http://www.cs.helsinki.fi/linux15vuotta] Helsingin yliopiston 4.9.2006 järjestämän Linuxin 15-vuotisseminaarin sivu