Operating systems

T. Issaris

3 Februari 2021

Overzicht

  • Operating systems (besturingssystemen)
  • Filesystem hierarchy
  • Verschillen filesystem
  • Commando prompt/shell/terminal
  • Installatie software

Operating systems

  • Unix-achtigen: Linux, macOS, FreeBSD, NetBSD, OpenBSD, Android, iOS
  • Windows
  • DOS: MS-DOS, FreeDOS
  • real-time en embedded: VxWorks, eCos, QNX, Integrity, pSOS, FreeRTOS, Xenomai, RTAI, RIOT, RTEMS, ThreadX, Nucleus RTOS

Operating systems

  • server: Linux, FreeBSD, OpenBSD
  • desktop: Windows, macOS
  • phone/tablet: Android, iOS
  • robot/vliegtuig/…: VxWorks, eCos, QNX, Integrity, pSOS, FreeRTOS, Xenomai, RTAI, RIOT, RTEMS, ThreadX, Nucleus RTOS, Linux

Linux distributies

  • Ubuntu: gebaseerd op Debian, gebruiksvriendelijker
  • Debian: community
  • RedHat: bedrijf
  • Amazon Linux: gebaseerd op RedHat, voor eigen cloud
  • Raspbian/Raspberry Pi OS: Debian voor Raspberry Pi
  • Knoppix: eerste LiveCD
  • Kali Linux: security tools, penetration testing

Linux distributies

  • allemaal zelfde kernel (kern van OS)
  • zelfde bibliotheken
  • vooral verschillen in versies, packaging en organisatie

BSD

  • FreeBSD: vormde basis voor macOS, iOS, …
  • OpenBSD: security focus
  • NetBSD: portability focus

Filesystem hierarchy

Windows

Windows FS

Unix

Linux FS

Verschillen

  • Case
  • Drive letter vs mount

Case

  • Takis.txt
  • takis.txt
  • TAKIS.txt

Unix: 3 verschillende bestanden in 1 map

Windows: in 1 map meestal 1 en hetzelfde bestand

Drive letter vs mount

Windows

Drive letter

Unix

Mount point

Command line

Manier om met het besturingssysteem te communiceren door middel van invoer en uitvoer van tekstuele commando’s.

Voordelen

  • krachtig
  • programmeerbaar
  • snel
  • supersnel i.v.m. RDP over langzame internetconnecties

Nadelen

  • niet intuitief
  • niet discoverable

Windows

Beschikbare shells

  • Commando prompt: cmd.exe (1980)
  • Powershell (2006)

Commando’s

  • dir: toon inhoud van huidige map
  • cd mapnaam: verander van map
  • mkdir mapnaam: maak een map
  • rmdir mapnaam: verwijder een map
  • del filename: verwijder een bestand
  • echo: tekst uitvoer (zoals print in Python)

Redirect operator: output redirect

Laat toe scherm uitvoer naar bestand te schrijven

echo Olifant > neushoorn.txt

Resultaat: Bestand met tekst “Olifant”.

Oefening

  • open de commando prompt
  • ga naar je downloads map
  • maak een folder met naam “konijn”
  • maak (met echo) een bestand “eekhoorn.py” met als inhoud “print”

Unix

Beschikbare shells

  • tcsh (1975)
  • bash (1989)
  • zsh (1990)
  • fish (2005)

Commando’s

  • ls: toon inhoud van huidige map
  • cd mapnaam: verander van map
  • mkdir mapnaam: maak een map
  • rmdir mapnaam: verwijder een map
  • rm filename: verwijder een bestand
  • echo: tekst uitvoer (zoals print in Python)
  • cat: toon inhoud tekstbestand

Commando’s

  • ps: toont processen
  • df: toont gebruikte en beschikbare ruimte
  • top: toont realtime info over processen
  • sort: sorteert
  • grep: doorzoekt tekst
  • wc: telt regels, woorden en letters
  • vi: teksteditor

Redirect operators: pipe

ps | sort > neushoorn.txt

De tekstuitvoer van ps wordt naar sort gestuurd. De gesorteerde tekstuitvoer van sort wordt naar het bestand neushoorn.txt geschreven.

Redirect operators: input redirect

sort < invoer.txt > uitvoer.txt

Het sort programma leest nu van invoer.txt, en de tekstuitvoer van sort wordt naar het bestand uitvoer.txt geschreven.

Oefening

  • open een shell
  • ga naar je downloads map
  • maak een folder met naam “konijn”
  • maak (met echo) een bestand “eekhoorn.py” met als inhoud “print”

Remote shell

  • inloggen vanop afstand
  • zelfde commando’s beschikbaar als vanop machine zelf
  • SSH: versleutelde verbinding, zeer veilig, key-pair

Installatie van software

Windows

  • grafische installers
  • niet gestandardiseerd

Unix

  • 1 package manager voor alle software
  • apt, yum, pacman, pkg
  • tienduizenden packages beschikbaar (Debian: 51000)

apt

  • apt-get install: installatie
  • apt-cache search: zoeken naar software
  • apt-get remove: verwijderen van software
  • alle informatie over alle geinstalleerde bestanden op 1 plaats beschikbaar

apt gebruiken

$ apt-cache search http | grep nginx
nginx-extras - nginx web/proxy server (extended version)
nginx-full - nginx web/proxy server (standard version)
nginx-light - nginx web/proxy server (basic version)
$ apt-get install nginx
$ systemctl start nginx

Unix editor: vi/vim

  • zeer krachtig
  • zeer ongebruiksvriendelijk
  • standaard beschikbaar op elk Unix systeem
  • vim: uitgebreidere versie van vi (vi improved)

vi: twee modes

  • normal mode: commando’s invoeren
  • insertion mode: letters invoeren

vi: commando’s

  • i: ga naar insertion mode
  • escape: ga uit insertion mode
  • :q verlaat de editor
  • :w sla het bestand op
  • :wq sla het bestand op en verlaat de editor

vi: voorbeeld

Open bestand mijntext.txt:

vim mijntext.txt

Open bestand prog.py op regel 10:

vim prog.py +10

vi: oefening

  • Start vi op een Unix systeem en maak een bestand ‘cosn2.py’.
  • Schrijf code zodat het programma ‘Hoi COSN2’ op het scherm afdrukt.
  • Voer het programma uit.

Oefening webserver

  • installeer nginx
// reveal.js plugins