Operativsystemsintroduktion



Relevanta dokument
Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Operativsystem och användargränssnitt

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Föreläsning 2. Operativsystem och programmering

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Introduktion till hårdvara, mjukvara och operativsystem

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Tanka program KAPITEL 7. Shareware och freeware. Shareware. Freeware

Datorkunskap teori v1.2 Jonas Holmstén Datorkunskap. Kursmaterial v1.2

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

DIG IN TO Dator och nätverksteknik

Strul med Windows 10? Här är lösningarna på de vanligaste problemen

Operativsystem Introduktion

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Datorteknik ERIK LARSSON

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Allmänt om programvaror och filer i Windows.

Microsoft Office historik. - making IT easier

Dedikerad Server Vilket operativsystem ska jag välja? Är ni i startgroparna och ska beställa en dedikerad server eller en virtuell server?

Installation av atmel Studio på mac / linux

IDE USB kabel Windows XP, Vista 7 löäzxcvbnmqwertyuiopåasdfghjklöäz [Version 1.4, ]

LAJKA-GUIDE. Så kör du. Windows på din Mac. 7 Fler spel och program 7 Enklare än Bootcamp 7 Körs direkt i OSX 7 Helt gratis

Att använda DVD-RAM-skivor

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

komplett kopia av hårddisken 20 minu En instabil dator som ofta drabbas av fel får du snabbt på rätt kurs med en kopia av Windows och alla program.

Administration / Disk Management. EC Utbildning AB

Din manual HP COMPAQ EVO D310 MICROTOWER

LABORATIONSRAPPORT Operativsystem 1 Laboration 1, Ghost, pingpong och Windows 2003 installation

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

Fullständig prestandahantering

Boot Camp Installationshandbok

Minnesisolering för virtuella maskiner en hypervisorstudie

Operativsystem. Hierarkin för hårdvara läses nerifrån

LAJKA-GUIDE. Jätteguide till molnets 9 bästa. näthårddiskar. 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips

Universe Engine Rapport

Innehålls förteckning

Moderkortet Persondatorer Moderkortet Innehåll

Boot Camp Installationshandbok

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Du kan även lyssna på sidorna i läroboken: Teknik direkt s Lyssna gör du på inläsningstjänst.

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Nya möjligheter med Windows Vista

Introduktion till programmering, hösten 2011

Info till IT - dioevidence Nationell uppföljning inom sociala områden

DIG IN TO Dator och nätverksteknik

Viktigt angående version av Win 7 och Win 8 OS

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

LAB 1 MS-DOS MicroSoft-DiskOperating System -Microsoft MS-DOS = synonymt med DOS -IBM PC-DOS -Novell DR-DOS

Stödet för Windows XP upphörde

Tips och tricks. Några bra tips. Lägg till sökvägar

Datagrund Vista. Grundläggande filhantering

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

INSTALLATION AV VITEC MÄKLARSYSTEM

Laboration 2 Datorverktyg vid LiU

Operativsystem - Windows 7

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

VI SI CLOSETALK AB SYSTEMKRAV

Acer erecovery Management

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Kort om World Wide Web (webben)

Användarhandbok. Nero BackItUp. Ahead Software AG

Boot Camp Installationshandbok

Föreläsning 3. Programmering, C och programmeringsmiljö

Vilken version av Dreamweaver använder du?

Installation av WinPig Slakt

Installera SoS2000. Kapitel 2 Installation Innehåll

Instruktion för användande av Citrix MetaFrame

Manual - Phonera Online Backup

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

Handbok för Nero ImageDrive

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

1 Nyheter i Filr 2.0 Desktop-programmet

Storegate Pro Backup. Innehåll

Filöverföring i Windowsmiljö

Lathund Blanketthotell Komma igång

Linuxadministration I 1DV417 - Laboration 1 Installation. Marcus Wilhelmsson 15 januari 2013

Office 365 Windows 10

Så delar du filer. utan att bli övervakad LAJKA-GUIDE

Henrik Asp. Allt du behöver veta för att KÖPA DATOR

Projekt Fake för Virtutech

22 Användarnas hemmamappar

F Secure Booster är ett verktyg för att snabba upp och städa upp i din pc eller

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

