From 759f61c47839e4f0e2b2c0fc7330fa5888c0fc0f Mon Sep 17 00:00:00 2001 From: sborovic Date: Thu, 15 Feb 2024 17:10:26 +0000 Subject: [PATCH] Update Home --- Home.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/Home.md b/Home.md index 3d086a4..a814054 100644 --- a/Home.md +++ b/Home.md @@ -6,7 +6,7 @@ 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. 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 more information, please refer to [this section](https://gitea.dmz.rs/sborovic/dmzOS#development-environment) of README. ***Which compiler to use, gcc or clang?*** * Compilation times are comparable @@ -18,16 +18,6 @@ To safeguard against dependency hell, all the essential software needed to devel Decision: TL;DR - *GCC*. They have many differences, above are the potentially most relevant. The GPL license seems preferable in this case, which is a point in favor of GCC. A major performance consideration comes when there are a lot of lib files as well as `-debug` mode (which is expected to be the case in this project). This difference will come down to the linker, and seeing as `lld` can be a drop-in replacement for `ld`, and added independently of Clang, it is not a major point in favor of Clang. We can simply install `lld` from the LLVM backend (Clang is just the frontend), and pass the `-fuse-ld=lld` flag to GCC to make it use `lld` instead of `ld`. For these reasons, I propose to start with GCC. - -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**: