# frugalOS - bare metal implementation

This first implementation will be focused on running existent C components on top of the minimal kernel.
The main goal is to have an idea about the usability of Oberon with components written in another languages (C and Assembly). 

## Kernel

An multiboot compliant kernel example. This is an example for building bare metal applications.

Requirements:
- Oberon-07 compiler with linux32o support (compilerX)
- ld linker
- make
- fasm (https://flatassembler.net/)
- qemu
- ISO build:
	grub-mkrescue and xorriso

Building:
- Use "make run" for running on qemu (text mode).
- Optionally, you can build an ISO using "make iso" (graphical mode).

Usage:
- Use "make run" or "make run-iso" for running on qemu.
- Or use the generated ISO to boot on real hardware/qemu.


## References

1. [Multiboot specification](https://www.gnu.org/software/grub/manual/multiboot/multiboot.html)
2. [pcboot](https://github.com/jtsiomb/pcboot)
3. [Grub bootable disk](https://lukeluo.blogspot.com/2013/06/grub-how-to-2-make-boot-able-iso-with.html)
4. [ODDev Demo](https://github.com/JohnBurger/OSDev-Demo)
5. [Baremetal examples](https://github.com/cirosantilli/x86-bare-metal-examples)