Installationsanvisning för Su Officemallar 2011 För Mac Word och PowerPoint

Systemkrav WinServ II Edition Release 2 (R2)


Städa hemområdet (och andra filsystem)

Tekniska system och deras funktion och uppbyggnad.

Miljön i Windows Vista

FORT! Installera programmet nu!

Transkript:

Operativsystemsintroduktion Kursmaterial v1.1 1

Introduktion OS... 3 Introduktion... Fel! Bokmärket är inte definierat. Operativsystemets delar... 4 Operativsystemets funktioner... 6 Operativsystemshistoria... 8 1950 talet: Batchsystem... 8 1960 talet: Time sharing... 9 1970 talet: UNIX & C... 9 1980 talet: DOS, Windows & System 1 6... 10 1990 talet: Windows 3.x, Windows NT, System 7, Mac OS 8 & Linux för servrar... 12 2000 talet: Windows 2000 Windows 7, Mac OS 9 X & Linux för hemmet... 14 Filsystem... 19 Filstrukturer... 19 Vanliga diskfilsystem... 20 Microsofts operativsystem:... 20 Linuxbaserade operativsystem:... 21 Filsystem för optiska läsare:... 21 Datakomprimering... 22 Introduktion... 22 Huffmans komprimeringsalgoritm... 23 Frekvenstabell... 24 Huffmanträdet... 24 Dekomprimering... 28 Effektivitet... 28 Drivrutiner... 30 Introduktion... 30 Två delar... 32 2

Introduktion OS För att man ska kunna använda en dator, är man beroende av operativsystemet eller OS. Vad är då ett operativsystem? Datorns enheter kommunicerar internt med hjälp av strömpulser som vi brukar representera med binära talsekvenser. De här binära talsekvenserna är ganska svåra för de flesta av oss människor att förstå. För att på något vettigt sätt kunna använda en dator, måste vi ha en länk till datorn eller ett gränssnitt av något slag. Operativsystemet skyddar oss från binärkoden Generellt utgörs ett gränssnitt av de metoder vi kan kommunicera med datorn, och de metoder datorn kan kommunicera med oss. Ett gränssnitt kan se ut hur som helst. Windows gränssnitt är fönsterhanteraren. Det MS-DOS hade som gränssnitt var text. Altair 8800 hade en samling lampor och vippkontakter som gränssnitt. Altair 8800 med sitt intuitiva gränssnitt 3

Något måste också se till att de program vi vill använda får tillgång till de resurser de behöver. Förutom att vara ett gränssnitt för oss människor och tillhandahålla resurser för programvara, måste något se till att datorns olika enheter kan kommunicera med varandra och att ingen enhet tar någon annan enhets resurser. Operativsystemets uppgift är att tillgodose alla dessa behov. Operativsystemets uppgift är främst att ordna kommunikation mellan enheter Operativsystemets delar Operativsystemet består av kärnan, grundläggande användarprogram och systembibliotek. 4

Kärnan (kernel på engelska) är den innersta delen av operativsystemet (därav namnet) - den som ligger närmast hårdvaran - som hanterar systemets uppstart, enheternas kommunikation med varandra och resurstilldelning (till exempel minneshantering eller processorbalansering vid flera CPUer). Här ser vi en schematisk skiss över Ubuntu, med därnan innerst mot hårdvaran De grundläggande användarprogrammen är en samling applikationer som behövs för att kunna installera nya program eller enheter, redigera text, hantera filer och mappar och liknande. Filhantering är en grundläggande funktion som tillhandahålls av OS, här på en Ericssonmobiltelefon I systembiblioteken ligger de filer som krävs av andra program, såsom grafikbibiliotek, runtimefiler för diverse programmeringsmiljöer och så vidare. 5

