flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > How do I create a OS with assembly? |
| Author |
|
|
Loganvd 04 Jul 2026, 22:54
How do I create a OS with assembly? I'm new to fasm, don't know how to make OSes with it yet.
|
|||
|
|
Core i7 05 Jul 2026, 09:08
If you're a beginner, start with something simpler.
|
|||
|
|
IsaacZ 08 Jul 2026, 20:26
I'm also a beginner, but I would recommend first learning how to create a solid bootloader, then get simple hardware information before anything else
|
|||
|
|
sylware 08 Jul 2026, 20:29
IsaacZ wrote: I'm also a beginner, but I would recommend first learning how to create a solid bootloader, then get simple hardware information before anything else Then a choice has to be made: embedded uses static device trees, but PCs use UEFI/ACPI. |
|||
|
|
bzt 09 Jul 2026, 13:09
sylware wrote: Then a choice has to be made: embedded uses static device trees, but PCs use UEFI/ACPI. It's a single C header file, no memory allocation, no dependencies (not even libc), so should be trivial to port to Assembly (sorry about that, I've used C because I wanted it to be portable). It handles about 99% of all DSDT I could find (including real machines) and actual RaspberryPi DTBs as well. It does not execute AML on-the-fly for security reasons, only interprets it to parse the hardware resources. You can also find the full AML and FDT specifications in the repo if you want to implement these in Assembly from ground up. |
|||
|
|
sylware 10 Jul 2026, 10:14
You must run some ACPI byte code if you want the hardware properly initialized, or even some hardware configuration element can only be done with running that byte code.
I remember Linus T. about it, "designed by monkeys high on LSD". Well, this summerize the state of hardware/software nowadays. |
|||
|
|
bzt 10 Jul 2026, 12:45
sylware wrote: You must run some ACPI byte code if you want the hardware properly initialized, or even some hardware configuration element can only be done with running that byte code. Even if everything were shiny, you usually still can't run the provided bytecode because lots of machine's AML is buggy like hell. (On a side note, I guess the armada of buggy factory default AMLs is the main reason why the device drivers implement the required logic anyway, imho). sylware wrote: I remember Linus T. about it, "designed by monkeys high on LSD". sylware wrote: Well, this summerize the state of hardware/software nowadays. |
|||
|
|
Core i7 10 Jul 2026, 14:04
I think ACPI tables are the last thing an OS developer needs, once all the basic functionality is ready. That is, these are small, albeit important, details, such as power management for PNP devices.
During the POST process, any hardware must report its system requirements, and the BIOS stores them in the PCI-Config-Space table. These include the base addresses of devices in memory, their I/O port numbers, and so on, which are required by the system drivers. Many motherboard controllers also have hard-coded memory addresses, such as IO_APIC=0xFEC00000, LAPIC=0xFEE00000, as well as the first 256 CPU ports. All of this facilitates the collection of information about physical devices. |
|||
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2026, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.