Week 2
Date: 9 Feb 2026
Completed the Literature review and strength analysis, finished with the research portion.
Starting the training and development phase of the project from 10 feb 2026
Date: 10 Feb 2026
Installations of all the tools required for this project like Rust, Rust Nightly, Cargo, QEMU, etc
Started with Developer guidelines outlining all the installation methods, tools, and verification methods for the tools
Date: 11 Feb 2026
Finished with the installation of tools and developer guidelines
Need to make a cross compiler gcc, gonna try to use the OSDev wiki approach
Found sources to start the learning process
Started with the presentation for WIP
Date: 12 Feb 2026
First meeting with the supervisor discussed the potential risk that may occur during the development of the project, ranging from learning resources, to language integration, cross compiler gcc, and other challenges.
Further discussion on what was achieved by the research and the literature review, established 3 key points to be addressed by the topic.
Date: 13 Feb 2026
Submitted_ the draft version of the report for feedback on chapters 1-4
finalized some key aspects of the project
- bootloader
- bios boot
- load Stage 2 from disk
- jump to Stage 2
- enable A20
- setup temporary GDT
- switch to Protected Mode
- load kernel from disk into memory
- jump to kernel entry
- kernel
- c (primary), assembly (hardware level control), rust (meory safety)
- gdt
- idt
- isr stubs
- dyscall
- ring 0 and ring 3
- tss
- text driver
- interrupt
- basic error handling
- basic memory handling
- Userspace
- simple program
- unix like commands are also program : help echo, etc.
-
Ring 0 and ring 3 separation Important
-
document everything
- evaluation on the basis of
- lines of assembly, c, rust, unsafe Rust
- runtime behavior (boot time)
- development difficulty comparison
- memory safety comparison
- complexity, learning curve
Things to learn:
- c
- basic syntax
- functions
- header files
- extern
- pointers
- structs
- arrays
- volatile keyword
- basic makefile usage
- c compilation to object files
- and maybe
- File I/O
- malloc/free
- assembly
- Registers (eax, ebx, ecx, edx, esp, ebp)
- mov
- call / ret
- jmp
- push / pop
- cli / sti
- lgdt
- lidt
- int
- iret
- Stack behavior
- Real vs Protected mode
- maybe
- floating
- optimization
refer to the cpu instruction manuals
- for the bootloader
- bios boot process
- boot sector layout
- disk loading via BIOS interrupt 13h
- a20 line
- Switching er0 to protected mode
- for interrupt and syscalls
- pic
- remapping pic
- isr structure
- int instruction
- eor
- for ring 3 and ring 0
- descriptor privilege level
- cpl
- rpl
- tss structure
- stack switching on privilege change
- iret behavior when changing rings
- rust
- basic rust syntax
- ownership
- borrowing
- #![no_std]
- extern “C”
- #[no_mangle]
- unsafe blocks
- final build and link
- what object files are
- what linker script does
- memory sections (.text, .data, .bss)
- entry point symbol
what to do of the cross compiler gcc
- try to find pre existing solutions that can work (did not find the page doesn’t exist anymore)
- build using binutils and gcc (seems the more likely option)
- the tutorials say download a bunch of things but don’t explain why should i download it
- it is a bit intimidating
- only reliable process seems to be the one hiligted in the OSDev wiki