Operativsystemets funktioner Vid programexekvering (programkörning) är det operativsystemets uppgift att se till att det finns tilldelat minne och att de resurser som programmet behöver finns tillgängligt. Avbrott (på engelska interrupt) kallas det när en enhet behöver uppmärksamhet från någon avde övriga enheterna, och skickar en signal till operativsystemet. Interruptet behandlas sedan av operativsystemet på lämpligt sätt beroende på vad som orsakat det. Moderna CPUer och operativsystem stödjer dual mode operation(tvåläges-operation på svenska) som innebär att applikationer körs med olika behörighet på operativsystemsnivå - protected mode och supervisor mode. Vid uppstart är OSet i supervisor mode - alltså har obegränsad tillgång till systemets resurser. När det lämnar över CPUn till något annat program går OSet ner i protected mode, där det har tillgång till en begränsad mängd resurser - både för att skydda programmets data och för att skydda OSet från programmets eventuella skadliga (avsiktliga eller oavsiktliga) bieffekter. När ett program vill ha tillgång till fler resurser än protected mode tillåter, får användaren en förfrågan om operationen är i sin ordning. Dual mode operation skyddar OSet från skadlig kod Minneshantering kallas det när operativsystemet ordnar minne för en ny process och ser till att eventuell data som legat i samma minnesområde sparas undan. Minneshanteringen ser också till att ingen process kan skriva i ett minnesområde som ägs av någon annan process. En process är den för tillfället körande delen av ett program. När det fysiska minnet - RAM - inte räcker till, måste processernas data lagras någon annanstans. Då får operativsystemet använda sig av virtuellt minne, det vill säga någon slags sekundärminne (för mer information om sekundärminne, se avsnittet om dators delar). Detta kallas också swapping. 6

För att kunna köra flera program samtidigt, måste operativet utnyttja multitasking. De flesta processorkärnor kan köra en eller möjligtvis två processer samtidigt (det finns ju i och för sig flerkärninga CPUer, se avsnittet om CPU). För att användaren ska uppleva att det faktiskt går att köra fler applikationer än så, måste någon form av snabb växling av processer ske. Detta kallas time-sharing. En del av operativsystemskärnan kallas scheduler (schemaläggare på svenska), som bara ser till att time-sharingen fungerar, och att varje process får den tid den behöver. Drivrutiner ser till att kärnan vet hur den ska kommunicera med olika enheter. Man kan säga att drivrutinernas uppgift är att abstrahera hårdvaran. Det finns många olika tillverkare av hårdvara, och för att programmerare inte ska behöva skriva sin program specifikt för en viss tillverkares hårdvara, ordnar drivrutinen ett gränssnitt mot operativsystemet. 7

Operativsystemshistoria 1950 talet: Batchsystem På 50-talet använde datorerna hålkort och kostade fantasieggande summor pengar. Hålkort var pappkort som man stansade hål i, som motsvarade bokstäver och siffror. Dessa kort matade man in i stora buntar i datorerna (som var så stora att de tog upp flera rum) på kvällen. Sedan arbetade datorn med informationen över natten och kunde presentera resultatet på morgonen. Man kallar dessa typer av system för batchsystem, efter engelskans ord batch för bunt. Dessa typer av datorer höll sig kvar på större företag och statliga verk långt in på 80-talet. Hålkort användes bl.a. för att hålla reda på deltagarna i Vasaloppet 1969 8

1960 talet: Time sharing Under 60-talet kostade datorerna fortfarande oerhört mycket pengar. Man hade inte råd att ge varje person som skulle arbeta en egen dator, utan man kopplade upp sig med en s.k. terminal, medan datorerna ägdes och sköttes av stora företag. För att varje användare skulle känna att de hade obegränsad tillgång till datorkraften, växlades processorns tid mellan användarnas processer. Detta kallas Time-sharing. Ett exempel på timesharing-system är Multics. Terminaler har ingen egen processor och inget eget minne, utan kopplas mot en central stordator 1970 talet: UNIX & C 1969 funderade Ken Thompson, en programmerare på Bell Labs (som stod bakom Multics) på att skapa ett operativsystem som skulle köras på en (för tiden) liten dator. Han och hans arbetskamrat Dennis Ritchie kallade sin skapelse UNIX. Eftersom UNIX var designat att köras på smådatorer (det vill säga, datorer som universiteten och kanske mindre företag hade råd att köpa - de var fortfarande för dyra för privatpersoner) blev det mycket populärt bland universitetsstuderande. 9

