Operativsystemer og nettverk

Like dokumenter
Operativsystemer og nettverk

Ny EKSAMEN. Operativsystemer og nettverk

Løsningsforslag til eksamen 24. november 2015

Operativsystemer og nettverk Løsningsforslag til eksamen Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

Filterprogrammer og redirigering av I/O

Filterprogrammer og redirigering av I/O

Betinget eksekvering og logiske tester i shell

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

Lynkurs i shellprogrammering under Linux

Filsystemet fra innsiden

Prøve- EKSAMEN. Operativsystemer med Linux

Filer i Linux og Bourne-again shell

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

EKSAMEN. Operativsystemer og nettverk

Filer og filsystemer i Linux

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Filer i Linux og Bourne-again shell

Kurset består av to relativt uavhengige deler. Foreleser: Hårek Haugerud, rom PS431

Generelt om permanent lagring og filsystemer

Filer og kataloger, prosesser og jobber

Shellscripting I. Innhold

Oppgave 1 - Linux kommandolinje (%)

NSA mandag 4. oktober Brukerbehandling Systempolitikk Kontroll av resurser Om system logger Litt om cron og cfengine

Håndtering av tekstfiler

Håndtering av filer og kataloger

Oppgave 1 - Java og prosesser (20%)

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

Linux distribusjoner

"How I hate this damned machine, I wish that I could sell it, It never does what I want it to, But only what I tell it".

Installasjon av webtjener

Fjerninnlogging over Internett

EKSAMEN Innføring i Linux

1 Diverse linuxtips. Innhold

Håndtering av tekstfiler

Definisjon av prosess

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Operativsystemer og grensesnitt

Læringsmål og pensum. v=nkiu9yen5nc

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Oppsett av brannmur / router 1.0. Innholdsfortegnelse

1 Diverse linuxtips. Innhold. 1.1 Klipp og lim med musen

EKSAMEN. Operativsystemer. Dato: 10. desember 2008 Eksamenstid: kl til kl

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Shellprogrammer og -variabler

Generelt om operativsystemer

Generelt om operativsystemer

Linux-programmer som bruker regulæruttrykk: grep, sed, awk

Eksamensinformasjon. Prosesser. Prosesser. Eksamensoppgave. Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

6105 Windows Server og datanett

6105 Windows Server og datanett

UNIVERSITETET I OSLO

Generelt om shell / skall

1. Introduksjon til operativsystemer

Filsikkerhet i Linux

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare

Scheduling og prosesshåndtering

DDS-CAD 7 INSTALLASJON AV NETTVERKSLÅS. DATA DESIGN SYSTEM ASA Øksnevad Næringspark, 4353 Klepp st., fax , tel.: , e-post: dds@dds.

Unix/Linux en annen måte å gjøre ting på

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data

Håndtering av filer og kataloger

Huldt & Lillevik Lønn 5.0. Installere systemet

Installasjonsveiledning

Videregående shellprogrammering

UKEOPPGAVER 13: KONFIGURASJONSSTYRING

Nyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr

$ls -l $grep -i Olsen adresseliste.txt less #!/bin/sh $echo `ls` $chmod 755. Praktisk Linux. Grunnleggende skall kommandoer. Irene Ludvigsen Husa

EKSAMEN Innføring i Linux

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

HJEMMEKONTOR. Del 1 Installasjon på jobb Norsk Helsenett SF

TDT4110 IT Grunnkurs Høst 2015

4. Installasjonsveiledning. Experior - rich test editor for FitNesse -

Oppgaver til forkurs i informatikk dag 1

Lotus Traveler - Manual for installasjon

Oppgaver til forkurs i informatikk dag 2

Innstallasjon og oppsett av Wordpress

Emnekode: SO135A Dato: onsdag 25. feb. I Antall oppgaver: 4

Litt om Javas class-filer og byte-kode

Operativsystemer og Filbehandling

LAB-L SETTE OPP MICROSOFT SERVER 2003

6107 Operativsystemer og nettverk

Høgskolen i Telemark Fakultet for allmennvitenskapelige fag

6105 Windows Server og datanett Jon Kvisli, HSN Skriveradministrasjon - 1. Utskrift i nettverk

6107 Operativsystemer og nettverk

Eksamensinformasjon. Linux kommandolinje. Linux kommandolinje. Eksamensinformasjon. Fakultet: Teknologi, kunst og design. Tid: 3 t.

Labbene skal være oppsatt med dual boot. Disse labene er satt opp med dual boot, dvs. at vi må velge Linux eller Windows under oppstart av maskin.

Unix/Linux en annen måte å gjøre ting på

Hvordan å lage og publisere ditt personlige visittkort

Transkript:

