Operating systemen

Uit computer infrastructuur
Naar navigatie springen Naar zoeken springen

Een computer zonder een operating system is onbruikbaar. Om functionaliteit uit een computer te krijgen moet er eerst iets op de computer geïnstalleerd worden. Dit installeren gaat niet zomaar. Dit komt omdat een operating systeem moet zijn “gecompileerd (samengesteld)” zodat de CPU (computer processing unit) de juiste instructies kan ontvangen.

Communicatie tussen computers

Een operating system is niet altijd verenigbaar (compatible) met andere computers. Dat is goed te zien bij een IPhone. 

312.jpg

Het operating systeem “Linux” kan niet worden geïnstalleerd op een IPhone. Dit heeft één belangrijke reden. Apple maakt gebruik van een zwaar beveiligde bootloader, die alleen in de beginjaren van het bedrijf kon worden omzeild (IPhone 3). Hierbij was het mogelijk Android op een IPhone te installeren. Voor Android is Linux als operating systeem wat makkelijker te installeren, want Android zelf is gebaseerd op een Linux Kernel en IOS (iPhone OS), gebaseerd op de Darwin Kernel. Deze staat verder weg van Linux. Een andere reden waarom Linux makkelijker op Android is te installeren, is omdat Androids bootloader minder veilig is. Maar nog steeds blijft het erg lastig Linux op Android te installeren, doordat de drivers opnieuw moeten worden gemaakt door de ontwikkelaar (die Linux probeert te installeren op een telefoon met Android).

De drivers zijn nodig om een apparaat werkend te krijgen. Deze dienen als communicatie met de hardware. Dit proces van het communiceren tussen software en hardware gaat niet direct. Hiervoor hebben we een tussenstap nodig. Het onderdeel van deze tussenstap noemen we ook wel de Kernel. Dit is dus de kern (core) van het operating systeem. Deze core verschilt per operating systeem. De core is niet voldoende om alle apparaten werkend te krijgen. Daar hebben we drivers voor die boven de Kernel staan. Wel kan het zijn dat belangrijke instructies al geïnstalleerd zijn om het operating systeem te kunnen opstarten. Dit zijn dan “built in drivers”. Rechts staat een afbeelding van hoe dit basaal in zijn werk gaat.

De communicatie verloopt als volgt:

We beginnen met een applicatie zoals Office of Chrome. Deze applicaties kunnen niet direct worden gerund op de bestaande hardware. Drivers zitten in bijna alle gevallen boven de Kernel en deze communiceren dus eerst met een andere API (Application Programming Interface). Dit zijn bibliotheken (libraries) die zijn ingebouwd in het operating systeem om services van de Kernel te kunnen inroepen.

Grga.jpg

Als voorbeeld van een driver nemen we de driver Vulkan OpenGL (Open Graphics Library). Dit is een “library” die veel voorkomt in operating systemen. Als we een videokaart zouden hebben en we installeren de drivers, dan communiceert de driver van de videokaart met OpenGL. Vervolgens roept OpenGL andere benodigde Linux API’s op, die dan verder communiceren met de Kernel. De Kernel kan dan verder instructies geven aan de hardware.

Linux en Windows

Linux

Linux is wat lastiger dan Windows om te bedienen. Dit komt omdat Linux open source software is en daardoor heel erg vaak is aangepast door ontwikkelaars. Hierdoor zijn veel varianten van Linux ontstaan. Het voordeel van Linux is dat het beter aan te passen is. Maar het nadeel is dat de gewone gebruiker hier erg van schikt. Hoewel geprobeerd is om Linux meer gebruikersvriendelijk te krijgen, blijft het grootste probleem dat Office (van Word) niet kan draaien op Linux. Dit houdt echter niet in dat Microsoft Office werkend zou kunnen maken op Linux. Microsoft doet dit bewust niet. Zij willen namelijk dat zoveel mogelijk mensen gebruik maken van hun operating systeem.

Unix history.png

UNIX is een voorloper van Linux. Omdat je echter UNIX niet vrij kon bewerken, ontstond er een groep mensen die Linux ging maken “vanuit scratch”. Er zit geen gekopieerde code van UNIX in Linux. Maar Linux is vrijwel volledig gebaseerd op UNIX. Hierdoor kon Linux open source software worden. Dit houdt in dat de code toegankelijk is en vrij kan worden aangepast door iedereen die computertaal kan schrijven. Dit maakt Linux erg interessant voor computer ontwikkelaars.

Rechts staat een afbeelding van de ontwikkeling van UNIX tot alle vertakkingen die er tegenwoordig zijn zoals Linux, BSD (Berkeley Software Distribution) en Mac-OS.

De mappenstructuur van Linux

Er bestaan twee verschillende partitie tabellen in Linux, namelijk MBR (master boot record) en GPT (GUID (=Global unit identifier) Partition Table). Beide dienen als een soort van inhoudsopgave die onthoudt wat voor een soort bestandssysteem een partitie bevat. Een partitie heeft als doel om van één schijf meerdere virtuele schijven te maken. Dit is handig voor het opbouwen van mapstructuren. Belangrijk is om te weten dat MBR moet worden voorkomen wanneer gebruik kan worden gemaakt van GPT.  Dit komt doordat MBR gebruik maakt van de traditioneel legacy BIOS mode en GPT gebruik maakt van de “nieuwere” UEFI mode (unified extensible firmware interface). Het grote verschil is dat UEFI efficiënter te werk gaat bij de opstartprocedure van de computer en andere extra’s heeft, zoals de mogelijkheid om meer opslag te installeren en meer partities aan te maken.