Eftersom utvecklingen av program till UNIX - liksom UNIX självt - skedde mestadels i programspråket C (som Dennis Ritchie hade skapat), blev C snart standardspråk. UNIX ägdes fortfarande av Bell Labs och kostade i runda slängar skjortan och lite till. Ken Thompson och Dennis Ritchie, skaparna av Unix 1980 talet: DOS, Windows & System 1 6 I slutet på 70-talet kom persondatorn. Detta innebar att man inte längre behövde dela processortid med andra, utan persondatorerna hade egen processor, minne och lagringsutrymme. Detta innebar också att det behövdes en ny typ av operativsystem - avsett för en ensam användare. 1979 släppte Apple Computer sitt operativsystem DOS. UNIX fortsatte (och fortsätter än idag) vara ett stort operativsystem på universitet och högskolor. DOS var ett textbaserat operativsystem, precis som UNIX 10

Under 1979 började utvecklingen av Apple Computers Macintosh-datorer. 1984 släpptes den första versionen av Mac-operativsystemet System, följaktligen kallad System 1. Det var helt grafiskt, till skillnad från Microsofts grafiska DOS-skal. System 2-6 släpptes under tiden 1985-1990. Det första Macintosh-operativsystemet System 1 1985 släpptes den första versionen av Windows - Windows 1.0 - Microsofts grafiska gränssnitt till DOS. Detta betyder att det fortfarande låg en kärna av DOS i botten, med ett "skal" av grafik ovanpå. Windows, det grafiska skalet till DOS 11

1990 talet: Windows 3.x, Windows NT, System 7, Mac OS 8 & Linux för servrar 1990 släpptes nästa version av Windows - Windows 3.0 - som blev mycket populärt. Windows 3.11 for Workgroups med nätverksstöd, kom inte förrän 1992. 1991 satt finländaren Linus Thorvalds på universitetet i Helsingfors och funderade på ett operativsystem som skulle påminna om UNIX, men vara helt gratis. Han lade ut idén på en mailing-lista, och satte igång att utveckla Linux med hjälp av alla intresserade som läst mailinglistan. Han visste nog inte då att det skulle bli en revolution i datorvärlden. På ett par år tog Linux över som operativsystem på de flesta webservrar och fick en stor mängd anhängare på grund av att det var helt gratis. Linux, ett gratis operativsystem Windows med DOS i grunden fortsatte att utvecklas, men framför allt företag och organisationer efterlyste ett säkrare och mer stabilt operativsystem med bättre nätverksstöd. Microsoft släppte 1993 sitt Windows NT, där NT stod för New Technology. Windows NT hade stöd för en mängd nya tekniker (som man kunde ha gissat av namnet) och var designat för att vara igång länge. Det gamla Windows med DOS i botten klarade max omkring 30 dagar innan det kraschade. 12

Det var inte många program som var gjorda för det gamla Windows som fungerade i Windows NT, och det var ett problem. Windows New Technology 1995 kom Windows 95 (DOS-kärna) och 1996 kom Windows NT 4.0 (NTkärna) som båda hade ett nytt utseende, som ligger till grund för hur Windows ser ut idag, med bl.a. ett aktivitetsfält längst ner. Windows NT 4.0 var också första gången som Microsoft släppte flera olika varianter av ett operativsystem (Windows NT 4.0 Server, Windows NT 4.0 Enterprise Server, Windows NT 4.0 Embedded, Windows NT 4.0 Workstation och Windows NT 4.0 Terminal Server). Det har man fortsatt med på de NT-baserade Windows-varianterna. 1998 släpptes (har du en bra gissning för namnet?) Windows 98, som i princip var Windows 95 med förbättringar. 13

1991 kom Macintosh-operativsystemet System 7. I och med 7:an tog man bort bakåtkompabiliteten, som gjort att man kan kunde program från äldre versioner av operativsystemet. Detta möjliggjorde en rejäl prestandaförbättring. Mac OS 8 kom 1997 och erbjöd bland annat en bättre hantering av multi-tasking (som gör att operativsystemet kan köra flera applikationer samtidigt). Mac OS 8 2000 talet: Windows 2000 Windows 7, Mac OS 9 X & Linux för hemmet På grund av att det fortfarande fanns en klyfta mellan gamla Windowsprogram och Windows NT-program, försökte Microsoft år 2000 skapa ett Windows som skulle klara att köra både de tyngre programmen som NT klarade med samma stabilitet, och de spel och underhållningsprogram som gamla Windows klarade. Resultatet blev Windows 2000. Den nya versionen nådde inte hela vägen fram som bro mellan Windows-varianterna, men innebar en rejäl uppfräschning av den numer ganska gamla nya (!) teknologin NT. 14

