-1

I have a laptop that runs on a AMD Ryzen 4600H processor with 16G RAM and has an ASUS UEFI out of the box.

I want to write a simple minimal kernel from scratch, in C language for this computer.

The steps that I have explored involve writing a bootloader that is run by the UEFI and the bootloader then places my kernel into the memory where users input commands from the keyboard and get an output on the screen.

But how exactly do I start writing a bootloader, what frameworks are required ?

How do I bring the bootloader actually into action, i.e. how to arrange files and binaries on a bootable usb drive ?

How do I then load the kernel from the bootloader ? Eg. At very initial stage, I am expecting only a "Hello, World" output from the kernel and then wait for user input, store it in a variable and print it back on the screen.

I have tried reading through tianocore EDK2 and GNU-EFI but did not understand how to actually run it on a real Computer/Laptop.

There are many OS development resources out there on the internet but most of them only talk about the BIOS based systems and not modern UEFI. And even if any UEFI tutorial/ article exists, it is ran and tested on some emulator, and not any real hardware/computer/laptop.

I am sure that there will be a lot of assembly code writing for this.

  • 1
    Have a [look at OSDev.org](https://wiki.osdev.org/UEFI#UEFI_vs._legacy_BIOS). An UEFI operating system is far easier to create from scratch than a BIOS system. You do not have to use _Assembler_, you can and probably should use _C_ to create the relevant functions. – zx485 Aug 26 '23 at 17:59
  • This question is far too broad for Stack Overflow. And there is no specific programming question here. Please read [ask] and how to create a [mcve] – David Makogon Aug 27 '23 at 02:58

0 Answers0