Arbetet på boken har endast påbörjats. Vissa kapitel kan vara användbara, men helheten är mycket bristfällig.

Del I – Introduktion redigera

UNIX och Unix-liknande system redigera

Unix står för en familj operativsystem. Många av dem har ursprungligen utvecklats utgående från samma programkod, men en del av operativsystemen har skapats från tomt bord med de tidigare Unix-varianterna som förebild. UNIX® är ett varumärke, som numera beviljas certifierade system oberoende av ursprung. Viktiga standarder som Unix-liknande system långt följer är SUS (”Single UNIX Specification”) som används för certifieringen och POSIX (”Portable Operating System Interface”). Få Unix-varianter följer standarderna helt och hållet. Nedan används Unix som en generell term, utan hänsyn till hur ”Unix-lika” de olika systemen är.

Unix skapades vid forskningsinstitutioner och spreds till att börja med rätt fritt inom universitetsvärlden, där användare förbättrade koden enligt behov. Då Unix blev en kommersiell produkt fortsatte olika varianter att utvecklas på olika håll och ett otal produkter kom att säljas som Unix. Det fanns och finns större och mindre skillnader mellan olika varianter, men grundkoncepten är i allmänhet de samma.

Numera har stora ansträngningar gjorts för att standardisera olika funktioner mellan olika Unix-varianter. Program som skrivits för vissa Unix-liknande operativsystem kan i allmänhet någorlunda lätt skrivas om att fungera också med andra Unix-liknande system, i synnerhet om programmet skrivits portabelt, så att det skall vara lätt att anpassa och i mån av möjlighet använder standardiserade funktioner. Ofta finns kommandoradsverktyg och programmeringskoncept i två varianter, ”System V” och ”BSD”. GNU-projektets program har ofta många funktioner som saknas i de traditionella varianterna. Vid programmering, också i fråga om skript, lönar det sig att kontrollera om de koncept man använder hör till endera varianten.

Den mesta programvaran som finns tillgänglig för ett Unix-liknande system finns i allmänhet också tillgänglig för ett annat. En normal användare kan alltså känna sig rätt så hemma oberoende av vilken Unix-variant som används. Verktyg för systemadministration och detaljer i hur vissa kommandon fungerar skiljer sig dock, ibland på förrädiska sätt. Det kan vara på sin plats att vara medveten om vissa sådana skillnader.

Val av Unix-variant redigera

Om du har kommit över hårdvara annan än en vanlig persondator ("PC", "x86") har du vanligen tre val vad gäller Unix-liknande operativsystem: Unix-varianten som ursprungligen kom med maskinen, någon BSD-variant eller någon GNU/Linux-distribution. För vanliga persondatorer är valen flera.

Det Unix-liknande system som är mest känt och följaktligen lättast att få hjälp för är GNU/Linux. Bland Linux-distributionerna finns också de Unix-varianter som är mest lämpade för en hemanvändare som måste underhålla sitt system utan tidigare Unix-erfarenhet. Linux i sig stöder de flesta typers hårdvara, också om de flesta distributioner begränsar sig till en eller några processorarkitekturer.

De olika BSD-varianterna har gott rykte ifråga om stabilitet och används ofta som servrar av olika slag. Om du vill pröva en Unix annan än Linux kan någon av dessa vara ett naturligt val.

Solaris har allmänt använts i högskolevärlden och torde ha den största marknadsandelen av de kommersiella ”riktiga” unixarna. Solaris finns att få också för x86-datorer.

Mac OS X är BSD-baserat. Det den vanliga användaren ser bygger på tidigare Mac-versioner, men Unix-infrastrukturen finns tillgänglig, program skrivna för Unix kan installeras och operativsystemet kan användas som en vanlig Unix.

Övriga Unix-varianter torde komma ifråga främst om du hört om den förut och därför vill bekanta dig med den eller om du har Unix-hårdvara och därför är intresserad av Unix-varianten hårdvaran ursprungligen är konstruerad för – eller du blir erbjuden tillgång till ett sådant system.

Hårdvara redigera

