From ce5747c0744d46689fb18ad0ce1ef057b4e04bc7 Mon Sep 17 00:00:00 2001 From: sborovic Date: Sun, 11 Feb 2024 17:12:29 +0000 Subject: [PATCH] Update Home --- Home.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Home.md b/Home.md index 887431d..d4a5ec6 100644 --- a/Home.md +++ b/Home.md @@ -6,12 +6,10 @@ A great way to learn something new is to retrace the steps taken by someone who > **Suggested reading**: > [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: * gcc or clang? -* 32-bit or 64-bit? -* bootloader from scratch or use Limine? To-dos: * Choose a git workflow. @@ -30,6 +28,13 @@ Preliminary list of essential software: > **Suggested reading**: > [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 232 memory addresses. For a byte-addressable memory, that equals 232 B = 4*230 B = 4 GiB of physical memory. On the other hand, a 64-bit kernel can provide access to 264 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: ...