From 92f08e37688e083b41751da3c528bffe288bee07 Mon Sep 17 00:00:00 2001 From: texhno Date: Wed, 14 Feb 2024 02:29:15 +0000 Subject: [PATCH] Update Utility containers --- Utility-containers.md | 47 ------------------------------------------- 1 file changed, 47 deletions(-) diff --git a/Utility-containers.md b/Utility-containers.md index ea5390b..9f13ea6 100644 --- a/Utility-containers.md +++ b/Utility-containers.md @@ -2,53 +2,6 @@ (Add a section for each new utility container, as well as documentation) - - -Preliminary list of essential software: -- QEMU: open-source machine emulator -- gcc: -- gdb: -- make: -- objdump: -- ... - -(ubuntu dockerfile...) - -### Step 1: Make a bootloader that prints 'dmzOS' -> **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. -* The x86_64 architecture has two primary [modes of operation](https://en.wikipedia.org/wiki/X86-64#Operating_modes), each having different sub-modes. A 64-bit and 32-bit kernel require the processor to operate in different modes. - -*Decision*: In order to prevent running into chaos, we will first stick to the steps outlined in [Operating Systems: From 0 to 1][os01], which will result in our developing a 32-bit kernel stub. At that point, we will have necessary information to decide whether it aligns better with our goals to keep the kernel 32-bit or to convert it into a 64-bit version. - -***Intel or AT&T syntax for asm code?*** -* This is simply a matter of personal preference, as both are translated into the same machine code. - -*Decision*: Intel syntax, as it is used both in [AMD][amd64v1] and [Intel][intel64] architecture manuals. -(...) - -### Step 2: -(...) - -## List of command cheatsheets -### Docker -### gcc, gdb, clang-format... -(...) - -## Useful links -### Wiki -* [OSDev Wiki](https://wiki.osdev.org/Expanded_Main_Page): a good way to get acquainted with multiple topics at a high level, though a bit outdated. -### Books -* [Operating Systems: From 0 to 1][os01]: pretty in-depth and with hands-on instructions on how to use many of the tools needed. -* [OpenCSF](https://w3.cs.jmu.edu/kirkpams/OpenCSF/Books/csf/html/index.html): an all-encompassing CS guide with a focus on many important OS-related topics. -### Blogs -* [CPU Land](https://cpu.land/): an avid learner's perspective on the CS fundamentals. ### Repositories * [SerenityOS](https://github.com/SerenityOS/serenity): pay special attention to YouTube channels of major contributors. ### YouTube