Ontwerp en bouw een besturingssysteem/Over dit boek
Het boek is opgedeeld in hoofdstukken voor een aantal gerelateerde onderwerpen. Elk hoofdstuk bevat een theoriedeel, en een toepassing van die theorie. De theorie is belangrijk voor het snappen van de code, en onmisbaar aangezien een groot deel van de code zelf geschreven zal moeten worden.
Wat je moet kunnen en weten
[bewerken]Er is wat basistheorie waarvan we verwachten dat je dat al onder de knie hebt. Zo niet, lees en leer er dan over want het bouwen van een besturingssysteem is een van de moeilijkste dingen die je op de computer kan doen. Het gaat om het volgende:
- Programmeerervaring hebben in een imperatieve/procedurele taal (zoals Java, C# en C(++), en niet zoals Haskell, Lisp en F# want dat zijn functionele programmeertalen).
- Binaire en hexadecimale notatie snappen en kunnen lezen
- Met een command-line-interface kunnen werken, bijvoorbeeld onder Linux of DOS
- Engels kunnen lezen
- Engels kunnen schrijven (om vragen te stellen)
- ...
Conventies in dit boek
[bewerken]Getalnotaties
[bewerken]Decimale getallen worden zonder prefix genoteerd, zoals '174'. Hexadecimale getallen hebben de prefix 0x
, dus '0xAE' is 174 in hexadecimaal. Ten slotte worden binaire reeksen voorafgegaan door 0b
, zoals '0b10101110'.
Bitreeksen
[bewerken]Bits tellen we vanaf de rechterkant, met de eerste bit op positie 0 en de laatste op positie 'lengte - 1'. Dus in het getal 0b0100 is 1 de waarde van de bit op positie 2, en de laatst genoemde bit heeft positie 3.
Bits en bytes
[bewerken]Aangezien we werken met bits en bytes gebruiken we de bijbehorende SI- en IEC-prefixen voor de verschillende veelvouden. Zie de onderstaande tabellen:
Veelvouden van bytes | |||
---|---|---|---|
Binair | Decimaal | ||
Symbool (naam) | Bytes | Symbool (naam) | Bytes |
KiB (kibibyte) | 10241 = 210 bytes | kB (kilobyte) | 10001 = 103 bytes |
MiB (mebibyte) | 10242 = 220 bytes | MB (megabyte) | 10002 = 106 bytes |
GiB (gibibyte) | 10243 = 230 bytes | GB (gigabyte) | 10003 = 109 bytes |
TiB (tebibyte) | 10244 = 240 bytes | TB (terabyte) | 10004 = 1012 bytes |
Veelvouden van bits | |||||
---|---|---|---|---|---|
Binair | Decimaal | ||||
Symbool | Bits | Bytes | Symbool | Bits | Bytes |
Kibit (kibibit) | 10241 bits | 27 bytes | kbit (kilobit) | 10001 bits | 125 bytes |
Mibit (mebibit) | 10242 bits | 217 bytes | Mbit (megabit) | 10002 bits | 125⋅103 bytes |
Gibit (gibibit) | 10243 bits | 227 bytes | Gbit (gigabit) | 10003 bits | 125⋅106 bytes |
Tibit (tebibit) | 10244 bits | 237 bytes | Tbit (terabit) | 10004 bits | 125⋅109 bytes |