Løsningsforslag til eksamen i Operativsystemer og nettverk 04.06.2015 Oppgave 1: Generelt om Linux a) Det grunnleggende brukergrensesnittet i Linux er et tastaturbasert CUI (Commandline User Interface), men alle Linux-systemer leveres i dag også med et GUI (Graphical User Interface) basert på the X Window System. Gi korte svar på følgende to spørsmål: 1. Hva er den grunnleggende forskjellen mellom et CUI og et GUI? CUI: Tastaturet er den enheten som brukes til å gi kommandoer til operativsystemet. GUI: En pek-og-klikk enhet (f.eks. en mus) er den enheten som primært brukes for å gi operativsystemkommandoer. 2. Nevn en fordel og en ulempe ved å bruke et GUI og en fordel og en ulempe ved å bruke et CUI under Linux? Fordeler ved GUI: Gjør det enklere og mer intuitivt å bruke datamaskinen. Mange brukere er vant til GUI'er (spillmaskiner, Windows, nettsider) og arbeider lettere med pek-og-klikk verktøy. Ulemper ved GUI: Gir et "ferdigsydd" oppsett med mindre muligheter til å "skreddersy" arbeidsomgivelsene. En GUI er et ekstra lag med software mellom bruker og oppgavene som skal gjøres på maskinen, noe som gjør at oppgavene utføres saktere. Fordeler ved CUI: Gir bedre mulighet til å kontrollere systemet og kjøre applikasjonene slik man selv ønsker. Raskt, med et minimalt ekstra lag med software mellom bruker og kjernen. Ulemper ved CUI: Kryptisk syntaks. Høyere inngangsterskel for nybegynnere og GUIbrukere. b) Forklar kort følgende begreper i Linux: 1. Standard innenhet og standard utenhet. Stdin: Default kilde (l) som data leses fra. Stdin er i utgangspunktet tastaturet, eller egentlig den devicelen som representerer tastaturet.

Stdout: Default medium (l) som data skrives til. Stdout er i utgangspunktet skjermen. 2. Filterprogram. Program som leser tekstlige data linje for linje fra stdin, og skriver tekstlig output linjevis til stdout. 3. Redirigering av I/O. Tegnene '<' og '>' brukes til å redenere hhv. stdin og stdout til å være en l i stedet for skjermen. '>>' (append) gjør atutskrift til stdout legges til på slutten av en eksisterendel. 4. Piping (eller rørlegging ) Brukes for interprosesskommunikasjon mellom to lterprogrammer. angis med tegnet ' ' mellom navnene på programmene. Gjør at stdout fra et lter leses som stdin fra neste lter. c) Gi en kortfattet forklaring av hva regulæruttrykk (regular expressions) er. Nevn minst to standard Linux-programmer som bruker regulæruttrykk. Kompakt notasjon for å representere generelle tekstmønstre. Brukes bla. i: grep - til å nne tekstmønstre i data emacs - til å søke etter/erstatte tekst i ler som redigeres med teksteditoren d) Hva er forskjellen på et program og en prosess i Linux? Program: Selve programkoden, enten skrevet i et høynivå programmeringsspråk, eller i form av ferdig kompilert maskinkode eller bytekode. Prosess: Et program som er lastet inn i RAM og kjører, sammen med de ressursene som programmet trenger under eksekveringen. e) Gi en kort beskrivelse av hva som skjer når Linux gjør en "context switch". Context switch: Bytter ut prosessen som kjører med neste prosess som skal kjøre i sin time-slice. Medfører flytting av alle data som prosessene trenger. Oppgave 2: Filer og lsystemer a) Når ler som opprettes og endres på en harddisk lagres fysisk på disken, skjer ikke dette i noen bestemt rekkefølge. Filene ser i stedet ut til å ligge spredt tilfeldig rundt i ulike områder på disken. Allikevel fremstår lene som samlet i mapper (eller kataloger) som igjen ligger ordnet hierarkisk, når vi bruker et operativsystem for å håndtere lene. Beskriv kort mekanismene som operativsystemet bruker for å klare å ordne ler og mapper på denne måten. Metadatene for alle ler, inkludert den fysiske adressen på disken, lagres i en tabell i lsystemet. For å samle lene i mapper/kataloger brukes spesielle katalogler som inneholder en liste med peker/indeks til metadataene for alle lene som ligger i