De flesta Unix-varianter har traditionellt sålts tillsammans med hårdvara. Solaris fungerade på Sparc-maskiner, Digital Unix på Alpha-maskiner o.s.v. Numera finns ett flertal Unix-varianter också för vanliga PC-datorer med x86-hårdvara. Några Unix-varianter såsom GNU/Linux och NetBSD finns för ett otal typer av hårdvara.

När du vill installera UNIX på din dator ska du först se till att din hårdvara stöds av den Unix-variant och distribution du tänker använda. Olika Unix-varianter har olika gott stöd för ovanligare hårdvara. Ofta kan du helt enkelt försöka installera ditt operativsystem, skriva upp eventuella felmeddelanden och fråga om de komponenter som verkar att inte fungera.

Om du köper en ny dator är det bäst om säljaren känner till Unix-varianten ifråga och kan erbjuda en maskin som han vet att stöds av denna. Du kan också be att få returnera eller byta ut datorn eller enskilda delar om de inte fungerar.

Installation redigera

Information om hårdvara redigera

För att installera någon Unix-variant på din dator behöver du ofta veta en del saker om din dators hårdvara. Även om installationsprogrammet i många fall kan avgöra vad som finns installerat kan det minska risken för problem om du sökt fram informationen i förväg.

För att informationen skall finnas till hands är det bra om du har sparat alla små manualer och texthäften som du fått med din dator och kringutrustning, och har dem tillgängliga under installationen.

Om du inte har dem kvar kan det vara bra om du kollar igenom all information det nuvarande operativsystemet erbjuder. Sådan finns till exempel i Windows kontrollpanel under ”Hårdvaruenheter” eller liknande ikon. Där står ofta namn på grafikkort, ljudkort och liknande. Observera ändå att Windows ofta använder ett marknadsföringsnamn på komponenten så som den sålts medan det du behöver kan vara koden för en enskild krets. Du kan också använda en live-Linux som stöder datorarkitekturen och ge kommandon som lspci, lsusb och cat /proc/cpuinfo.

Installationsprocedur redigera

Installationsproceduren skiljer sig betydligt mellan olika Unix-varianter. Du bör se till att du har någon uppfattning om hur installationsprocessen skall gå till, helst så att du har tillgång till en installationshandbok eller någon som varit med förr. Diskussionsgrupperna på Usenet kan ofta stå till tjänst med råd och länkar till information, i de fall du inte kan vända dig direkt till försäljaren.

I allmänhet använder man antingen en installations-CD eller uppstart direkt över nätet. Ofta är datorn inställd att starta upp operativsystemet på hårddisken och måste skilt uppmanas att istället starta från CD eller nätverk. I allmänhet skall man alltså stoppa uppstarten i ett relativt tidigt skede genom att trycka en viss tangentkombination, på PC:n ofta DEL, F2 eller F10 på Sparc-maskiner Stop+A eller L1+A (eller ”Break” från en terminalkonsol).

Här följer huvuddragen av installationen av en typisk Linux-distribution. Vanligen använder man en installations-CD och hämtar ytterligare programvara från distributionens servrar på Internet. Installation på de mest märkliga vis är ofta möjlig, men kanske inte att rekommendera för en nybörjare. Momenten kommer inte nödvändigtvis i samma ordning som nedan och en del moment kan tillkomma.

  • Sätt in CD:n, starta datorn, ändra vid behov BIOS-inställningarna så att systemet startas från CD:n.
  • Ofta har du möjlighet att ge tilläggsdirektiv i form av en kommandorad för att möjliggöra en anpassad installation. Ibland kan man byta vy med Alt-tangenten kombinerad med någon funktionstangent (F1-F12).
  • Ange språk och tangentbordslayout. Godkänn förval efter att du valt svenska.
  • Ange hur hårddisken skall partitioneras. Om du vill bibehålla ett annat operativsystem vid sidan om bör du hålla tungan rätt i mun. De flesta distributioner upptäcker det gamla systemet och hanterar situationen väl, men du har all makt att ställa till det för dig.
  • Ange vilken typ av användning du tänker dig för maskinen. Installationen väljer programvara att installera enligt detta val. Inget hindrar att du installerar ytterligare programvara senare.
  • Ange datorns namn och domännamn. Kolla med nätverksadministratören.
  • Ange nätverkskonfiguration. Ofta sköts det mesta automatiskt med hjälp av DHCP.
  • Ange lösenord för ”root”, som är administratörskontot (om du valt någon Ubuntu-distribution sköts administrationen på annat sätt).
  • Ange användarnamn och lösenord för dig själv.
  • Starta om maskinen. Logga vid behov in som administratör (Ctrl-Alt-F1 ger tillgång till kommandoraden om maskinen startats i grafiskt läge, Ctrl-Alt-F7 byter tillbaka till grafiskt läge)
  • Konfigurera diverse program