För att täcka upp för det nu åldrande Windows 98 tog man fram Windows ME, som egentligen bara var en liten uppfräschning av Windows 98. Windows 2000, överbryggaren mellan Windows och Windows NT? 2000 släpptes även Mac OS 9. 9:an var en logisk fortsättning på Mac OS 8. En större förändring kom i och med nästa version. Det sista Mac OS Classic 15

2001 kom Windows XP, som var en rejäl uppfräschning av NT-kärnan och med ett nytt användargränssnitt. Den överbryggar i princip det gap som fanns mellan DOS-baserade Windows och Windows baserat på NT-kärnan. Windows XP, överbryggaren mellan Windows och Windows NT. 2001 kom Mac OS X som ver det första av Apples operativsystem som bygger på UNIX (ja, den gamla stofilen från sent 1960-tal, som faktiskt lever än idag!). I och med släppet av detta kallade man alla äldre versioner för "Mac OS Classic". För att kunna köra Mac OS 9-applikationer har man byggt in en emulator-lösning (en emulator är enkelt sagt ett program som härmar ett annat operativsystem). Mac OS X är också det första operativsystemet till Macintosh som har en kommandotolk (som är ett fönster där man kan skriva kommandon som på den gamla goda DOSoch UNIX-tiden). Mac OS X, med ekon från 1969 16

2007 släpptes Windows Vista (även om många företag och skolor istället valde att fortsätta använda Windows XP). Microsoft hade byggt in en hel del säkerhetsfunktioner i Vista och användargränssnittet Aero (endast i Vista Ultimate och Vista Premium) bjöd på snygga 3D-effekter. Dock drogs Vista med en del prestandaproblem och drivrutinsstödet var bristande vid släppet. Windows Vista bjuder på 3D-grafik i användargränssnittet Problemen med Windows Vista låg helt säkert bakom att man redan 2009 släppte Windows 7. Windows 7 är en inkrementell (inkrementell betyder förändringar av ursprunget, alltså inte en helt ny version) uppdatering av Vista-kärnan och man har siktat på att göra den snabbare och säkrare. Windows 7 - Windows Vistas efterföljare Linux fortsätter att växa och börjar nu ta mer och mer av hemmamarknaden, såväl som servermarknaden. Det har kommit fler och fler versioner av Linux, och en del är lika enkla eller enklare att använda än Windows. 17

Vill man prova Linux utan att riskera att förstöra sin Windowsinstallation kan man använda någon av alla live cd-distributioner som finns. Ett tips är Ubuntu. Ta hem en.iso-fil och bränn den på en cd (med t.ex. InfraRecorder). Sedan ställer du in din dator att boota från CD (i BIOS), starta sedan datorn med cd-skivan i. Ubuntu - Linux för oss vanliga användare 18

