Operating systemen: verschil tussen versies
(8 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
+ | 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. |
||
− | In dit hoofdstuk leg ik uit hoe hardware en software communiceren. verder bespreek ik verschillende keuzes die kunnen worden gemaakt, bv waarom zou je een service hosten op Linux i.p.v. op Windows of waarom niet op een Mac OS (operating system)? |
||
+ | ==Communicatie tussen computers== |
||
− | Verder zal ik een aantal basis commands bespreken en de verschillen tussen de map (partitie) indeling van Linux en die van Windows en bespreek ik de opstart volgorde. |
||
+ | Een operating system is niet altijd verenigbaar (compatible) met andere computers. Dat is goed te zien bij een IPhone. |
||
− | |||
− | Een computer zonder een operating system is onbruikbaar. Om er functionaliteit uit 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. |
||
− | |||
− | ==1.1 Voorkennis== |
||
− | Ik zal eerst een voorbeeld bespreken waaruit blijkt dat een operating system niet altijd verenigbaar (compatible) is met andere computers. Dat doe ik aan de hand van het voorbeeld van een IPhone. |
||
[[Bestand:312.jpg|miniatuur]] |
[[Bestand:312.jpg|miniatuur]] |
||
+ | 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). |
||
− | We kunnen het operating systeem “Linux” niet installeren op een IPhone. Dit heeft 1 belangrijke redenen. |
||
+ | 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. |
||
− | Apple maakt gebruik van een zwaarbeveiligde bootloader die alleen in de beginjaren van het bedrijf konden worden omzeild (IPhone 3). Hierbij was het mogelijk Android te installeren. Bij het schrijven van dit profiel werkstuk is een boot exploit gepubliceerd genaamd “checkra1n” dit houdt in dat de persoon met de juiste kennis in theorie Linux kan runnen op een iPhone of een iCloud vergrendeling kan omzeilen. |
||
+ | De communicatie verloopt als volgt: |
||
− | 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 dit word later nog meer toegelicht. Een andere reden waarom dit 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 woorden 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 dus 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”. Hier rechts kunt u een plaatje zien hoe dit basaal te werk gaat. |
||
+ | 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. |
||
− | De communicatie gaat 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 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. |
||
[[Bestand:Grga.jpg|miniatuur]] |
[[Bestand:Grga.jpg|miniatuur]] |
||
− | + | 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. [[Bestand:Unix history.png|miniatuur]] |
||
+ | 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==== |
||
− | ==1.2 linux en Windows== |
||
+ | [[Bestand:Sacascff.png|alt=|miniatuur|437x437px]] |
||
− | Eerder heb ik besproken hoe de Kernel werkt. Nu ga vertellen waarom sommige operating systemen verder van elkaar vandaan liggen dan andere. De titel heet Linux en windows maar dit klopt niet. De titel had moeten zijn Unix en windows maar omdat de kans groot is dat de term UNIX (uniform executive) nieuw is en Linux vrij bekend heb ik Linux genomen het verschil is dat linux geïnspireerd is door unix dus wanneer je het hebt over linux heb je het eigelijk over de chineese versie van unix. |
||
+ | 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. |
||
− | ===1.2.1 linux=== |
||
+ | ===Windows=== |
||
− | De eerste gedachte die opkomt als je aan het systeem Linux denkt is “dat geeft problemen en gedoe”. De simpele waarheid is dat dit klopt! Linux is nu eenmaal lastiger dan windows om te bedienen. Maar dit komt niet zozeer door Linux zelf, maar doordat Linux opensource software is en daardoor heel erg vaak is aangepast door ontwikkelaars waardoor er veel varianten van Linux zijn ontstaan. |
||
− | |||
− | Het voordeel van Linux is echter 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 gebruikers- vriendelijk 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. |
||
− | |||
− | Voordat ik verder ga op Linux ga ik eerst even inzoomen op wat UNIX is. UNIX is een operating systeem dat gemaakt is door het bedrijf AT&T rond 1969. Het jaar 1969 is een belangrijk moment in de geschiedenis, omdat toen de eerste binaire klok ging tikken. Dit is ook de reden waarom je de binaire tijd niet verder terug dan 1970 kan zetten. Doe je dit wel dan werkt de CPU niet meer en is deze “versteend” (gebricked). U hoeft niet bang te zijn want het “bricken” van hardware gebeurd heel weinig. De meest voorkomende fout zit in het updaten van firmware. Het “bricken” is een term die wordt gebruikt wanneer je op softwarematige manier hardware sloopt. U hoeft niet bang te zijn want het is vrij zeldzaam dat zoiets voorkomt. Zelf heb ik nog maar 1 keer een hele oude telefoon “gebricked” dit was uit nieuwsgierigheid. |
||
− | [[Bestand:Unix history.png|miniatuur]] |
||
− | Toen UNIX werd gemaakt was er een groep mensen die vrij jaloers was op UNIX en UNIX wou gebruiken. Maar omdat UNIX eigendom was van een bedrijf ontstond er een groep die Linux ging namaken “vanuit scratch”. Linux is eigenlijk wat je krijgt wanneer je een groep gespecialiseerde computermensen bij elkaar zet. Er zit dus geen gekopieerde code van UNIX in Linux. Maar Linux is vrijwel volledig gebaseerd op UNIX. Hierdoor kon Linux open source worden. Vanaf dat moment werd Linux veranderd door iedereen die computertaal kan schrijven. Dit maakt Linux erg interessant voor computer ontwikkelaars om te leren hoe een operating systeem in elkaar zit. Linux is immers een open source operating systeem. Dit houdt in dat de code toegankelijk is en kan worden aangepast door iedereen onder de open source licentie. |
||
− | |||
− | Hier zien we een plaatje van de ontwikkeling van Unix tot alle vertakkingen die er zijn zoals Linux, BSD (Berkeley Software Distribution) en Mac-os. |
||
− | |||
− | ====1.2.1.1 map structuur van linux==== |
||
− | [[Bestand:Sacasc.jpg|miniatuur|437x437px]] |
||
− | Om te beginnen wil ik vertellen dat er twee verschillende partitie tabellen bestaan namelijk MBR (master boot record) en GPT (GUID (=Global unit identifier) Partition Table). Over deze begrippen valt erg veel te vertellen en daarom zal ik het zo kort mogelijk houden. Beide dienen als een soort van inhoudsopgave die onthoudt wat voor een soort bestandssysteem een partitie bevat. Een partitie heeft als doel om van 1 schijf meerdere virtuele schijven te maken. Dit is handig voor het opbouwen van map structuren. 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. |
||
− | |||
− | Nu ik dit heb verteld ga ik terug naar het filesysteem dat wordt gebruikt op een partitie. In dit geval ga ik het hebben over ext4 (Fourth Extended File System). Dit is een veel gebruikt filesysteem bij Linux installaties. Hier rechts is een plaatje van een map structuur van Linux. Zelf gebruik ik liever Windows doordat ik dit makkelijker te navigeren vind. Bij het gebruiken van Linux zijn in mijn geval de meest gebruikte locaties: |
||
− | |||
− | - /home |
||
− | |||
− | - /etc |
||
− | |||
− | - /var. |
||
− | |||
− | Dit komt doordat hier de meeste aanpassing, logs en andere handige bestanden te vinden zijn. Alle overige locaties zijn voor installaties van programma’s en bestandssystemen van Linux zelf en nog wat andere kleinigheden. |
||
− | |||
− | |||
− | ===1.2.2 windows=== |
||
[[Bestand:Csacsac.jpg|miniatuur]] |
[[Bestand:Csacsac.jpg|miniatuur]] |
||
+ | Windows is anders ingericht dan Linux. Windows richt zich meer op de algemene gebruiker en zorgt voor een zo simpel mogelijk te gebruiken interface. |
||
− | Windows is anders gericht dan Linux. Windows richt zich meer op de algemene gebruiker. En zorgt voor een zo simpel mogelijk te gebruiken interface. Voordat ze deze – gebruikersvriendelijke- omgeving hebben kunnen bouwen hebben ze jaren geïnvesteerd in het maken van voorgaande producten. Die waren echter lastig te bedienen. Om te beginnen zijn er bij Windows maar 2 Kernels, namelijk de Windows 9x Kernel (voor Windows 95, 98 en ME (Millennium Edition) en de Windows NT (New Technology) Kernel, die wordt gebruikt in Windows NT, 2000, XP, Vista, 7, 8, 8.1 en 10. Omdat de Windows operating systemen versies die onder Windows 9x Kernel vallen erg oud zijn ga ik die niet meer bespreken. |
||
− | + | 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. |
|
− | <br /> |
||
− | ==== |
+ | ====De mappenstructuur van Windows==== |
− | Windows maakt gebruik van de wel bekende NTFS (New Technology File System). Dit is ontwikkeld nadat het oude filesysteem |
+ | 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. |
[[Bestand:Dcsc.jpg|miniatuur]] |
[[Bestand:Dcsc.jpg|miniatuur]] |
||
+ | ===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== |
||
+ | [[Bestand:Cdscs.jpg|miniatuur]]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=== |
||
− | |||
− | ===1.2.3 windows vs Linux=== |
||
− | Als we kijken naar de voor en nadelen dan kun je concluderen dat beide operating systemen ieder zo hun eigen voordelen 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. |
||
− | ==1.3 Meest gebruikte commands== |
||
− | [[Bestand:Cdscs.jpg|miniatuur]]Bij het gebruik maken van Windows en Linux is het in sommige gevallen noodzakelijk om gebruik te maken van een “terminal”. Zie plaatje rechts. Vooral bij een Linux server is dit noodzakelijk omdat in geval van een Linux server alles moet worden bediend via de terminal. |
||
− | |||
− | ===1.3.1 Commands 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. |
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. |
||
{| class="wikitable" |
{| class="wikitable" |
||
Regel 75: | Regel 47: | ||
|'''Functie''' |
|'''Functie''' |
||
|- |
|- |
||
− | |rm |
+ | |rm <filename or dir> |
|rm -r *.zip verwijderd alles met .zip extentie |
|rm -r *.zip verwijderd alles met .zip extentie |
||
|Verwijderen van bestanden |
|Verwijderen van bestanden |
||
|- |
|- |
||
|ls |
|ls |
||
+ | |ls ls --directory |
||
− | | |
||
|Laat de desbetreffende directory zien |
|Laat de desbetreffende directory zien |
||
|- |
|- |
||
Regel 88: | Regel 60: | ||
|- |
|- |
||
|sudo <command> |
|sudo <command> |
||
+ | |sudo su |
||
− | | |
||
|Superuser do ofwel run dit command als root user (administrator) |
|Superuser do ofwel run dit command als root user (administrator) |
||
|- |
|- |
||
|<nowiki>(sudo) apt-get <update|upgrade|install name></nowiki> |
|<nowiki>(sudo) apt-get <update|upgrade|install name></nowiki> |
||
|sudo apt-get update && apt-get upgrade |
|sudo apt-get update && apt-get upgrade |
||
− | |Updaten van installatie sources, updaten van applicaties en |
+ | |Updaten van installatie sources, updaten van applicaties en installatie |
|- |
|- |
||
|<nowiki>Systemctl <start|restart|stop></nowiki> |
|<nowiki>Systemctl <start|restart|stop></nowiki> |
||
Regel 108: | Regel 80: | ||
|- |
|- |
||
|Ifconfig |
|Ifconfig |
||
+ | |Ifconfig eth0 |
||
− | | |
||
− | |Zelfde als ipconfig in |
+ | |Zelfde als ipconfig in Windows |
|- |
|- |
||
− | |Chown |
+ | |Chown < user:group foldername> |
|chown -R 1000:www-data public |
|chown -R 1000:www-data public |
||
|Aanpassen van folder permissies |
|Aanpassen van folder permissies |
||
Regel 119: | Regel 91: | ||
|Spreekt voor zich |
|Spreekt voor zich |
||
|- |
|- |
||
+ | |Netstat |
||
|Netstat -natp |
|Netstat -natp |
||
+ | |Zelfde als in Windows; laat de actieve connecties zien |
||
− | | |
||
− | |Zelfde als in Windows laat de actieve connecties zien |
||
|- |
|- |
||
|Ping |
|Ping |
||
Regel 136: | Regel 108: | ||
|- |
|- |
||
|Wget <downloadlink> |
|Wget <downloadlink> |
||
+ | |wget https://downloadlink.zip |
||
− | | |
||
+ | |Download bestand |
||
− | | |
||
|- |
|- |
||
− | |Tar |
+ | |Tar <filename>.tar.gz |
|Tar -xzvf fotos.tar.gz |
|Tar -xzvf fotos.tar.gz |
||
|Unzippen |
|Unzippen |
||
|} |
|} |
||
+ | ===Opdrachten in Windows=== |
||
− | <br /> |
||
+ | Meestal hoef je de Windows terminal niet te gebruiken, tenzij je Windows wilt installeren en extra configuraties wilt voltooien. |
||
+ | Hieronder zijn enkele voorbeelden opgenomen: |
||
− | ===1.3.2 Commands in windows=== |
||
− | Meestal hoef je de windows terminal niet te gebruiken, tenzij je Windows wilt installeren en extra configuraties wilt voltooien. Hier heb ik wat voorbeelden opgenomen. |
||
{| class="wikitable" |
{| class="wikitable" |
||
|'''Command''' |
|'''Command''' |
||
Regel 154: | Regel 126: | ||
|Cd |
|Cd |
||
|Cd C:\ |
|Cd C:\ |
||
− | |Zelfde als in geval |
+ | |Zelfde als in geval van Linux |
|- |
|- |
||
|Net use <a tot z> : \\<server>\<folder> |
|Net use <a tot z> : \\<server>\<folder> |
||
Regel 162: | Regel 134: | ||
|Net user <gebruiker> <command> |
|Net user <gebruiker> <command> |
||
|net user administrator /active:yes |
|net user administrator /active:yes |
||
− | |Aanpassingen maken aan |
+ | |Aanpassingen maken aan een account |
|- |
|- |
||
|Ping |
|Ping |
||
|Ping 172.0.0.1 |
|Ping 172.0.0.1 |
||
− | |Zelfde als die van |
+ | |Zelfde als die van Linux |
|- |
|- |
||
|Ipconfig |
|Ipconfig |
||
|Ipconfig /all |
|Ipconfig /all |
||
− | |Laat informatie zien |
+ | |Laat informatie zien van netwerkadapters |
|- |
|- |
||
|Diskpart |
|Diskpart |
||
|Diskpart |
|Diskpart |
||
− | |Programma om partities |
+ | |Programma om partities te veranderen |
|} |
|} |
||
+ | [[Categorie:Profielwerkstuk]] |
Huidige versie van 30 aug 2020 om 16:04
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.
Inhoud
Communicatie tussen computers
Een operating system is niet altijd verenigbaar (compatible) met andere computers. Dat is goed te zien bij een IPhone.
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.
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 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
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.
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
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 |