En sammanställning om Open Source och Linux S T F I N G E N J Ö R S U T B I L D N I N G A B I N F O R M AT I O N S T E K N O L O G I KUNGSBROPLAN 3 A BOX 1080 101 39 STOCKHOLM TELEFON 08-586 386 00 FAX 08-23 55 00 WWW.STF.SE
Linux mycket på gång... Linux Linux är en allmän term som hänvisar till ett Unix-liknande operativsystem baserat på Linux-kärnan. Dess utveckling är ett av de mest framstående exemplen på fritt och öppet källkodssamarbete. Framgången bygger bland annat på att underliggande källkod kan användas, fritt ändras och distribueras både kommersiellt och icke-kommersiellt. Detta kan göras med någon underlicenser som t.ex. GNU GPL. Linux är främst känt för sin användning i servrar men kan även installeras på en mängd olika hårdvaror, i allt från inbyggda enheter, mobiltelefoner och även några klockor till superdatorer. Linux-distributioner, kan installeras både stationärt och i bärbara datorer. Detta har blivit allt vanligare under de senaste åren, delvis på grund av den mycket populära Ubuntu distributionen och framväxten av netbooks och alltmer flexibla mobiltelefoner s.k. smartphones. Namnet Linux syftar till Linux-kärnan, som ursprungligen skrevs 1991 av Linus Torvalds. Resten av systemet består av olika komponenter såsom Apache HTTP Server, X Window System. Det finns och olika typer av komponenter för grafisk presentation t.ex. GNOME och KDE-skrivbordet samt tjänster och filsystem från bl.a. GNU-projektet. Vanligast förekommande applikationer är lösningar med stationära Linux-system som kan innefatta Mozilla Firefox webbläsare och OpenOffice.org Office-paket. GNU-bidrag ligger till grund för Free Software Foundation med undernamnet GNU / Linux. Lite historia Operativsystemet Unix utvecklades vid slutet av 60-talet vid AT & T s Bell Laboratories i USA av Ken Thompson, Dennis Ritchie, Douglas McIlroy samt Joe Ossanna och släpptes 1971. Unix skrevs ursprungligen i assembler och senare skrevs den om i programspråket C av Dennis Ritchie1973. Dess breda tillgänglighet och överförbarhet beror på att den nu är skriven i C och innebär att UNIX antogs allmänt, kopierades och ändrades av akademiska institutioner och företag, som med sin design nu är inflytelserik med program till många typer av administrativa och realtidssystem. GNU GNU projektet lanserades 1983 av Richard Stallman med mål att skapa en komplett Unix-kompatibel programvara som helt bestod av fri programvara, arbetet påbörjades 1984. 1985 skapade Stallman Free Software Foundation och skrev GNU General Public License (GNU GPL) 1989. I början av 1990-talet var många av de program som krävs i ett operativsystem (t.ex. filsystem, kompilatorer, texteditorer, ett Unix-skal och en fönstersystemet) avslutade. Andra delar som drivrutiner, daemons och kärna hade till viss del stagnerat eller var ofullständiga. Linus Torvalds har sagt att om GNU-kärnan hade funnits tillgänglig vid 1991, skulle han inte ha valt att skriva sin egen kod. Minix Minix operativsystem var ett billigt liten Unix-liknande operativsystem, som utvecklats av Andrew S. Tanenbaum och var avsett för undervisning i datavetenskap (idag är Minix gratis och har omarbetats också för kommersiell användning). 1991 började Torvalds att arbeta vid Helsingfors universitet på en icke-kommersiell ersättning för Minix, detta arbete skulle senare bli Linuxkärnan. Linux och Linus Torvalds Torvalds började som sagt utveckla Linux på Minix. Arbetet med kod utvecklad för Minix gjorde att denna kod ursprungligen fungerade under Linux. Arbetet fortsatte och vidareutvecklingen av Linux-kärnan gjorde att det blev möjligt för Linux att fungera fristående. Senare arbete ledde till att GNU-applikationer ersatte Minix-kod. Genom kod från GNU-projektet, som är fritt tillgänglig, var det fördelaktigt att användas med det nyutvecklade Operativ Systemet. Eftersom koden är licensierad under GNU GPL kan den användas i andra projekt, så länge det också är släppt under samma eller med kompatibel licens. Då Linux-kärnan fungerar med komponenter från GNU-projektet, inledde Torvalds en övergång från sin ursprungliga licens (som förbjöd kommersiell omfördelning) till GNU GPL. Utvecklare har sedan dess arbetat för att integrera GNU komponenter med Linux för att göra det till ett funktionellt och fritt operativsystem. 2 Linux sammanställning STF Ingenjörsutbildning AB. Läs om vårt kursutbud på www.stf.se/it
Kommersiell och allmän spridning Linux används inom många områden, i allt från inbyggda system till superdatorer, och finns även för serverinstallationer. Populärt kan man säga att beroende på hur man sätter ihop Linux-kärnan med olika drivrutiner och applikationer skapas ett antal olika distributioner som erbjuds både kommersiellt eller är helt fria. Användningen av Linux-distributioner kommersiellt och i hemdatorer expanderar hela tiden. Många Linuxdistributioner har också vunnit i popularitet inom olika kommunala, lokala och statliga organisationer. Utanför Sverige har t.ex. den federala regeringen i Brasilien blivit känd för sitt stöd för Linux. Nyheter från ryska militären att skapa sin egen Linux-distribution har också spritts. Den indiska delstaten Kerala har gått så långt som att göra Linux obligatoriskt. Alla understatsorganisationer, gymnasieskolor ska köra Linux på sina datorer. I Kina används Linux uteslutande som operativsystem tillsammans med Loongson processorfamiljen för att uppnå teknisk självständighet. ABBs leverans av El-system till Kina krävde att systemen erbjöds med en Linux-distribution. I Spanien har vissa regioner utvecklat sina egna Linux-distributioner, och används i skolor och av statliga organisationer, som t.ex. gnulinex i Extremadura och Guadalinex i Andalusien. I Frankrike och Tyskland har man också vidtagit åtgärder för att agera för att bredare anta Linux. Linux-distributioner har också blivit populära i samband med den de nya minidatorer som allmänt kallas netbooks, med många enheter sålda har ASUS med Eee PC och Acer med Aspire One fått fram snabbstartade och relativt sett kraftfulla datorer med Linux-distributioner förinstallerade. Även marknaden för Smartphone har sett användningen av olika typer av Linux eller GNU-baserade lösningar öka. Med en förväntan och en stor ökning av olika terminaler och apparater som kommunicerar kan vi nog sia att denna marknad kommer att öka. Om man försöker att läsa av intresset ser det ut som bland annat Nokias, Sony-Ericssons, HTCs och Googles satsningar inom området kommer att öka. Inom mobilterminalmarknaden sker just nu stora arbeten med ramverk för operativsystem till mobila terminaler. För att nämna några projekt Maemo (Nokia), Android (Google), moblin (intel), LiMo (Vodaphone). Nuvarande utveckling Torvalds fortsätter att styra utvecklingen av Linux-kärnan. Stallman leder Free Software Foundation, som i sin tur stöder arbetet med GNU-komponenter och applikationer. Det finns även enskilda individer och företag som utvecklar kod för Linux-kärnan och som är fristående från GNU-anpassade komponenter och applikationer. De här utomstående komponenterna omfattar en stor mängd områden och kan omfatta både kernel-moduler, användarapplikationer och filsystem. Linux har blivit en storindustri med egen omfattande försäljning och med ett eget ekosystem. Kommersiella företag och individer kombinerar kod och skapar olika distributioner med en allt mer utvecklad Linux-kärna. GNUkomponenter och icke-gnu komponenter används idag för ytterligare anpassad paketering av programvara som i sin tur leder till olika former av Linux-distributioner. Design Ett Linux-baserat system är ett modulärt Unix-liknande operativsystem. Det hämtar mycket av sin grundkonstruktion från principer som fastställdes i Unix under 1970- och 1980-talet. Ett sådant system använder en monolitisk kärna. Linux-kärnan, som i sin tur hanterar processtyrning, nätverk perifera enheter och filsystemet. Drivrutiner är integrerade med kärnan. Separata projekt som gränssnitt mot kärnan är en stor del av systemets högre nivå av funktionalitet. GNU-userland är en viktig del i de flesta Linux-baserade system. Det ger den vanligaste tillämpningen av C-biblioteket ett populärt skal och många av de vanliga Unix-verktyg som utför många grundläggande operativsystems uppgifter. Det grafiska användargränssnittet (eller GUI) används av de flesta Linux-system och bygger på X Window System. Användargränssnitt Användarna kan kontrollera ett Linux-baserat system antingen genom ett textbaserat kommando interface (även kalllat CLI), eller ett grafiskt användargränssnitt (GUI). Ett annat sett är genom kontroller som hör ihop med tillhörande hårdvara (detta är vanligt för inbyggda system). För bärbara system, är standardvalet ett grafiskt användargränssnitt där CLI är tillgänglig via en terminalemulator eller på en separat virtuell konsol. På stationära maskiner, används ett flertal olika grafiska lösningar som KDE, GNOME och Xfce som är några av de mest populära användargränssnitten. En mängd ytterligare specialiserade eller anpassade användargränssnitt finns. Mest populära användargränssnitt körs ovanpå X Window Systemet (ofta helt enkelt kallas X ), som tillhandahåller nätöppenhet, vilket möjliggör att en grafisk applikation kan köras på en maskin som ska visas och kontrolleras från en annan. Linux sammanställning STF Ingenjörsutbildning AB. Läs om vårt kursutbud på www.stf.se/it 3
Andra GUI:n inkluderar Fönsterhanterare som t.ex. FVWM, och Window Maker. Window Manager erbjuder ett sätt att kontrollera placeringen och utseendet på enskilda programfönster, och interagerar enkelt med X Window System. Detta är ett mer minimalistisk mål än KDE eller GNOME vilka brukar kallas skrivbordsmiljöer. Ett Linux-system kontrolleras vanligtvis via CLI som är det traditionella sättet att interagera med ett Unix-system. En Linux-distribution specialgjord för servrar kan använda CLI som enda gränssnitt. Ett headless system kan köras utan ens en bildskärm och kan kontrolleras genom kommandorader via fjärrstyrda protokoll som SSH eller Telnet. De flesta lågnivå Linux komponenter, inklusive GNU-userland använder enbart CLI. CLI är särskilt lämpad för automatisering av återkommande eller fördröjda uppgifter, och ger mycket enkel kommunikation mellan processer. För att automatisera och förenkla återkommande kommandon kan s.k. shell scripting teknik användas. En grafisk terminalemulatorprogram används ofta för att komma åt CLI från en Linux desktop. Utveckling Linux är som nämnts ett Unix-liknande operativsystem som visar var Linux har sitt ursprung. Trots att det finns arkitektoniska likheter i projektet och att vissa begrepp delas som en del av POSIX-standarden, delar Linux inte någon icke-fri källkod med det ursprungliga Unix eller Minix. Linux-distribution Den grundläggande skillnaden mellan Linux och många andra populära operativsystem är att Linux-kärnan och andra komponenter är gratis och erbjuds via öppen källkod. Linux är inte det enda operativsystemet, även om det är den överlägset mest använda. Fria och öppna källkodlicenser bygger på principen om copyleft, ett slags ömsesidighet. Allt arbete som härrör från en copyleft koddel av programvara, är en copyleft själv. Den vanligaste fria programvarulicensen är GNU GPL som är en form av copyleft. GNU GPL används för Linux-kärnan och många av de komponenter som erbjuds från GNU-projektet. Linuxbaserade distributioner är avsedda och utvecklade för att kunna vara interoperatibla med andra operativsystem och är etablerade enligt allmänna datastandarder. Linux-system följer POSIX, SUS, ISO och ANSI-standarder där det är möjligt. Fria programvaruprojekt utvecklas i ett samarbetsprojekt ofta utvecklade oberoende av varandra. Det faktum att programvarulicenser uttryckligen tillåts att distribueras, ger en grund för allt större projekt. Dessa projekt samlar programvara som produceras av fristående projekt och göra den tillgänglig på en gång i form av en Linux-distribution. En Linux-distribution kallas en distribution när ett projekt som förvaltar en samling av programvara för tillämpning i ett programpaket görs tillgänglig för nedladdning och installation. Detta kan ske via nedladdning av distributionen t.ex. med en dator som har en nätverksanslutning mot Internet. Som användare kan man välja en passande distribution och sedan anpassa sitt operativsystem efter sitt specifika behov. Distributioner upprätthålls av individer, löst sammansatt team, frivilliga organisationer och kommersiella företag. En distribution kan installeras med hjälp av en CD som kan innehålla en distributionsspecifik mjukvara för installation och konfiguration. En pakethanterare tillåter senare paketuppgraderingar och ominstallationer. En distribution är ansvarig för att skapa en standardkonfiguration för den installerade Linux-kärnan. Tillsammans med den generella konfigurationen, inställningar för säkerhet och kommunikation, drivrutiner ges en integration av de olika mjukvarupaketen till en sammanhängande helhet. Communities En distribution drivs av dess utvecklare och användare. Vissa leverantörer utvecklar och finansiera sin egen utdelning på frivillig basis, Debian är ett välkänt exempel. Andra hävdar en gemenskap genom en version av deras kommersiella distributioner, exempel på detta är vad Red Hat gör med Fedora. Det finns lokala föreningar som kallas Linux Users Groups (LUGs) som ser till att deras distribution sprids. Många Internet-communities ger också stöd för Linux-användare och utvecklare. De flesta distributioner och fri programvara och open source-projekt har IRC chattrum eller diskussionsgrupper. Online-forum är en annan kanal för stöd. Typiska exempel är LinuxQuestions.org och Gentoo-forum. Man kan anmäla sig på olika Linux-sändlistor för att hålla sig informerad. Ofta förkommer det att ett visst ämne, t.ex. användning eller utveckling för en viss sändlista. Det finns flera tekniska webbplatser med Linux-fokus. Det finns tidskrifter om Linux som ofta inkluderar programvara eller kompletta Linux-distributioner. Man behöver inte hålla koll på allt utan kan välja att använda en allmänt spridd Linux-distribution. 4 Linux sammanställning STF Ingenjörsutbildning AB. Läs om vårt kursutbud på www.stf.se/it
Olika affärsmodeller Trots att Linux-distributioner är allmänt tillgängliga utan kostnad, försöker flera stora företag sälja, stödja och bidra till utvecklingen av komponenter i systemet av fri programvara. Det finns exempel från Dell, IBM, HP, Oracle, Sun Microsystems, Novell och Nokia för att nämna några. Ett antal företag, bland annat Red Hat, har byggt hela sin verksamhet kring Linux-distributioner. De tjänar pengar runt hela ekosystemet av sin Linux-distribution. Den fria programvarulicensen, som ett programpaket för en distribution bygger på, använder sig av Linux-kärnan ibland explicit kommersiellt. Förhållandet mellan en Linux-distribution som helhet och enskilda leverantörer kan ses som symbiotiskt. En vanlig affärsmodell för kommersiella leverantörer är avgifter för stöd, särskilt för affärsanvändare. Ett antal företag erbjuder en speciell verksamhet en unik version av sin distribution, och lägger till egna stödpaket och verktyg för att administrera och förenkla administrationen. En annan affärsmodell är att ge bort programvaran för att sälja hårdvara. Ytterligare exempel finns där man till en fri Linux-distribution kan köpa olika tjänster, dataspel eller annan interaktiv media. Mobiler baserade på Android är ett av flera sådana exempel! Sammanställning och översättningar av Martin Rawet Hösten 2009 Källor: Bland annat Linux.org, Free Software Foundation, GNU.org, Wikipedia m.fl. För mer information om STFs kursutbud inom Linux samt kursanmälan, kontakta: Martin Rawet, tfn 08-586 386 46, e-post: martin.rawet@stf.se www.stf.se/it STFs hemsida ger dig tillgång till aktuella kurser, tider, priser, kursprogram och kataloger i pdf-format, nyheter, seminarier och ett helt nytt kundnät "Mina sidor" där du själv loggar in. Välkommen in du också på www.stf.se Linux sammanställning STF Ingenjörsutbildning AB. Läs om vårt kursutbud på www.stf.se/it 5