Kursen vlinux (v1)

By , . Latest revision .

Kursen Operativsystemet Linux och virtualiseringstekniker, a.k.a. vlinux, och syftet med kursen är att studenten ska lära sig operativsystemet Linux och dess beståndsdelar såsom processer, filsystemet och terminalen. Kursens fokusområden ligger även i operativsystemets uppbyggnad, programhantering och serverhantering samt att programmera i språket Bash. Studenten ska även lära sig hantera virtualiseringstekniken Docker.

Kursutveckling pågår

Kursen ges hösten 2019 läsperiod 1.

Kursen har tre fokus. Det ena är att lära ut grunder och beståndsdelar i operativsystemet Linux. Det andra är att lära ut programmeringsspråket Bash och dess funktionalitet. Det tredje är att introducera virtualiseringsmiljöer och visa på hur man kan använda dem. Kursen är för de som skall jobba med webbprogrammering.

Kursen börjar med att du installerar virtualiseringsmiljön VirtualBox med ett operativsystemet Linux. Därefter lär du dig de grundläggande koncepten i Linux såsom terminalen, filsystemet, process-begreppet och att installera tjänster och programvaror och servrar. Senare i kursen får du lära dig hur du installerar och hanterar virtualiseringsmiljön Docker samt hur vi jobbar med flera Docker-kontainrar som kommunicerar med varandra.

Samtidigt skriver du skript-program i programspråket Bash.

I slutet av kursen får du visa dina färdigheter i ett praktiskt programmeringsprojekt.

#Krav på labbmiljö

I kursen installerar du virtualiseringssystemen VirtualBox och Docker. Du behöver ha en dator med minst 8GB internminne för att det skall fungera bra. Med mindre internminne tar det längre tid att genomföra övningarna och det kan kännas trögt.

Kort och gott, du skall installera en linux-server och du behöver ha en tillräckligt bra miljö för att det skall fungera utan bekymmer.

#Förkunskaper

Det formella förkunskapskravet är:

För tillträde till kursen krävs 22,5hp programmering, webbteknologier och databaser.

#Innehåll

Kursen omfattar följande områden:

  • Installation av Linux och Linux som server. Paket och pakethantering.
  • Installation av webbservern Apache.
  • Linux med terminal (Bash), ssh, nano, och systemkommandon.
  • Operativsystemets olika delar såsom filsystemet, processer och processhantering.
  • Skriptprogrammering i Bash.
  • Virtualiseringmiljöerna VirtualBox och Docker.

#Mål

#Kunskap och förståelse

Efter genomförd kurs skall studenten:

  • visa grundläggande förståelse för operativsystemet Linux genom att skriftligen beskriva och sammanfatta erfarenheter och observationer från övningar och projekt.
  • visa goda kunskaper i att använda och kontrollera en webbserver i Linuxmiljö genom att tillämpa tekniker i praktiska övningar och projekt.
  • visa goda kunskaper i att använda och kontrollera virtualiseringsmiljer genom att tillämpa teknikerna i praktiska övningar och projekt.

#Färdighet och förmåga

Efter genomförd kurs skall studenten:

  • kunna självständigt utveckla, dokumentera och presentera ett projekt baserat på programmering med Bash och Docker i en Linux-miljö.
  • ha god praktisk förmåga att hantera de verktyg och miljöer som används vid utveckling och felsökning för Bash-script och webbservrar i en Linux-miljö.

#Värderingsförmåga och förhållnigssätt

Efter genomförd kurs ska studenten:

  • via redovisningstexter kunna visa god förmåga att reflektera över kodstruktur i språket Bash och hanteringen av en webbserver.
  • via redovisningstexter kunna visa god förmåga att reflektera över användandet av en virtualiseringsmiljö.
  • via redovisningar och utförda övningar påvisa god kunskap om serverhantering, terminalhantering, språket Bash, webbserver och en virtualiseringsmiljö.

#Kursmoment

Kursen är uppdelad i kursmoment där varje kursmoment uppskattas till 20h studerande i form av programmering, undersökning, läsande, övningar, uppgifter, redovisning och eftertanke. Alla kursmoment skall redovisas och du samlar alla redovisningar i din me-sida.

#Kmom01: Linux som server

Det första kursmomentet går ut på att installera Debian/Linux i Virtualiseringsmilön VirtualBox och logga in på maskinen som en server, via SSH.

För att lyckas med det så behöver du bekanta dig med grunderna i terminalen och lära dig ett par av de viktigaste kommandona som utförs i terminalen.

Instruktion till kursmoment 01.

#Kmom02: Apache Virtual Hosts

Nu har vi en Linux-server. Låt oss installera ett par webbplatser på den. Det låter som en vettig syssla för en webbprogrammerare.

Ett bra sätt att installera många webbplatser på en och samma maskin är Apache Virtual Hosts och det är något vi skall bekanta oss med.

Samtidigt behöver vi bekanta oss med fler Unix-kommandon så vi känner oss hemma i terminalen, SSH och att jobba med Linux som en server.

Instruktion till kursmoment 02.

#Kmom03: Introduktion till Docker

Mycket handlar om att förenkla vardagen som programmerare genom att automatisera de processer och rutiner man utför. En hel del av det vi gör kan automatiseras via skript, till exempel Bash-skript med kommandon. Men för att göra det behöver vi ha koll på hur man skapar skript och hur man programmerar i Bash. Vi lämnar även VirtualBox och tittar närmare på virtualisering med Docker. En del kanske stannar i VirtualBox och installerar Docker däri.