Rechts staat een afbeelding van een mapstructuur van Linux. Het filesysteem "ext4 (Fourth Extended File System)" is een veel gebruikt filesysteem bij Linux installaties.

Windows

Csacsac.jpg

Windows is anders ingericht dan Linux. Windows richt zich meer op de algemene gebruiker en zorgt voor een zo simpel mogelijk te gebruiken interface.

Rechts staat een afbeelding van hoe de Kernel in Windows werkt. We verstaan hier onder "user mode" (lichtblauw) de drivers en de API’s. Ook hierbij worden er extra benodigde API’s opgeroepen en deze communiceren verder met de Kernel. Verder heeft de Kernel (mode) directe toegang tot de hardware.

De mappenstructuur van Windows

Windows maakt gebruik van de wel bekende NTFS (New Technology File System). Dit is ontwikkeld nadat het oude filesysteem te veel beperkingen bleek te hebben. Rechts staat een afbeelding van de mappenstructuur van Windows. In Linux is de /home te vergelijken met \gebruikers in Windows. Opvallend is dat Linux slash forward (/) gebruikt en Windows slash backward (\). Wanneer je forward slash (/) gebruikt bij het navigeren naar een bestandslocatie wordt dit meestal automatisch gecorrigeerd door het operating systeem.

Dcsc.jpg

Vergelijking

Als je kijkt naar de voor- en nadelen van beide systemen, dan kun je concluderen dat beide operating systemen ieder hun eigen voor- en nadelen hebben. Voor servergebruik en beveiliging is Linux de beste optie. Dit heeft 2 redenen. Ten eerste is Linux open source software en ten tweede is Linux een minder grote schietschijf voor aanvallen van buitenaf, omdat Linux minder wordt gebruikt dan Windows. Windows is dus de beste optie voor de dagelijkse gebruiker. Daarnaast beschikt Windows over betere grafische acceleratie dan Linux. Dit houdt in dat Windows een betere keuze is voor gamers dan Linux.

Meest gebruikte commands

Cdscs.jpg

Bij het gebruik maken van Windows en Linux is het in sommige gevallen noodzakelijk om gebruik te maken van een “terminal”. Vooral bij een Linux server is dit noodzakelijk, omdat in geval van een Linux server alles moet worden bediend via de terminal.

Opdrachten in Linux

Er zijn een aantal opdrachten (commands) die ik erg veel heb gebruikt tijdens het opzetten van mijn webserver. Dit is een kort lijstje dat ik als voorbeeld heb samengesteld. Maar er bestaan veel meer opdrachten.

Command Voorbeeld Functie
rm <filename or dir> rm -r *.zip verwijderd alles met .zip extentie Verwijderen van bestanden
ls ls ls --directory Laat de desbetreffende directory zien
nano <filename|dir> nano sshd_config om aanpassing te makken aan het secure shell protocol. Aanpassen van variabelen in configuratie bestanden
sudo <command> sudo su Superuser do ofwel run dit command als root user (administrator)
(sudo) apt-get <update|upgrade|install name> sudo apt-get update && apt-get upgrade Updaten van installatie sources, updaten van applicaties en installatie
Systemctl <start|restart|stop> Systemctl restart apache2. Opnieuw starten van een service na aanpassingen van configuratie
Cd <folder name or dir> Cd .. Change directory aanpassen van desbetreffende directory
Mkdir <folder name> Mkdir fotos 2020 Maken van mappen
Ifconfig Ifconfig eth0 Zelfde als ipconfig in Windows
Chown < user:group foldername> chown -R 1000:www-data public Aanpassen van folder permissies
Reboot now Sudo reboot now Spreekt voor zich
Netstat Netstat -natp Zelfde als in Windows; laat de actieve connecties zien
Ping Ping 172.0.0.1 Stuurt packets volgens het ICMP (Internet Control Message Protocol)
./<name>.sh ./start.sh Starten van script
Chmod +x Chmod +X start.sh Bestand veranderen naar uitvoerbaar
Wget <downloadlink> wget https://downloadlink.zip Download bestand
Tar <filename>.tar.gz Tar -xzvf fotos.tar.gz Unzippen

Opdrachten in Windows

Meestal hoef je de Windows terminal niet te gebruiken, tenzij je Windows wilt installeren en extra configuraties wilt voltooien.

Hieronder zijn enkele voorbeelden opgenomen:

Command Voorbeeld Functie
Cd Cd C:\ Zelfde als in geval van Linux
Net use <a tot z> : \\<server>\<folder> Net use Z: \\home\public Plaatsen van een netwerk folder in Windows
Net user <gebruiker> <command> net user administrator /active:yes Aanpassingen maken aan een account
Ping Ping 172.0.0.1 Zelfde als die van Linux
Ipconfig Ipconfig /all Laat informatie zien van netwerkadapters
Diskpart Diskpart Programma om partities te veranderen