Sammendrag
Forord
Under siste semester ved Dataingeniørstudiet ved NITH,
Galleriet i Oslo har vi jobbet med et hovedprosjekt i en bedrift. Dette
prosjektet er ment å gi oss en praktisk erfaring med det vi har lært under den
3 årlige utdannelsen og som en forberedelse på et videre arbeidsliv etter
studiene.
Rapporten er i hovedsak skrevet for intern og ekstern
veileder og sensor som skal gi en vurdering på arbeidet som er gjennomført i
prosjektperioden, men vi tror helt klart at andre kan ha glede av dette
dokumentet. Spesielt de som allerede er i Skolelinux miljøet eller de som
ønsker å bli en del av det. Det vil gi dem et inntrykk av hvordan et Opensource
prosjekt fungerer.
Introduksjon
Denne rapporten er delt opp i 4 selvstendige kapitler som hver av seg kan leses som en selvstendig rapport. Det vil derfor forekomme at noen av teksten blir repeterende, men vi har forsøkt å få dette ned til et absolutt minimum. De 4 delene består av en Prosessrapport, Kravspesifikasjon, Produktrapport og Testrapport. I tillegg har vi lagt ved nødvendig vedlegg slik som kildekode, Brukermanualer og refleksjonsnotater.
Kapitel 1 gir en forklaring på bakgrunnen for dette prosjektet. Den gir en kort presentasjon av Linux i skolen og deres Skolelinux prosjekt. Vi har også funnet det nødvendig å gi en liten forklaring på hva slags verktøy som brukes i et Opensource miljø og hvordan de jobber.
Kapitel 2 beskriver hvilket krav som er satt til prosjektet. Det vil si hvilket krav som arbeidsgiver har satt til vårt prosjekt, samt krav til dokumentasjon og testing. Vi har også valgt å ta med det systemkrav som er satt til Skolelinux siden vi må forholde oss til dette.
Kapitel 3
Kapitel 4
Installasjons cd
Vedlagt denne rapporten finner du også siste versjon av installasjons-CD
til Skolelinux.
Takk
Innhold
Innledning
I dette kapitelet skal vi gi en beskrivelse av prosjektet som er gjennomført og hvilke metoder og verktøy som er blitt tatt i bruk. Vi vil fortelle om hvordan arbeidet er gått fra start til levering av ferdig produkt.
Bakgrunn for
prosjektet
Under frokost seminaret som NITH arrangerte den 18.10.2002 hadde vi et møte med Knut Yrvin, SkoleLinux. Han ønsket å få tak i noen studenter som kunne tenke seg å ha SkoleLinux som sitt hovedprosjekt. Han presenterte flere prosjekter som var på gang som de trengte utviklere til. Vi fattet interesse for et av prosjektene som gikk ut på å utvikle en hjemmePC profil for SkoleLinux. Vi snek oss til et nytt møte og avtalte med Knut at vi var villige til å være med på dette prosjektet. Senere fikk vi tildelt intern veileder til prosjektet, som ble Bjørn Listog.
Litt om bedriften
Linux i skolen, stiftet 16.07.01, er en idealistisk medlemsorganisasjon som vil
tilrettelegge for og informere om bruk av fri programvare (f.eks. GNU/Linux) i
norske skoler. De støtter og er med på å utvikle OpenSource programvarer som er
tilpasset norske skoler.
Visjonen
til Linux i skolen er å tilby et bedre alternativ til skolen enn det Microsoft
produkter gjør i dag. Dette skal gjøres ved å tilby et OpenSource produkt som
er billigere å ta i bruk og ikke minst vedlikeholde. De legger også krav til at
produktene skal være tilrettelagt skolens pedagogiske krav.
SkoleLinux jobber med å videreutvikle
en Debian/Linux distribusjon for norske skoler og elever. Den skal være enkel å
installere og vedlikeholde, og skal baseres på norsk språk. Alle program som
følger med distribusjonen skal være tilgjengelig på bokmål, nynorsk og samisk.
Per i dag består SkoleLinux prosjektet
av over 50 personer som er engasjert i prosjektet enten som oversetter eller
som utviklere. SkoleLinux har fått pengestøtte av Kirke-, Utdannings- og Forskningsdepartementet.
Linux i skole fikk pengestøtte til et forprosjekt for å få ut Linux til skoler
og dermed sikre konkurranse og lavere offentlige kostnader. I tillegg til den
offentlige støtten har prosjektet flere støttespillere i IT bransjen og flere
norske kommuner. De viktigste selskapene er IBM, Objectware, Opera, Trustix,
LinPro, LinuxLabs, NUUG Foundation.
Siden SkoleLinux bygger på Debian GNU/Linux som igjen bygger lisensen GNU GLP stiller man visse krav til SkoleLinux. Dette går ut på at alt man utvikler skal gjøres tilgjengelig for alle andre. Dette gir oss også en del friheter som å kjøre programmet der vi ønsker. Lage flere kopier av programmet og distribuere dette videre. Man har friheten til å gjøre forandringer i kildekoden slik at du kan tilpasse det bedre til dine behov.
Målsetting
Dette prosjektet skal gjøre nødvendige vurderinger for hvilke pakker som skal være med i hjemme-PC-profilen for elever og lærere og siden implementere dette på en cd.. Hjemme-PC-profilen skal: Være basert på SkoleLinux/Debian, supplert med annen OS/fri programvare; gå inn på samme CD som resten av SkoleLinux og møte grunnleggende elevbehov. Med dette menes det pedagogisk programvare, Office-pakke, tegneprogram, og eventuelle spill
Beskrivelse av problemet
I dag finnes det en Server, Workstation og Tynnklient profil av SkoleLinux.
Problemet er at elever ikke har muligheter til å kunne ta dette med seg hjem å
bruke det på sin egen PC. Linux i skolen sitt mål er å få en hjemme-PC-profil
slik at elevene kan bruke de samme programmene både på skolen og hjemme. Her er
det flere problemer vi må løse. Et av problemene er hvordan vi skal
partisjonere harddisken. Et annet problem er Internet oppkobling, hvordan vi
skal løse dette på best mulig måte. Pakker er også et problem, hva vi skal ha
med og hva vi kan kutte ut. Etter at pakken har blitt pakket ut skal den ikke
ta mer plass en 500 mb på harddisken. Oppbygning av cd`en er et annet problem.
Prosjektorganisering
UML og MSF
Utstyr, plattform og utviklingsmiljø
Linux
For å forstå det prosjektet vi skal gjennomføre er
det greit å ta en liten gjennomgang av hva Linux er. Linux er et OpenSource
operativsystem utviklet av finnen Linus Torvalds. Det bygger på det Minix, som
er et lite Unix OS. I august 1991 var versjon 0.01 av Linux ferdig og dette ble
lagt ut på Internet slik at andre kunne få glede av det. Det tok ikke lang tid
før han fikk tilbakemeldinger på det han hadde gjort og flere ville være med på
å utvikle det videre.
Samtidig som Linus Torvalds utviklet sin Linux
hadde en bevegelse som kaller seg Free Software Foundation (FSF) startet en
prosjekt kalt ”The GNU Project”. Målet med dette prosjektet var å lage et OS
som bygde videre på Unix, men som var basert på fri programvare. Etter lang
tids utvikling manglet de kun en viktig komponent og det var akkurat det Linus
Torvalds hadde utviklet. Det ble derfor enighet om å sette Linux kjernen sammen
med GNU systemet og vi fikk et OS kalt GNU/Linux. I dag blir dette kalt Linux
selv om GNU programmene fortsatt er en viktig del av Linux.
I dag brukes Linux som servere på Internet og i
nettverk og desktopp. Grunnen til at det er blitt så populært er at det er et
veldig stabilt OS og ikke minst at det er gratis å ta i bruk. De grafiske
grensesnittene som KDE og Gnome har gjort at det også er blitt veldig populært
i bruk som OS på desktopper.
CVS
CVS står for concurrent version system og er en versjons
kontroll system. Ved å bruke dette systemet er det mulig å alltid få tak i det siste versjonen av kildekoden. Det fungerer på den måten
at hver gang man har gjort en forandring i kildekoden som man mener andre kan ha
glede av så rapporteres dette inn. Når du rapporterer inn i cvs
er det også viktig å legge med en beskrivelse av den forandringen du har gjort.
Når dette blir lagret vil det bli sjekket på mot den gamle koden og kun de
linjene med kode som har avvik fra den gamle koden blir lagret i en ny fil. Ved
å bruke dette systemet vil disse filene ikke ta så stor plass. En av de store
fordelene med dette systemet er at det er mulig å ha to personer som jobber på
samme kildekode samtidig, selv om dette ikke er å anbefalt.
Det vil da bli en konflikt, men dette er det mulig å løse ved å hente ned den
nyeste kildekoden og legger til sin forandring i den. Og
rapportere dette inn.. Om man finner ut at den endringen som er gjort i
kildekoden ikke fungerer på den måten det var tenkt er det også mulig å gå et
skritt tilbake (rollback) til den gamle kildekoden.
Bugzilla
Bugzilla er en database program der det er mulighet for å
rapportere inn feil (bug) man har funnet i Linux
eller søke på statusen til bugs. De innrapporterte feilene
blir så satt opp i en prioritert liste slik at man får en slags to-do liste over utviklingsarbeidet. Arbeidsoppgavene blir
så tildelt forskjellige utviklere etter deres ønske. På siden http://bugs.skolelinux.no har Skolelinux sin bugside. Der
er det mulig å følge med på hva som det jobbes med på prosjektet og hvem som
gjør dette.
Mailinglister
All informasjon som blir utvekslet i Skolelinux
prosjektet går gjennom en mailingliste. Her er det
mulighet til å stille spørsmål angående prosjektet eller hjelpe andre med deres
problemer. Dette gjøres fordi dette er den beste måten å spre informasjon på. I
tillegg så er det stor sannsynlighet for at du får svar tilbake på dine
spørsmål siden alle utvikleren sjekker denne mailinglisten hver dag.
IRC
Står for Internet Relay
Chat. Dette er en online chate program der du kan
koble deg opp mot spesielle chatekanaler på nettet.
Flere av utviklere i Skolelinux miljøet er koblet til chate
kanalen #skolelinux på serveren irc.ifi.uio.no
og er dermed lett å få tak i hvis man skulle trenge hjelp til noe.
Maskiner
For å kunne gjennomføre dette prosjektet har vi
brukt mye til til å sette opp et nettverk med en
server, 2 workstations, 4 tynnklienter, 2 switcher og en firewall. I tillegg
har vil også tatt i bruk våre
egne laptopper til å skrive en del dokumentasjon og
testing.
Utviklersamlinger
Siden Skolelinux består av frivillige utvikler
spredd over hele lander er det viktig og ha noen samlinger der man får
innføring i nye ting som kan hjelpe prosjektet videre. En annen side av en slik
samling er den sosiale biten. Dette er utrolig viktig i det at man ser at man
faktisk bidrar med noe som er verdifullt for andre.
Dagbok
Alle gruppemedlemmer har ført sin egen dagbok
gjennom hele prosess perioden. De daglige innleggene har vært en kort
beskrivelse av hva man har gjort den aktuelle dagen.
Veiledere
Under dette prosjektet har vi hatt to eksterne
veiledere og en intern veileder. De to eksterne veilederne er Knut Yrvin og
Petter Reinholdtsen. Begge disse to representerer
Skolelinux prosjektet. Intern veileder er Bjørn Listog
ved NITH, Oslo.
Arbeidsprosessen
Høsten 2002
For vår del startet prosjektet allerede i midten av forgje termin. Den 18.10.2002 arrangerte NITH er frokost seminar der man hadde mulighet til å snakke med bedrifter som ønsket seg et studentprosjekt. I den sammenheng fikk vi et møte med Knut Yrvin og fikk ordnet oss et prosjekt. Tiden etter det brukte vi til å bli litt bedre kjent med forskjellige Linux versjoner. Måten det ble gjort på var at vi satt oss ned og prøvde å installere disse programmene og leste en god del dokumentasjon om dem. Vi brukte også noe tid på å være med på noen utviklersamlinger for å få en forståelse og hvordan man setter opp et Skolelinux nettverk med forskjellige bruker profiler. Dette var til en stor hjelp når det kom til å sette opp vårt eget lokale.
Oppstart av prosjektet
De første ukene av prosjektperioden gikk med på å sette opp nettverket i utviklingslokalene. Dette ble en mye større jobb en det vi i utgangspunktet hadde trodd. Noe av grunnen til dette var at det nettverket vi til slutt satt opp hadde en litt annen struktur en det vi i utgangspunktet tenkte. Grunnen til denne forandringen var at vi ville øke sikkerheten mellom de 3 segmenterte nettene og ikke minst fra at noen andre kunne få tilgang utenifra.
Forprosjekt
Utviklingsarbeid
Det første vi måtte gjøre var å utarbeide en brukermanual for de programmene
som skulle pressangteres for lærere under
utviklersamlingen i Time kommune. Dette arbeidet hadde vi i utgangspunktet tenk
å gjennomføre på slutten av prosjektet siden vi anså dette til å være den minst
viktige delen av vårt prosjekt. Siden dette måte gjøres helt i starten måtte vi
også forandre på resten av milepælene for prosjektet. Derfor ble en ny
milepælsplan utarbeidet.