Filsystem Ett filsystem är ett system för att kunna lagra data i hanterbara filer samt katalogstruktur, namn och metadata om filerna (tidsstämplar, filstorlek och så vidare). Operativsystemet består av en mängd filer, och vi skapar filer med olika applikationer. Olika operativsystem stödjer olika filsystem. Filsystem kan delas in i följande: Diskfilsystem som används för lagring på diskar. Diskfragmentering kan vara ett problem, eftersom flyttningar av läshuvudena i hårddisken skivans rotation till rätt sektor tar tid. Därför försker diskfilsystem i största möjliga mån samla filer till inbördes närliggande områden. Flashfilsystem har inte fragmenteringsproblem, eftersom det är ett direktåtkomstminne - liksom med RAM finns det inga mekaniska delar som tar tid på sig att hitta rätt plats i minnet. Att köra diskfilsystem på ett flashminne är egentligen suboptimalt och rent av direkt olämpligt av främst två orsaker: 1. Diskfilsystem är gjorda för att minska fragmentering och detta tar onödig prestanda. 2. Flashminnen slits med tiden - diskfilsystem är optimerade för samlad skrivning för att minska mekanisk förflyttning, flashfilsystem skriver över hela flashminnet för att undvika onödigt slitage. Eftersom flashdiskar är ett ganska nytt fenomen, finns det inte så många flash-optimerade filsystem än. Nätverksfilsystem är en klient för åtkomst av filer på en nätverksenhet. Det gåt för det mesta att montera dessa nätverksfilsystem så att de ser ut som en lokal enhet. Vanliga nätverksfilsystem är NFS (Windows) och SMB. Filstrukturer De flesta moderna filsystem har stöd för hierarkiska katalogstrukturer (pyramidliknande strukturer med en rot i toppen som kan ha underkataloger som i sin tur kan ha underkataloger) för att underlätta sökning av filer och administration. 19

I Unixliknande system finns det en rot vari alla andra kataloger ligger. Om man monterar ett nytt filsystem hamnar det i en egen katalog under roten. I Unixliknande filsystem finns det enrot I Windows däremot får varje partition (del av disk med eget filsystem) och enhet (till exempel CD-ROM, Nätverksenhet, flashminne) en egen hierarkisk struktur, som skiljs åt genom att ha olika bokstavsbeteckningar. Systemdisken i ett Windowssystem brukar traditionellt ha C:. I Windows har alla enheter en egen rot Vanliga diskfilsystem Microsofts operativsystem: Filsystem Stöds av OS: Max. Part.st. Max. Filst. FAT12 DOS, Windows NT, XP, Vista, 7 32 MB 32 MB FAT16 DOS, Windows NT, XP, Vista, 7 2 GB 2 GB FAT32 DOS, Windows NT, XP, Vista, 7 8 TB 4 GB NTFS1.0* Windows NT 3.1 256 TB 16 TB NTFS1.1* Windows NT 3.5 256 TB 16 TB NTFS1.2* Windows NT 3.51 & 4.0 256 TB 16 TB NTFS3.0* Windows 2000 256 TB 16 TB NTFS4.0* Windows XP, Vista, 7 256 TB 16 TB 20

Linuxbaserade operativsystem: Filsystem Stöds av OS: Max. Part.st. Max. Filst. Noteringar ext2 Linux, Mac OS X 32 TB 16 GB ext3* Linux, Mac OS X 2 GB 2 GB ext4* Linux 1 EB 16 TB JFFS2* Linux 2.4.10?? Flashfilsystem Filsystem för optiska läsare: Filsystem Stöds av OS: Max. Part.st. Max. Filst. ISO9660 OS som använder optiska läsare 8 TB 4 GB UFS OS som använder optiska läsare 1 YB 512 GB * - Journalförande filsystem 21

Datakomprimering Introduktion Datakomprimering innebär att minska lagringsstorleken på en datamängd. Två huvudvarianter finns: lossless (icke destruktiv - icke förstörande) och lossy (destruktiv - förstörande) komprimering. Det är ofta önskvärt att minska lagringsstorleken på en datamängd Lossless komprimering kräver att det data som komprimerats kandekomprimeras (återskapas) exakt ner till varje enskild bit. Exempel på detta är ZIP-, RAR-, PNG-, TIFF-, GIF- och FLAC-komprimering. Lossy komprimering tillåter att data går förlorat vid komprimeringen, främst data som inte innehåller någon uppfattbar information. Exempel på detta är MP3- MPEG- och JPG-komprimering samt i olika former av telefoni. Det går alltså inte att få tillbaka exakt samma data som innan. Lossy komprimering ligger utanför den här kursens område, så vi får ta det en annan gång. Vid så gott som all datakomprimering används någon variant av Huffmans algoritm, en komprimeringsteknik uppkallad efter skaparen David A. Huffman. Algoritmen uppfanns 1952. 22

