The 0bt is a simple linux kernel bootloader written in ️C++ and assembly.
The main purpose of which is to describe the linux kernel boot protocol in action and to learn related low level stuff.
Only x86_64 architecture is supported now.
The following programs and dependencies may be required:
- GNU Binutils
- GNU Make
- GNU GCC
- QEMU
- util-linux for
fdisk,losetupand other utils. - dosfstools for
mkfs.vfatand other tools.
To build 0bt from source code:
$ git clone https://github.com/0xAX/0bt
$ cd 0bt
$ make
The following options can be passed to make:
V=1to enable verbose output during build.DEBUG=1to enable debug mode.DISK_IMAGE=name.imgto change default name of a disk image.DISK_SIZE=4Gto specify image size.USE_FAT32_FS- to load kernel from FAT32 partition.
0bt provides other targets besides the all target. For other options see the output of:
make help
TODO
The source code of the 0bt is under Apache License 2.0 license.
See COPYING for more details.
The description of how everything works from Documentation is under BY-NC-SA Creative Commons license.
Feel free to send a pull request if you found something wrong or you have any ideas.
If you don't know where to start, see TODO.md.
If you have any questions or suggestions, feel free to create new issue or drop me an email.