Update Home
parent
489ff33141
commit
ce5747c074
11
Home.md
11
Home.md
@ -6,12 +6,10 @@ A great way to learn something new is to retrace the steps taken by someone who
|
|||||||
> **Suggested reading**:
|
> **Suggested reading**:
|
||||||
> [Operating Systems: From 0 to 1, Chapters 1–6][os01]
|
> [Operating Systems: From 0 to 1, Chapters 1–6][os01]
|
||||||
|
|
||||||
To safeguard against dependency hell, all the essential software needed to develop and run our OS will be provided through a set of Docker images orchestrated using Docker Compose. For those unfamiliar with Docker, a command cheatsheet will be provided later on.
|
To safeguard against dependency hell, all the essential software needed to develop and run our OS will be provided through a set of Docker images. For those unfamiliar with Docker, a command cheatsheet will be provided later on.
|
||||||
|
|
||||||
Dilemmas:
|
Dilemmas:
|
||||||
* gcc or clang?
|
* gcc or clang?
|
||||||
* 32-bit or 64-bit?
|
|
||||||
* bootloader from scratch or use Limine?
|
|
||||||
|
|
||||||
To-dos:
|
To-dos:
|
||||||
* Choose a git workflow.
|
* Choose a git workflow.
|
||||||
@ -30,6 +28,13 @@ Preliminary list of essential software:
|
|||||||
> **Suggested reading**:
|
> **Suggested reading**:
|
||||||
> [Operating Systems: From 0 to 1, Chapter 7: *Bootloader*][os01]
|
> [Operating Systems: From 0 to 1, Chapter 7: *Bootloader*][os01]
|
||||||
|
|
||||||
|
A few dilemmas had already emerged before even having started writing any code.
|
||||||
|
|
||||||
|
**Should the kernel be 32-bit or 64-bit?**
|
||||||
|
* A 32-bit kernel can provide access to 2<sup>32</sup> memory addresses. For a byte-addressable memory, that equals 2<sup>32</sup> B = 4*2<sup>30</sup> B = 4 GiB of physical memory. On the other hand, a 64-bit kernel can provide access to 2<sup>64</sup> B = 16 EiB of physical memory.
|
||||||
|
* Having more RAM available makes heavy multitasking and memory-intensive operations perform better. On the other hand, 64-bit programs use about 50% more memory then their 32-bit counterpart; this is due to numerous reasons, one of which is that 64-bit pointers take up twice as much space as 32-bit ones.
|
||||||
|
* Booting a 64–bit kernel vs 32-bit kernel is different. For example, 64-bit kernels require running the processor in [long mode](https://en.wikipedia.org/wiki/Long_mode).
|
||||||
|
|
||||||
### Step 2:
|
### Step 2:
|
||||||
...
|
...
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user