BareMetal
BareMetal copied to clipboard
A very minimal, resource efficient exo-kernel
- Separate the keyboard and RTC drivers into their own files (instead of just sitting in interrupt.asm) - Move screen functions to a new console driver
Add Virtio network support for running BareMetal in some VMs. http://wiki.libvirt.org/page/Virtio PCI ID is 0x1AF4:0x1000 - http://pci-ids.ucw.cz/read/PC/1af4/1000 Specs: http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf Legacy specs: http://ozlabs.org/~rusty/virtio-spec/virtio-0.9.5.pdf Some example C code: http://dox.ipxe.org/virtio-net_8c_source.html
Add API functions to assign work to each CPU core individually. Not as simple as the work queue but will be handy once NUMA comes into play. Todo: - Remove...
Secure the kernel - Use 4K pages with read-only Crashes in user code must be recoverable
The kernel uses a non-standard way of passing variables to internal functions. The AMD64 ABI should be investigated to see if it is a good fit. From the [AMD64 ABI](http://www.x86-64.org/documentation/abi.pdf):...
First of all, the [NVME code](https://github.com/ReturnInfinity/BareMetal/blob/master/src/drivers/storage/nvme.asm) has been a great help for me to develop my own driver for my toy OS. It's well documented and well written. I did...
The AHCI driver only uses 512B sectors. ID should be checked to see if support for larger sectors is supported. Check bit 12 of word 106 first to see if...
The 10gbit i8259x driver can send packets but receive is currently not working.
Beautifully arranged `b_system_table:` Thank You!
With PS/2 on its way out we should ideally add a USB HID driver. Mass Storage would be handy as well.