Linuxin kirjoittamiseen on osallistunut satoja ihmisiä ympäri maapalloa, ja sillä on satojatuhansia käyttäjiä. Tästä suuresta ohjelmoijien ja testaajien määrästä johtuen Linuxin kehitys on nopeaa, ja mahdolliset virheet tulee korjattua usein jo parin tunnin päästä uuden version ilmestymisestä. Linux ei ole Public Domain -ohjelma, vaan se on 'free software' eli sitä voi kopioida vapaasti, mutta lähdekoodi pitää toimittaa kopion mukana. Samoin jos muuttaa Linuxia, pitää julkaista näiden muutosten lähdekoodi. On myös laillista myydä Linuxia, mutta silloinkin pitää lähdekoodi toimittaa mukana.
Linux on todellinen monen käyttäjän moniajojärjestelmä, toisin kuten esimerkiksi OS/2 (yhden käyttäjän moniajojärjestelmä) tai DOS (yhden käyttäjän järjestelmä). Linux-konetta voi siis käyttää yhtäaikaa useampi käyttäjä konsolilta, sarjaportin välityksellä, tai Ethernet- verkon kautta. Jokainen käyttäjä voi myös ajaa samanaikaisesti useampia prosesseja.
> From: torvalds klaava.Helsinki.FI (Linus Benedict Torvalds) > Newsgroups: comp.os.minix Subject: What would you like to see most > in minix? Summary: small poll for my new operating system > Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug > 91 20:57:08 GMT Organization: University of Helsinki Hello everybody > out there using minix - I'm doing a (free) operating system (just a > hobby, won't be big and professional like gnu) for 386(486) AT > clones. This has been brewing since april, and is starting to get > ready. I'd like any feedback on things people like/dislike in > minix, as my OS resembles it somewhat (same physical layout of the > file-system (due to practical reasons) among other things). I've > currently ported bash(1.08) and gcc(1.40), and things seem to work. > This implies that I'll get something practical within a few months, > and I'd like to know what features most people would want. Any > suggestions are welcome, but I won't promise I'll implement them :-) > Linus (torvalds kruuna.helsinki.fi) PS. Yes - it's free of any > minix code, and it has a multi-threaded fs. It is NOT protable > (uses 386 task switching etc), and it probably never will support > anything other than AT-harddisks, as that's all I have :-(.Linux-version 0.01 koodi oli kuitenkin epätäydellinen, eikä sitä voinut kääntää kokonaisuudessaan, mutta lähdekoodi oli saatavissa nic.funet.fi-koneesta.
Linus julkaisi version 0.02 lokakuussa -91. Tämä versio oli täydellinen ja toimiva, se vaati kuitenkin Minix-käyttöjärjestelmän käynnistämiseen. Pahimpia puutteita oli levykeasemaohjaimen ja virtuaalimuistin puute. Tässä versiossa toimi kuitenkin jo gcc- kääntäja, bash-komentotulkki ja muita gnu-ohjelmia. Seuraavaksi tulivat versiot 0.03 ja 0.10. Versio 0.11 ilmestyi joulukuussa, parannuksina tarvelataus(demand loading), muistin jako prosessien välillä ja levykeohjain. Tammikuussa -92 ilmestyi versio 0.12, jossa oli vihdoin virtuaalimuisti. Tämä oli ensimmäinen todella toimiva versio, sekä ensimmäinen jossa oli muidenkin kirjoittamia osia.
Prosessori toimii Linuxin alla suojatussa tilassa, jolloin prosessit on suojattu toisiltaan ja yhden ohjelman kaatuminen ei kaada koko systeemiä. Koska suojauksen hoitaa prosessori, ei siihen voi vaikuttaa ohjelmallisesti, joten laitteiston turvallisuus paranee.
Tehokkaaseen muistinhallintaan kuuluvat myös tarveladattavat ohjelmat, jaetut muistisivut ohjelmien välillä, ohjelmien suoritus välimuistista ja dynaamisesti linkitetyt kirjastot (DLL). Tarveladattavasta ohjelmasta Linux lataa vain tarvitsemansa osan muistiin ja lataa lisää vasta tarvittaessa. Jos yhdestä ohjelmasta suoritetaan samanaikaisesti usempaa kopiota, ei muistiin ladata kuin yksi ohjelmakopio, ja vasta kun jokin ohjelmista kirjoittaa tähän muistisivuun, se kopioidaan (shared copy-on-write pages). Samoin useamman ohjelman käyttäessä samaa kirjastorutiinia on muistissa vain yksi kirjastorutiini, jota kaikki kutsuvat. Muistia säästävä ja toimintaa nopeuttava ominaisuus on ohjelmien suoritus valimuistista, koska yleensä Unix- käyttöjärjestelmät kopioivat suoritettavat ohjelmat välimuistista muualle muistiin suoritettavaksi. Tällöin ohjelmasta tulee muistiin kaksi identtistä kopiota ja aikaa kuluu kopioimiseen.
Msdos-tiedostojärjestelmän avulla Linux voi käyttää Msdos-levykkeitä ja Msdos-kovalevyjä. Samoin HPFS-2-järjestelmä tarjoaa pääsyn OS/2-tiedostoihin.
TCP/IP-protokollan avulla Linux tarjoaa monia verkkopalveluja: sähköposti, uutiset (usenet- news), NFS , FTP , HTTP . Sähköposti ja uutiset toimivat joko koneen sisäisesti tai verkon välityksellä muihin koneisiin. Ulkopuoliset yhteydet voidaan hoitaa joko TCP/IP- tai UUCP -protokollalla
Posix-prosessikontrollijärjestelmä on myös toteutettu Linuxissa, eli prosesseja voidaan siirtää vuoroin tausta- ja vuoroin edusta-ajoon.
Kernelin ladattavia moduuleita ollaan lisäämässä Linuxiin. Ladattavat moduulit ovat kernelin osia, jotka liitetään kerneliin vasta niitä tarvittaessa. Ladattavat moduulit voidaan myös irroittaa kernelistä, kun niitä ei enää tarvita ja ne pienentävät kernelin kokoa sekä lisäävät muunneltavuutta.
Ikkunanhallintaohjelmia on Linuxille saatavana useita, yleisimpinä twm, olwm ja fvwm. Twm on hyvin rajoittunut standardiin X-pakettiin kuuluva ikkunanhallintaohjelma. Olwm on Sun Microsystemsin kehittämä monipuolinen ikkunanhallintaohjelma. Olwm:sta on myös virtuaaliversio Olvwm, jossa voi olla useita virtuaalisia 'työpöytiä'. Fvwm on monipuolinen ikkunanhallintaohjelma, joka voidaan konfiguroida vastaamaan monia kaupallisia ikkunan- hallintaohjelmia, muun muassa Mwm (Dec) ja 4Dwm (Silicon Graphics). Myös Fvwm sisältää virtuaalikonsolit.
Kuva 1. X-Windows ikkunointijärjestelmä ja Fvwm-ikkunanhallintaohjelma
Kaupallisista ikkunointijärjestelmistä Sun Microsytemsin OpenWindows ilmaisena ja Motif maksullisena ovat saatavissa kokonaisuudessaan Linuxiin.
Dosemu on bios -emulaattori, jolla luodaan Linux-koneeseen virtuaalinen kone, jonne voidaan ladata Msdos-käyttöjärjestelmä. Monet Msdos-ohjelmista toimivat vielä keskeneräisessä Dosemussa. Ohjelmat, jotka käyttävät x86-prosessorin protected- tai vm86- tiloja, eivät toimi Dosemussa, koska Linux toimii suojatussa tilassa ja vain yksi ohjelma kerrallaan voi hallita tätä tilaa. Joitain näistä ohjelmista voidaan ajaa Dosemussa, kunhan siihen saadaan toteutettua DPMI -rajapinta. DPMI mahdollistaa useamman ohjelman yhtäaikaisen pääsyn suojattuun tilaan.
Kuva 2. Dosemu sekä Microsoft Windows ohjelma Minesweep
Linuxia on muokattu Maciin, Amigaan ja joihinkin Unix-koneisiin. Hankaluutena muunnostyössä on prosessorien erilaisuus, koska Linux käyttää kaikkia x86-prosessorin muistinhallinta- ja moniajo-ominaisuuksia, joita ei ole kaikissa muissa prosessoreissa.
Transport Control Protocol/Internet Protocol Serial Line Internet Protocol ParallerLine Internet Protocol Network File System File Transfer Protocol HyperText Transfer Protocol Unix to Unix Copy Massachusetts Institute of Technology Basic Input Output System Dos Protected Mode Interface