Datorn är nu klar att använda (använd ditt egentliga användarnamn). Ofta vill man ännu installera ytterligare programvara, skapa konton för andra användare samt kontrollera och finslipa olika inställningar.

Att börja använda Unix redigera

Vi antar att du har loggat in på ditt Unix-användarkonto. Vad sedan?

Om du har ditt Unix-konto på en server i en annan stad får du räkna med att du möts av en svart ruta med en kommandotolk färdig att utföra dina befallningar, bara du skulle lyckas formulera dem. Misströsta inte! Vi återkommer till att använda kommandotolken i ett senare kapitel, liksom till möjligheterna att starta ett grafiskt användargränssnitt i denna situation.

Den mer lyckosamma användaren möts av en skrivbordsmiljö som åtminstone i viss mån påminner om vad du är van med från Windows. Vi börjar med det.

Identifiera det du känner igen redigera

 
Skrivbordsmiljön GNOME.
 
Skrivbordsmiljön KDE.

Först identifierar man saker man känner igen. Skrivbordet i UNIX kan påminna i varierande grad om Windows skrivbord, och programmen som finns tillgängliga varierar. När det gäller de så kallade skrivbordsmiljöerna är likheterna med Windows ganska stora.

Det är också möjligt att den grafiska miljön är radikalt annorlunda. Antingen har någon valt inställningar som skiljer sig från dem i Windows eller så har du en mer spartansk miljö. Du kan prova att klicka till exempel på bakgrunden med musens olika knappar och se om du får fram någon begriplig meny, med program du känner igen. Om så är fallet kan du pröva att arbeta en stund. Om du inte känner igen programnamnen så kan du först ta en titt på programlistan nedan, flera av programmen fungerar (nästan) som sina Windows-motsvarigheter, också om namnet är obekant.

Om du inte hittar några bekanta program i menyerna kan du försöka hitta en kommandotolk, kanske med namnet xterm, rvterm, shell, ksh, konsole eller liknande. Det är möjligt att de bekanta programmen är installerade, men inte finns med i menyerna. När du startat en kommandotolk kan du skriva programmets namn följt av ett radbyte och hoppas på det bästa. Om de första försöken inte lyckas är det kanske bäst att läsa kapitlet om att använda kommandotolken och att kontrollera kapitlet om Unix egenheter.

Då du arbetat en stund med några bekanta program har du hoppeligen insett att Unix inte är alltför svåranvänt. Om du hade otur råkade du ut för någon av olikheterna mellan Unix och Windows. Också om dessa egenheter kan sätta effektivt stopp för arbetet, så är de rätt enkla att lära sig. Fortsätt gärna med introduktionen till dessa egenheter.

Koncept som är radikalt annorlunda i UNIX redigera

Olika egenheter med UNIX redigera

För en Windowsanvändare kan UNIX te sig underligt, eftersom systemet har en historia som sträcker sig tillbaka till 1969, medan Windows tar sin början med MS-DOS på 1980-talet, i sin tur med rötter i CP/M. Man kan inte tala om att det ena systemet är mer "naturligt" än det andra, det är en fråga om vad man är van vid. I alla operativsystem finns det saker som är idiomatiska, d.v.s. underligheter som man bara helt enkelt får lov att lära sig.

Filträd och anslutning av enheter redigera

Unix använder bara ett enhetligt filträd. Alla filer finns under roten, som betecknas ”/”. Olika enheter kan anslutas var som helst i filträdet, med en katalog som anslutningspunkt (varvid katalogens eventuella innehåll blir otillgängligt). Enhetsbokstäver används inte.

Beroende på Unix-variant och inställningar kan man vara tvungen att ansluta enheter manuellt. Vilka enheter som ansluts automatiskt eller kan anslutas manuellt avgörs genom inställningar som administratören kan vara tvungen att se över.

Filnamn redigera

Unix behandlar internt filnamn som en rad 8-bitiga tecken. Alla tecken utom snedstreck (”/”) och NUL (0x00) är tillåtna. Hur tecknen tolkas beror på användarens omgivning, till exempel så att tecken kodade med Latin-1 eller utf-8 syns ”rätt” om detta är den kodning som för tillfället är vald. Stora och små bokstäver betraktas som olika: det kan samtidigt finnas olika filer README, Readme och readme i samma katalog (en del programs sökfunktioner kan ställas in att betrakta små och stora bokstäver lika). Vanligen används små bokstäver om det inte finns särskilda skäl till annat.

Filextensioner används av flera program men är i de flesta fall på inget sätt obligatoriska.

Många specialtecken ställer till problem, då de kan ha betydelse för kommandotolken. Siffror, bokstäver, punkt, plus och bindestreck är oproblematiska. Ovanliga bokstäver (åäöàéü m.fl.) kan visas fel, men ger inte allvarliga problem. Mellanslag undviks eller ersätts med ”_”.

Filer vars namn börjar med punkt är ”dolda”. De visas i allmänhet endast om man explicit ber om det. Programmens konfigurationsfiler i hemkatalogen samt underkatalogerna . och .. är de vanligaste dolda filerna.

Rättigheter redigera

Filer – och därmed det mesta i Unix – skyddas genom att systemet för varje fil håller reda på filens ägare och grupp samt läs-, skriv- och exekveringsrätt för dessa och för andra användare. En användare kan genom sin umask reglera rättigheterna till nya filer. Normalt har ägaren alla rättigheter och gruppen läs- och exekveringsrättigheter (till programfiler och kataloger); övriga användares rättigheter varierar. Gruppen är normalt antingen personlig (med samma namn som kontot), en grupp enligt företagsavdelning eller liknande eller users (alla normala användare).

Grafisk miljö redigera

Det grafiska användargränssnittet tillhandahålls inte av Unix-kärnan. En X-server, med egna drivrutiner för skärmkorten, står för den grundläggande infrastrukturen och andra program kommunicerar med servern via nätet eller lokala gränssnitt. Ett speciellt program, fönsterhanteraren, tar hand om placeringen av fönstren, ger dem ramar, förminskar och förstorar dem, ger tangentbordsfokus åt rätt program och liknande uppgifter.

Menyer, dialoger och andra grafiska element hanteras vanligen via ett programbibliotek. Det finns en handfull allmänt använda bibliotek. Dessa kan ge rätt olika intryck. Program skrivna för en och samma skrivbordsmiljö använder sig av samma programbibliotek. Deras utseende är därför relativt enhetligt.

Det finns ett antal olika skrivbordsmiljöer. Varje miljö tillhandahåller en uppsättning program som täcker de vanligaste behoven. En skrivbordsmiljö tillhandahåller ungefär vad en Windows-användare förväntar sig att hitta, även om programutbudet då det gäller mer speciella behov är ett annat än under Windows.

Ett program behöver inte vara skrivet för en speciell skrivbordsmiljö. Program skrivna för olika skrivbordsmiljöer kan användas tillsammans och det fungerar i allmänhet utan större problem.

Dokumentation och problemlösning redigera

Dokumentation och hjälpsystem för Unix-program skiljer sig betydligt från motsvarande Windows-system. Likaså skiljer sig de typiska problemlösningsmetoderna.

Den främsta dokumentationen är referensmanualen, man-sidorna. Den ger ofta god information för den som från förut är bekant med koncepten. GNU-program har info-dokument med en strävan till mer nybörjarvänlighet. Dessutom följs många program av annan dokumentation av varierande slag.

