Datorsystem och programmering Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2010-08-23 Målsättning Kursens syfte är dels att studenterna ska skaffa sig erfarenheter av att använda datorsystem på ett sådant sätt att laborativ verksamhet i framtida kurser underlättas, dels att studenterna ska bygga upp grundläggande erfarenheter inom programmering. Efter avslutad kurs ska studenterna kunna obehindrat använda de datorsystem för laborativ verksamhet som institutionen tillhandahåller, utforma och implementera enkla algoritmer i ett funktionellt programspråk, samt redogöra för grundläggande begrepp inom programmering med tonvikt på det funktionella programmeringsparadigmet. Kursens olika delar Målsättning, datorsystemsdelen Datorsystem två föreläsningar med introduktion till UNIX webbaserade laborationsövningar avslutande uppgift prova på-laborationer Programmering föreläsningar och lektioner laborationsuppgifter och duggor fortsättning i nästa kurs TDDC67 Funktionell programmering i Lisp Lära sig vilka datorresurser som finns på IDA och universitetet i stort (Vad finns? Var finns det?) Kunna använda dessa på ett effektivt sätt i följande kurser (När ska man använda vad? Hur gör man?) Översikt Våra datorsalar Hur ser datorsalarna ut? Vad behöver man kunna? Kommandoskal Kortfattad bakgrund till Unix Exempel på kommandon Webbkursverktyget STONE Hus B: Bottenvåningen Hus B: Andra våningen 1
Våra datorsalar Våra datorsalar 15 salar i B-huset som kallas PUL (programutvecklingslaboratorium) Cirka 150 arbetsplatser med tunna klienter SunRay 1G 18 lastbalanserade servrar SunFire V240 8000 studentkonton All utrustning är larmad. Administreras av TUS-gruppen som nås via helpdesk@ida.liu.se Datorkonto Hur mycket måste man kunna? Samma användarnamn som för LiU-ID (e-post m.m.) Samma lösenord (så länge man inte byter lokalt) Registrering LiU-ID IDA-konto Särskilda ordningsregler för IDA-konto (se webbkursmaterialet) Några allmänna åsikter Två sätt att använda datorn En professionell datoranvändare behöver inte vara administratör. Det är viktigt att behärska många olika verktyg och arbetssätt. Det tar ofta lika lång tid att tweaka systemet så att det blir som man är van vid, som att helt enkelt lära sig att det funkar olika på olika ställen. Endast dåliga hantverkare skyller på verktygen. Fönstersystem Varje program körs i ett eller flera fönster som har en grafisk representation. Man kommunicerar med både mus och tangentbord. Kommandoskal Programmen visar enbart text. Man kommunicerar genom att skriva korta kommandon. 2
Filhantering i fönstersystem Filhantering i fönstersystem Utforskaren i Microsoft Windows Filhanteraren i Java Desktop System Filhantering i kommandoskal Exempel zaza8 <1> pwd /home/petjo450/ zaza8 <2> ls ada lisp old pub bin mail pascal www-pub exempelfil.txt Mail pc zaza8 <3> cd pascal zaza8 <4> ls matrix.p perfect.txt primesum.p perfect.p perm.p untar.pas zaza8 <5> Fördelar och nackdelar Bakgrund till UNIX Man blir mycket mer effektiv när man lärt sig kommandospråket Man kan utföra mer komplexa uppgifter. Inlärningströskeln är högre jämfört med grafiskt gränssnitt. Det kan vara svårt att få överblick eftersom man får hålla saker i huvudet. 3
Bakgrund till UNIX Nya idéer: Multiuser, interactive, timesharing operating system CTSS (1961) från MIT MULTICS (1962) med MIT, GE, Bell Labs UNIX (1969) från Bell Labs Tidiga riktlinjer för UNIX 1. Varje program ska utföra en liten väldefinierad uppgift och göra det bra 2. Förutsätt att ett programs utdata kan bli indata till ett annat program 3. Utveckla program som går att testa tidigt Man ville skapa en gemenskap! Vad hände sedan? UNIX var gratis från början Många olika versioner utvecklades av företag och universitet UNIX är varumärket, POSIX är standarden 1985: GNU-projektet (Richard Stallman) 1991: Linux (Linus Torvalds) UNIX-kommandon kommando ls [-l] [-t] [filnamn...] växlar hakparenteser innebär frivillighet argument punkter innebär att fler får anges Exempel Flytta mellan kataloger zaza10 <12> ls foo.txt info.txt rapport.doc zaza10 <13> ls -l -rw-rw-rw- 2 student pelle 128 3 aug 20.49 foo.txt -rw-r--r-- 2 student pelle 4915 1 mar 00.05 info.txt -rw-rw-rw- 4 student pelle 10482 24 jul 23.09 rapport.doc zaza10 <14> ls l t *.txt -rw-r--r-- 2 student pelle 4915 1 mar 00.05 info.txt -rw-rw-rw- 2 student pelle 128 3 aug 20.49 foo.txt zaza10 <15> / bin home pelle hejsan zaza10 <1> pwd /home/pelle zaza10 <2> cd / zaza10 <3> cd bin zaza10 <4> cd.. zaza10 <5> cd ~ zaza10 <6> cat hejsan Hej på dej! Detta är en textfil. zaza10 <7> tmp 4
Några vanliga kommandon Introduktion till STONE ls visa filer i aktuell katalog cd byt aktuell katalog pwd visa aktuell katalog cp kopierar en eller flera filer mv flyttar eller byter namn på filer rm tar bort filer cat visar innehållet i en fil more visar innehållet i en fil en sida i taget STONE Simple Tool for Online Education Egenutvecklat system för presentation av kursmaterial på webben Diagnostiska tester som rättas automatiskt Innehåll UNIX, Emacs, universitetets datorresurser, utskrifter, labba hemifrån, m.m. 5