diff --git a/Home.md b/Home.md index d4a5ec6..cde7e60 100644 --- a/Home.md +++ b/Home.md @@ -30,11 +30,15 @@ Preliminary list of essential software: A few dilemmas had already emerged before even having started writing any code. -**Should the kernel be 32-bit or 64-bit?** +***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). +* 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 in ### Step 2: ... @@ -58,8 +62,10 @@ A few dilemmas had already emerged before even having started writing any code. ### Official documentation: * [AMD64 Architecture Programmer’s Manual Volume 1: Application Programming][amd64v1] * [AMD64 Architecture Programmer’s Manual Volume 2: System Programming][amd64v2] +* [Intel® 64 and IA-32 Architectures Software Developer Manuals][intel64] [//]: # (Second part of reference-style links) [os01]: https://github.com/tuhdo/os01 [amd64v1]: https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/24592.pdf -[amd64v2]: https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/24593.pdf \ No newline at end of file +[amd64v2]: https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/24593.pdf +[intel64] :https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html#combined \ No newline at end of file