Kontorsprogram, webbläsare och skrivbordsmiljöer har ofta en dokumentation som påminner om den för Windows-program. Information om övrig programvara är radikalt annorlunda: användargränssnittet beskrivs sällan, utan istället beskrivs konfigurationsfiler, installation och möjligheter att anpassa programmet för olika typers användning. Användaren antas ofta vara en kollega till den som skrivit programmet, med samma allmänna kunskaper om de berörda koncepten.

Vid problemlösning är de olika linuxrelaterade forum som finns på nätet till mycket stor nytta.

Mångfald och olika traditioner redigera

Programvaran i Unix kommer från olika traditioner. Av grundläggande verktyg (och systemanrop) finns det ofta två varianter, ett från AT&T:s System V och ett från Berkeley-universitetets BSD. Konventionerna skiljer sig något, men båda räknas i denna bok som traditionell Unix.

Med Free Software Foundation och dess GNU-projekt uppstod en ny tradition. GNU är Unix-kompatibelt, men avsikten var och är att skapa ett nytt operativsystem, med många egna konventioner.

I synnerhet kontorsprogram, skrivbordsmiljöer och webbläsare har ofta utvecklats för Windows-användare. Många av konventionerna är hämtade från den miljön. Andra program kan ha bakgrund i stordatorer, VAX eller andra system och bära tydliga spår av ursprunget.

Eftersom Unix' användare till stor del varit programmeringskunniga, Unix långt består av enkla väldokumenterade delar och det funnits en tradition av att dela med sig av sitt arbete så har enskilda personer och småprojekt utvecklat varianter på många av de centrala programmen, såsom kommandotolken (sh, csh, tcsh, ksh, zsh, bash, ash, dash) och fönsterhanteraren (twm, fvwm, enlightenment, afterstep, metacity, kwin, xfwm, beryl). Det är också ofta möjligt att i mycket hög grad anpassa ett visst program till egna preferenser och behov.

Dessa olika traditioner och inställningen till mångfald bidrar till att Unix kan ge ett kaotiskt intryck jämfört med Windows. Det är bra att minnas att den man frågar om råd högst sannolikt använder en annan uppsättning program med helt andra inställningar; han har lättare att beskriva vad man skall göra än exakt hur det skall göras.

Mångfalden är ändå en styrka. Den som vill har valmöjligheter. Andra kan använda det i en viss omgivning vanligaste programmet i dess standardutformning. Miljön och kulturen gör det även lättare för mindre programmeringsprojekt att pröva olika idéer. Mångfalden är något det lönar sig att vänja sig vid.

Språk- och landsinställningar redigera

Unix är ett fleranvändarsystem och användarna kan befinna sig i olika delar av världen. Av den anledningen använder systemklockan UTC. Program installeras normalt inte i olika språkversioner. Språk och tidszon hanteras genom inställningar som de enskilda användarna kontrollerar.

Systemets tidszon och språk samt användarnas förval anges separat i konfigurationsfilerna. Vad som gäller för varje enskilt program bestäms vid programstart av värdet på speciella miljövariabler. Samma program kan därför ha olika inställningar vid olika sessioner, även samtidigt.

Stödet för olika språk kan till vissa delar (t.ex. fonter och ordböcker) behöva installeras separat. Alla program följer inte konventionen med miljövariabler (i synnerhet språken för webbläsare och ordbehandlare måste ofta ställas in separat. Dessutom skiljer sig dessa ofta från användargränssnittets och dokumentationsspråket).

Programmering redigera

Unix är en mycket bra omgivning för programmering. Unix tillhandahåller många verktyg som är nyttiga för en programmerare. En kompilator finns i allmänhet installerad, liksom ett antal tolkar för olika skriptspråk. GNU-projektets verktyg kan lätt installeras och tack vare rörelsen för fri programvara finns en stor mängd färdig kod som kan studeras och ofta också kopieras till egna projekt.

