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
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
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
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”
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.
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
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:
Open bestand prog.py op regel 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.