David A. Huffman (1925-1999) Huffmans komprimeringsalgoritm Huffmans algoritm är en i grunden lossless komprimering som bygger på att vissa Byte förekommer oftare än andra i en datamängd. Det kan man utnyttja för att komprimera datats filstorlek med Huffmankomprimering. Man börjar med att frekvensanalysera datat (räkna de förekommande Byten och hur ofta de förekommer). För att förenkla resonemanget använder jag här bokstäver för att representera Byte. Algoritmen fungerar förstås på alla typer av data. Frekvensanalysen görs genom att räkna hur ofta ett tecken (ett visst Byte) förekommer i datat. Varje gång ett Byte förekommer räknas en räknare för Byten upp. Som exempel tar vi texten "go go gophers", som är kort och bra till syftet att förklara Huffmans algoritm. I normala fall skulle den datalagringsmässigt bestå av 8 bitar per tecken gånger 13 tecken = 104 bitar: 01100111 01101111 00100000 01100111 01101111 00100000 01100111 01101111 01110000 01101000 01100101 01110010 01110011 23

Frekvenstabell Textsträngen innehåller de olika tecknen "g","o",mellanslag, "p","h","e","r" samt "s". Efter frekvensanalys skulle vi få en frekvenstabell som ser ut så här: Tecken Antal g 3 o 3 2 p 1 h 1 e 1 r 1 s 1 Huffmanträdet Vi tänker oss att vi skapar ett träd av trädnoder. Trädnoderna kan innehålla ett tecken (eller vilken Byte som helst) en frekvens (antalet gånger Bytet finns i datat). Trädnoden kan dessutom ha ett "vänsterbarn" och/eller ett "högerbarn" som isåfall också består av trädnoder. Trädnoder skapas som innehåller våra tecken och deras frekvens. Dessa läggs i en sorterad kö, en så kallad prioritetskö. Jag visar för tydlighetens skull kön som en grå linje, minsta talet till vänster och större tal åt höger. Ur prioritetskön plockas de två minsta noderna (de med lägst frekvens) och fogas samman som barn till en ny nod, som får barnens sammanlagda frekvens. Denna nod läggs tillsammans med sina barnnoder tillbaka på sin nya plats i kön (finns fler noder med samma frekvens som den nya nodens läggs den nya noden sist av dem): 'e' + 'h' blir en ny nod med frekvensen (1 + 1 =) 2 och placeras sist av de noder som har frekvensen 2 24

Detta förfarande upprepas till dess att kön bara innehåller en nod (Huffman-trädet): 25

Bara två noder kvar i kön, som tillsammans blir... det färdiga huffmanträdet! Genom att traversera (vandra genom) trädet och genom att låta varje väg till ett vänster underträd representeras av 0 och vägen till höger underträd av 1, får vi en bitrepresentation av varje löv(noder utan barn). 26

Den observante ser snart att de tecken som återkommer oftast hamnar högt upp i trädet, och får därmed kortare bitrepresentationer, medan de mer sällan förekommande hamnar längre ner och får längre bitrepresentationer. Inget tecken kan dock få längre bitrepresentation än 8 bitar. Tecken Bitrep. g 01 o 10 111 p 0010 h 1101 e 1100 r 0011 s 000 När vi använder oss av de nya bitrepresentationerna istället för originalbitströmmen får vi: 0110111011011101100010110111000011000 Alltså 37 bitar istället för de 104 okomprimerade bitarna (35,5% av originalstorleken). Om vi vill kunna återskapa datat blir vi dock tvungna att spara undan Huffmanträdet också, annars vet vi ju inte vad de olika bitrepresentationerna betyder... Skulle vi öppna en sådan här fil i en texteditor blir det bara rappakalja, eftersom datat inte längre är uppdelat i Byte. 27

Dekomprimering Hur får vi nu tillbaka vår text från det komprimerade datat? Jo, genom att med hjälp av den komprimerade bitströmmen traversera trädet (0 vänster underträd, 1 höger underträd) tills ett löv påträffas. Detta upprepas till dess bitströmmen är slut. Klart! Exempelvis bokstaven "r" - 0011 Effektivitet När är Huffmans komprimering effektivast? Algoritmen bygger på att mönster som förekommer ofta representeras av kortare bitsekvenser än mönster som förekommer mer sällan. Alltså fungerar den bäst på till exempel texter, där det är sannolikt att en del tecken förekommer oftare än andra, eller rena grafikbitmappar, där färger förekommer i olika omfattning. Mindre lämpliga data att komprimera är redan komprimerad data (JPG, MPEG, ZIP, RAR och så vidare), eftersom de redundanta(återkommande) mönster som eventuellt har funnits redan förbrukats för att få ner storleken en gång. 28