Instruktion till kursmoment 03.

#Kmom04: En webbserver i Docker

Vi går vidare med Docker och lär oss hur vi får igång en webbserver som körs inuti kontainern. Vi tittar även på volymer och hur vi kan anropa servern utifrån. Till detta skapar vi också ett Bashscript som kan testa en egen router.

Instruktion till kursmoment 04.

#Kmom05: Ett nätverk i Docker

Vi lär oss skapa fler kontainrar och kommunicera mellan dem med hjälp av ett privat nätverk. Flera services ska kommunicera med varandra i Docker.

Vi traskar även vidare med vår programmering i Bash och diverse verktyg.

Instruktion till kursmoment 05.

#Kmom06: Docker Compose

Vi bygger vidare på föregående kursmoment och använder docker-compose för att hantera våra services i det privata nätverket. Vi jobbar även vidare med Bash-script.

Instruktion till kursmoment 06.

#Kmom07/10: Projekt och examination

Avslutningsvis gör du ett projekt enligt en specifikation. Projektet är det sista som du gör och tillsammans med alla redovisningar som finns på din me-sida så används detta som underlag för att examinera dig från kursen.

Instruktion till kursmoment 10.

#Kurslitteratur

Måste jag skaffa kurslitteraturen?

#Kurslitteratur

Som kurslitteratur har jag valt följande bok, tillsammans med ett antal artiklar som finns tillgängliga på nätet.

Det finns läsanvisningar i samband med varje kursmoment.

  • The Linux Command Line – William Shotts En lättläst och trevlig bok med öppen licens som gör att boken finns tillgänglig fritt på bokens webbplats. Boken ger en bra introduktion till nybörjaren i Linux, systemkommandon och terminalen.

#Referenslitteratur

Följande böcker har jag valt som referenslitteratur. De kan vara bra att ha tillhands och ger lite extra läsmöjligheter. De behövs inte för att klara kursen men vill du bemästra kursens område så är dessa böcker bra startpunkter.

#Övrig litteratur

Det finns närliggande litteratur som är intressant för den som vill fördjupa sig i ämnet eller den som vill skaffa sig förkunskaper innan kursen.

#Läsanvisningar

TBD

#Lektionsplan och rekommenderad studieplan

Läser du kursen inom ramen för programmet Webbprogrammering (campus/distans) så finns det en rekommenderad studieplan inom programmet samt en lektionsplan.

Läser du kursen som en del i ett kurspaket så finns det en studieplan som är kopplad till kurspaketet.

Vissa av kurstillfällena kan ha en lektionsplan som du får i samband med kursstart. Lektionsplanen visar de tillfällena som är schemalagda träffar.

Finns det en lektionsplan så finns ofta bokningar av salar gjorda i bokningsschemat.

Studieplan, eventuell lektionsplan och eventuellt schema finns tillgängligt via kurstillfället på ITs.

Läs mer om den rekommenderade studieplanen och lektionsplanen.

#Lärarstöd och handledning

Schemalagda labbtillfällen, hangouts samt forum och chatt de viktigaste källorna för handledning. Läs om handledning och hjälp-till-självhjälp.

#Ladok

Enligt kursplanen finns ett antal ladokmoment och de är kopplade till kursens kursmoment enligt följande.

Kursens moment Ladok moment enligt kursplan Betyg
Kmom01 + kmom02 Uppgift 1 á 2.5hp G-U
Kmom03 + kmom04 Uppgift 2 á 2.5hp G-U
Kmom05 - kmom10 Projekt á 2.5hp A-F

Den sista inlämningen bestämmer kursens slutbetyg vilket utfärdas när samtliga moment godkänts.

Läs mer om rapportering av resultat.

#Betygsättning

Det finns ett särskilt dokument som beskriver hur bedömning och betygsättning sker.

#Kursutvärdering och kursutveckling

Det finns ett särskilt dokument som beskriver hur arbetet med kursutvärderingar och kursutveckling sker. Det är oerhört viktigt för mig att du säger till vad du tycker om kurs och kursmaterial, du kan alltid hojta till i både forum, chatt eller mail.

Läs om hur vi jobbar med kursutvärdering och kursutveckling.

#Kursplan

Kursplanen är kursens formella dokument som fastställts av högskolan. När kursen utvärderas görs det mot kursplanen. I kursplanen kan du läsa om kursens klassificering, syfte, innehåll, mål, generella förmågor, lärande och undervisning, bedömning och examination, litteratur, mm.

Från och med hösten 2019 heter kursen “Operativsystemet Linux och virtualiseringstekniker”. Du hittar kursplanen genom att söka på kurskoden DV1611 via BTH’s hemsida.

Fram till och med våren 2019 gick kursen under namnet “Programmera webbtjänster i Linux”. Du hittar kursplanen genom att söka på kurskoden DV1547 via BTH’s hemsida.

Under våren 2019 fanns en kurskod DV1609 med justerade förkunskapskrav jämfört med DV1547. Men den kursen har inget kurstillfälle.

#Tidigare utgåvor

Kursen linux (v3) bygger på kurskoden DV1611.

Kurserna linux (v2) och linux (v1) bygger på kurskoden DV1547.

#Revision history

  • 2018-12-21: (A, mos) Inför skapandet av linux v3, nytt namn, syfte, förkunskaper och kurskod.

Document source.