{"id":15060102,"url":"https://github.com/mtrzc0/bootldr","last_synced_at":"2026-01-30T04:22:19.667Z","repository":{"id":250848140,"uuid":"830936293","full_name":"mtrzc0/bootldr","owner":"mtrzc0","description":"Unix-family, multiboot compliant bootloader","archived":false,"fork":false,"pushed_at":"2024-09-28T12:19:54.000Z","size":233,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T07:03:57.567Z","etag":null,"topics":["assembly","bootloader","i386","linux","unix","x86-64"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mtrzc0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-19T09:55:04.000Z","updated_at":"2024-09-29T20:58:54.000Z","dependencies_parsed_at":null,"dependency_job_id":"2260d713-af27-41f1-a196-f773f8a03e3b","html_url":"https://github.com/mtrzc0/bootldr","commit_stats":null,"previous_names":["mefjak000/bootldr","mtrzc0/bootldr"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtrzc0%2Fbootldr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtrzc0%2Fbootldr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtrzc0%2Fbootldr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtrzc0%2Fbootldr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtrzc0","download_url":"https://codeload.github.com/mtrzc0/bootldr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166881,"owners_count":21058479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembly","bootloader","i386","linux","unix","x86-64"],"created_at":"2024-09-24T22:52:48.077Z","updated_at":"2026-01-30T04:22:14.645Z","avatar_url":"https://github.com/mtrzc0.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bootldr Project\n\nThis project focuses on understanding how bootloaders work. It includes various stages and components to load an operating system.\n\u003e [!WARNING]\n\u003e \n\u003e This project is a work in progress and is not yet complete. It is not recommended for production use.\n\n## Core Components\n\n- **OS Loader**: Loads the operating system (Unix family).\n- **GUI**: Graphical user interface.\n- **Config**: Configuration files and settings.\n\n\n## Installation\n\nCurrently, there is no installation process available.\n\n## Build Instructions\n\n### Prerequisites\n\n- `nasm` (Netwide Assembler)\n- `ld` (GNU Linker)\n- `gcc` (GNU Compiler Collection)\n- `make` (GNU Make)\n- `clang` (LLVM Compiler)\n- `qemu` (for running the bootloader)\n\n### Building the Bootloader\n\nTo build the bootloader, run the following command:\n\n```sh\nmake\n```\n\nThis will generate the bootloader binary in the `build` directory.\n\n### Build ELF file for Debugging\n\nTo build the ELF file for debugging, run:\n\n```sh\nmake debug\n```\n\n### Running the Bootloader in QEMU\n\nTO run the bootloader in QEMU, run:\n\n```sh\nmake run DEBUG=false\n```\n\nTO run the bootloader in QEMU with debugging enabled, run:\n\n```sh\nmake run DEBUG=true\n```\n\n### Cleaning the Build\n\nTo clean the build directory, run:\n\n```sh\nmake clean\n```\n\n## To-Do List\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand\u003c/summary\u003e\n\n- [x] Place the code in MBR (first sector of the disk)\n- [x] Setup 16-bit segment registers and stack\n- [x] Print startup message\n- [x] Enable and confirm enabled A20 line\n- [x] Load GDTR\n- [x] Setup GDT\n- [x] Enable 32-bit Protected Mode\n- [x] Call second stage C code\n- [ ] Support GNU Multiboot\n- [ ] Check presence of PCI, CPUID, MSRs\n- [ ] Inform BIOS of target processor mode\n- [ ] Get memory map from BIOS\n- [ ] Locate kernel in filesystem\n- [ ] Allocate memory to load kernel image\n- [ ] Load kernel image into buffer\n- [ ] Enable graphics mode\n- [ ] Check kernel image ELF headers\n- [ ] Allocate and map memory for kernel segments\n- [ ] Setup COM serial output port\n- [ ] Setup IDT\n- [ ] Disable PIC\n- [ ] Check presence of CPU features (NX, SMEP, x87, PCID, global pages, TCE, WP, MMX, SSE, SYSCALL), and enable them\n- [ ] Assign a PAT to write combining\n- [ ] Setup FS/GS base\n- [ ] Load IDTR\n- [ ] Enable APIC and setup using information in ACPI tables\n- [ ] Setup TSS\n\n\u003c/details\u003e\n\n## Contribution\n\nContributions are welcome! Please fork the repository and submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtrzc0%2Fbootldr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtrzc0%2Fbootldr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtrzc0%2Fbootldr/lists"}