samme katalog. Filsystemet blir hierarkisk (med mapper inne i mapper) fordi listen av ler i en katalogl kan inneholde en ny katalogl. b) Hvilke tre hovedtyper av ler nner vi i Linux? 1. Regulære ler (regular/ordinary les) : Vanlige bruker-/systemler på disk (data, programmer) 2. Kataloger (directory les) : Inneholder en liste av lene (og underkatalogene) som ligger i denne katalogen. Muliggjør hierarkisk lsystem. Lages og redigeres med bruk av Linuxkommandoer 3. Spesialler : Block le device som leses/skrives i blokker via et buffer Character device le skriver/leser i en ustrukturert bytestrøm (Named) pipe le Buffer for FIFO-utveksling mellom prosesser Symbolic link le Lenke til en annen l på systemet Socket le For kommunikasjon mellom prosesser c) Hvor lagres navnet på en l i lsystemet i Linux? Filnavn lagres i kataloglene i Linux. Kataloglene er lister som inneholder inodenummer og lnavn for hver l i katalogen d) Hvor og hvordan lagres de øvrige metadataene om en l i Linux? En inode i Linux er datastrukturen som lagrer alle metadataene, unntatt lnavnet, om en l i lsystemet. Alle inodene ligger lagret i en tabell. Inodenummeret til en l er indeksen i denne inodetabellen. e) Når lsystemet i Linux blir fullt, kan det ikke opprettes flere nye ler. Filsystemet kan bli fullt selv om det fortsatt er mye ledig lagringsplass på disker og andre fysiske medier. Hvordan og hvorfor kan dette problemet oppstå? Alle inodene ligger i en tabell som (oftest) har fast lengde, typisk én inode per 2-8 Kbytes med diskplass. Hvis inodetabellen er full er lsystemet fullt, selv om det er diskplass igjen. Oppgave 3: Shell og shellprogrammering a) Forklar hva som utføres ved kjøring av hver av de re kommandoene nedenfor. Gjør også rede for eventuelle forutsetninger som må være oppfylt for at kommandoene skal fungere: 1. ls l opsys/ Skriver ut en liste over lene i katalogen "opsys", som ligger under stående katalog. Opsjonen -l (long) gir full informasjons for hver l, om ltype, tilgangsrettigheter, eier, gruppe, lstørrelse, siste dato for modikasjon og lnavn.