Krypterad data går inte heller att komprimera speciellt framgångsrikt, eftersom krypteringsalgoritmerna försöker minska mönster som kan hjälpa obehöriga att forcera kryptot. I krypterad text är mönstren minimerade av krypteringsalgoritmen 29

Drivrutiner Introduktion En drivrutin är ett program som hjälper andra program att använda hårdvara. Alla drivrutiner är hård- och operativsystemspecifika. Det går alltså inte att använda en drivrutin avsedd för ett nvidia-grafikkort till ett ATI-grafikkort. Många tillverkare lägger dock in drivrutiner till flera modeller av sina kort i ett stort drivrutinspaket som då kan vara mer än 100 MB stort. Detta gör man för att slippa ha flera olika filer att hålla reda på i sin drivrutinshantering. Utan drivrutiner är hårdvaran bara en massa kisel och koppar Om tillverkaren av operativsystemet skulle ha full kontroll över vilken hårdvara det skulle köras på skulle det inte vara något problem, eftersom programmerarna hade då kunnat skriva koden direkt mot hårdvaran. Nu är det ju inte så, utan programmerarna får skriva mot en standardiserad uppsättning instruktioner. 30

Det är till exempel ganska sällan du behöver uppdatera drivrutinerna i din mobiltelefon, eftersom det oftast är tillverkaren av hårdvaran som också gör operativsystemet. I de flesta fall är det tillverkaren av mobiltelefonerna som också gör operativsystemet till dem I Windows måste du däremot ha speciella drivrutiner för grafikkort, ljudkort, nätverkskort o.s.v, eftersom det är Microsoft som skriver operativsystemet, det kanske är nvidia som gör grafikkretsen, Creative Labs som gör ljudkretsen och Realtek som gör nätverkskretsen. Dessutom finns flera modeller och äldre generationer av hårdvara som fortfarande används och måste fungera i Windows. 31

När du vill skriva ut något från Word behöver inte tillverkaren av Word känna till hur skrivaren fungerar på hårdvarunivå, utan behöver bara anropa standardkommandon som i drivrutinen översätts till skrivarens specifika kontrollspråk. Användaren talar om för applikationen vad han/hon vill göra, applikationen kommunicerar med operativsystemet via drivrutinen som i sin tur vet hur hårdvaran ska användas på kretsnivå Två delar Drivrutiner har två delar - en logisk och en fysisk del. Den logiska drivrutinsdelen eller LDD (Logical Device Driver) skrivs ofta av mjukvarutillverkaren som till exempel Microsoft, medan den fysiska delen eller PDD (Physical Device Driver) av kretstillverkaren. Programvaran kommunicerar med den logiska delen och den fysiska med hårdvaran. Till exempel känner den logiska delen till saker som ett visst datapaket ska skickas till och den fysiska delen hur signalerna ska sändas genom nätverkskretsen. På senare tid har dock Open Source-rörelsen (som gör till exempel Linux och andra fria operativsystem) börjat göra drivrutiner för kretsar som inte har officiellt stöd för andra operativsystem än Windows. 32

I vissa fall tillhandahåller kretstillverkarna information om hårdvaran för att underlätta detta. I andra fall får programmerarna använda sig av reverse engineering (att genom att undersöka och experimentera med en produkt ta fram information om hur den fungerar). Detta är mycket svårare och mer tidskrävande än fallen där kretstillverkarna ger informationen, och prestanda blir ofta lidande. Reverse engineering innebär att man undersöker hur något fungerar i syfte att efterlika funktionaliteten Eftersom PDD kommunicerar direkt med hårdvaran är det viktigt att den är korrekt skriven. En bug (felaktigt skriven kod) i den fysiska delen av drivrutinen kan hänga hela systemet. 33