Trots detta kan miljön kännas främmande för den som kommer från Windows. Många Unix-programmerare använder sin textredigerare som primärt verktyg, och denna erbjuder många av de funktioner som i Windows erbjuds av en integrerad utvecklingsmiljö.

Det finns ett antal integrerade utvecklingsmiljöer för Unix som liknar dem i Windows, men det lönar sig att med öppet sinne bekanta sig med programutveckling så som den oftast hanteras i Unix-miljö.

Filformat redigera

Det finns en uppsjö små verktygsprogram avsedda att användas via kommandotolken. Dessa hanterar ofta data rad för rad och är i första hand tänkta för data i textformat. Så snart något kan uppfattas som en textfil kan det manipuleras mycket enkelt och mångsidigt. Av den anledningen undviker man binärfiler, utom då sådana är klart mer ändamålsenliga.

Virushantering redigera

Virus förekommer praktisk taget inte i Unix. Däremot har försök att för hand bryta sig in i Unix-system förekommit i alla tider. Numera är försöken ofta automatiserade.

Om någon kommer åt att köra sin kod i någon annans namn kan han starta en kommandotolk som lyssnar på nätet och därmed göra vad han vill i den andres namn. Om denna andra är root är systemet förlorat eftersom varken systemverktyg eller operativsystemkärna längre är att lita på. Total ominstallation rekommenderas.

För Unix-folk är virus en absurd företeelse: om det finns ett säkerhetshål som ett virus kan utnyttja, så räcker det inte att bli av med detta virus. Någon annan kan utnyttja samma hål. Att städa efter viruset är också svårt, då man inte kan veta huruvida det var frågan om en modifierad variant som gömde extra bakdörrar för att sedan göra om sig till standardvarianten.

Det enda rimliga för en Unix-person är att täppa till det säkerhetshål som överhuvudtaget tillät viruset att sprida sig. Unix-administratörer har ansvar för att systemet är uppdaterat vad gäller säkerhetslappar och att olika program är rätt konfigurerade.

Antivirus-programvara finns ändå tillgänglig för Unix med tanke på servrar som förmedlar filer till Windows-maskiner (e-post, nätskivor etc.).

Skrivare redigera

Olika administrationsverktyg gör det i allmänhet möjligt att installera skrivare på liknande sätt som i Windows, men skrivarsystemet är annorlunda uppbyggt.

I Unix skickar programmen antingen ren text eller postscript till utskriftskön. Servern som hanterar utskriftskön är mer eller mindre skicklig på att känna igen också andra format och förvandla dem till ett som skrivaren förstår. Några olika system används: det från System V, det från BSD och det nya CUPS.

Drivrutiner redigera

Eftersom få hårdvarutillverkare skriver drivrutiner för Unix tillhandahålls drivrutinerna för det mesta med operativsystemet. Det betyder dels att stödet kvarstår oberoende av tillverkarens intresse att fortsättningsvis stöda hårdvaran, dels att all hårdvara inte stöds.

Fillåsning och filers liv redigera

I Unix används i allmänhet kooperativa fillås, d.v.s. programmen som skall använda en fil kontrollerar själva huruvida den är ”låst” och kan om de vill använda filer oberoende av eventuell låsning. Filer som inte skall läsas eller modifieras skyddas med rättighetssystemet. Normalt används låsning sparsamt. Det är nästan alltid möjligt att läsa en fil som används av ett annat program.

Ett relaterat koncept är hur filer stryks eller byts ut: ofta görs ändringar i en ny version av en fil, medan den gamla lämnas kvar. När ändringarna gjorts flyttas den nya filen till det gamla namnet varvid den gamla versionen försvinner ur filträdet, men finns kvar i filsystemet så länge som den används. Ett program kommer alltså i allmänhet inte att råka ut för att en fil förändras medan den används, medan å andra sidan sådan användning inte hindrar andra program från att modifiera eller byta ut filen.

Det att en fil kan försvinna ur filträdet utan att försvinna från skivan kan ibland vara förvillande: om t.ex. en logfil växer okontrollerat räcker det inte att stryka den: i så fall fortsätter den att ta up allt mer skivutrymme tills programmet som skriver till den stoppas eller fås att stänga filen.