2. ls ld opsys/ Opsjonen -d fører her til at det skrives ut full informasjon om selve kataloglen "opsys" og ikke innholdet i katalogen som i forrige deloppgave. 3. chmod 751 ~/* Alle lene i brukes hjemmeområde får le mode 751. Dvs. at bruker har alle rettigheter på lene, brukere i samme gruppe kan lese og kjøre lene, alle andre kan kun kjøre. 4. echo Linux ruler tr d 'eiu' > SMS tr med opsjonen -d (delete) fjerner de angitte tegnene fra standard input før den skriver linjene tilbake til standard output, som her er denert til å være len "SMS". Teksten "Lnx rlr" skriver derfor ut til denne len. b) Skriv en Linux-kommando som skriver ut de 10 siste kommandoene som du har gitt interaktivt til skallet. history tail 10 c) Skriv en Linux-kommando som skriver ut en rapport til standard utenhet med informasjon om hvor mye diskplass som er ledig og hvor mye som er brukt, for alle monterte lsystemer. df d) De såkalte Fibonacci-tallene er en sekvens av heltall som begynner med tallene 0 og 1. Deretter er det neste tallet i sekvensen alltid summen av de to foregående. Fibonaccitallene nummeres vanligvis forløpende fra null, og Fibonacci-tall nummer i betegnes som F i. Her er de 15 første Fibonacci-tallene: F 0 F 1 F 2 F 3 F 4 F 5 F 6 F 7 F 8 F 9 F 10 F 11 F 12 F 13 F 14 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 Skriv et shellprogram som beregner og skriver ut et Fibonacci-tall. Input til programmet, gitt fra kommandolinjen, skal være nummeret i på Fibonacci-tallet F i som skal beregnes. #!/bin/bash # Sjekker for riktig antall parametre if [ $# ne 1 ] echo "usage: $0 [number]" exit 1 # F0 og F1 er spesialtilfeller if [ $1 eq 0 ]

echo "0" exit 0 elif [ $1 eq 1 ] echo "1" exit 0 # Beregner Fn n=$1 f0=0 f1=1 i=1 while [ $i lt $n ] do (( f = f0 + f1 )) f0=$f1 f1=$f (( i = i + 1 )) done echo "$f" exit 0 e) Hva utføres av følgende shellprogram: #!/bin/bash if [ $# gt 1 ] echo "usage: $0 [directory]" exit 1 if [ $# eq 0 ] wdir=`pwd` elif [! d $1 ] echo "$0: $1 is not a directory" exit 1 else wdir=$1 cd $wdir for i in * do if ls l $i grep q "^ rw r r "

echo $i done Programmet skriver ut navnet på de lene i en bestemt katalog som har le mode lik "rw-r r--" (eller 644). Katalogen kan angis av bruker som parameter på kommandolinjen. Hvis ingen katalog er angitt (null parametre inn), brukes stående katalog. Programmet gir feilmelding hvis det er flere enn én parameter angitt, eller hvis parameteren ikke er en katalog. Oppgave 4: Linux, servere og nettverk a) Forklar hva katalogen /etc/skel gjør på en linuxserver. Hvordan kan den brukes av systemansvarlig? Nevn minst to forskjellige eksempler på oppgaver som kan løses. /etc/skel brukes som mal for hjemmeområder når nye brukere opprettes. En systemansvarlig kan lage en mal for mappestruktur for alle nye brukere. Eks på bruk: Lage gode alias i.bashrc la for nye brukere. F.eks. sette standard editor til pico e.l. Du kan også f.eks. lage en eksempelnettside i en html-mappe for hver enkelt bruker. b) Forklar med egne ord hvordan du kan opprette en bruker i et system hvor kommandoen adduser (useradd) er fjernet. Legge til en linje med brukerinfo i /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow. Kopiere innholdet fra /etc/skel til brukeren nye hjemmeområde. Hjemmeområdets navn er det samme som brukernavnet. Du må også opprette mailboksen til den nye brukeren. Den la oppretter du på /var/spool/mail/brukernavn. Husk å sette riktige rettigheter på hjemmeområde og mailboks. Deretter kan du sette passord med kommandoen passwd brukernavn som root. c) Du administrerer en linuxserver med Apache som webserver. Webadressen til denne siden er www.sykkelkongen.no. Document root er /var/www/html på serveren. På adressen www.sykkelkongen.no/bilder henter webserveren alle bildene fra den fysiske katalogen /home/torepeng/sykkelkongen/bilder på serveren. Hva er gjort av innstillinger i Apache for å få til dette? I apachecong ville jeg gjort følgende: Alias /bilder /home/torepeng/sykkelkongen/bilder <Directory /home/torepeng/sykkelkongen/bilder> Allow for all AllowOverride All </Directory> Deretter ville jeg passet på at rettighetene i mappa sykkelkongen/bilder hadde riktige rettigheter. Apache må kunne lese lene.

d) Ta utgangspunkt i oppgave c). Du vil nå at det bare er 5 forskjellige ip-adresser som skal få tilgang til adressen www.sykkelkongen.no/hemmelig Hvordan gjør du det? Ville lagt inn noe slikt i apacheconf <Directory /var/www/apache/hemmelig> AllowOverride All Order Deny,Allow Deny from all Allow from ipadresse1 ipadresse2 osv osv </Directory> Eller gjort tilsvarende i en.htaccessl i hemmeligkatalogen. e) Ta utgangspunkt i et nett tilsvarende det som har vært labben. Du har fått to nye linuxlservere på det interne nettet ditt (i tillegg til den som dere satt opp). Det er bestemt at alle de tre serverne skal ha SSH tilgang, og disse skal kunne nås direkte utenfra det lokale nettet. Hvordan vil du sette opp iptables slik at du kan få tilgang til SSH på alle tre serverene fra internett? Det er SSH på routeren som skal nås på den offentlige ip-adressen. Må sette opp så vanlig port 22 går til router, og de to andre må bruke to høye porter for å komme til de interne port 22 på serverne: # Tillate SSH og trakk relatert til dette på routeren $IPT A INPUT p tcp dport 22 j ACCEPT Bruker to høye porter for å route til de interne ssh serverne # Tillate trakk inn mot port 9998 $IPT A FORWARD p tcp d $INT_NET dport 9998 j ACCEPT # Route innkommende trakk mot port 9998 til ssh for IP # 192.168.1.31 (router) $IPT t nat A PREROUTING d $EXT_IP p tcp dport 9998 j DNAT to 192.168.1.31:22 # Tillate trakk inn mot port 9999 $IPT A FORWARD p tcp d $INT_NET dport 9999 j ACCEPT # Route innkommende trakk mot port 9999 til ssh for IP # 192.168.1.30 (klient) $IPT t nat A PREROUTING d $EXT_IP p tcp dport 9999 j DNAT to 192.168.1.30:22

f) Forklar hva som menes med runlevel, og forklar hvordan man bestemmer hvilke tjenester som startes opp avhengig av hvilken runlevel systemet er i. Har det noen betydning i hvilken rekkefølge de forskjellige tjenesten starter? Hvordan kan vi sjekke dette? Se her: http://www.it.hiof.no/~janh/osml/lysark/tjenester.pdf (står på side 2) g) Forklar forskjellene på : 1. MUA (Mail User Agent) 2. MTA (Mail Transfer Agent) 3. MDA (Mail Delivery Agent) Står helt på toppen her: http://www.it.hiof.no/~janh/osml/lysark/mailtjenester.html