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
,losetup
and other utils. - dosfstools for
mkfs.vfat
and 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=1
to enable verbose output during build.DEBUG=1
to enable debug mode.DISK_IMAGE=name.img
to change default name of a disk image.DISK_SIZE=4G
to 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.