https://github.com/primis/apollo
x86 Kernel Project
https://github.com/primis/apollo
hacktoberfest-accepted kernel x86
Last synced: about 1 year ago
JSON representation
x86 Kernel Project
- Host: GitHub
- URL: https://github.com/primis/apollo
- Owner: primis
- License: mit
- Created: 2013-11-27T03:59:15.000Z (over 12 years ago)
- Default Branch: main
- Last Pushed: 2024-03-17T23:22:49.000Z (over 2 years ago)
- Last Synced: 2025-04-15T16:15:32.264Z (about 1 year ago)
- Topics: hacktoberfest-accepted, kernel, x86
- Language: C
- Homepage: https://kernel.primis.org
- Size: 1.77 MB
- Stars: 32
- Watchers: 3
- Forks: 9
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: docs/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
The Apollo Project
=================
_(C) 2013 - 2024 Primis Computers (Allie Sargente et al)_
Requirements:
--------------------------------------------------
X86 requirements are
* [GNU Make](https://www.gnu.org/software/make/) (Or Compatible)
* [NASM](https://www.nasm.us/), The Netwide Assembler
* [GCC cross compiler](https://wiki.osdev.org/GCC_Cross-Compiler) targeting
i586-elf or i686-elf
* [grub-mkrescue](https://manpages.ubuntu.com/manpages/bionic/man1/grub-mkrescue.1.html)
RPI4 requirements are
* [GNU Make](https://www.gnu.org/software/make/) (Or Compatible)
* [GCC cross compiler](https://wiki.osdev.org/GCC_Cross-Compiler) targeting
i586-elf or i686-elf
* [MTools](https://www.gnu.org/software/mtools/)
Optionally, for customizing builds, any application capable of reading Kconfig
files will work. If on debian based systems, the package `kconfig-frontends`
is suggested.
The kernel is written mostly in ANSI-C, with assembly only being used on arch
specific bringup.
This software is licensed under the MIT License.
(see License)
Supported Architectures:
--------------------------------------------------
- IBM-PC Compatible Pentium+ PC's (x86)
- Raspberry Pi Model 4B (rpi4)
Notable Features to Consider:
--------------------------------------------------
This kernel is in development, and is therefore subject to major changes.
The API is in a state of flux. If developing applications, stick to
functions from the standard c library. All others may be deprecated /
removed without notice.
Running
--------------------------------------------------
All targets generate a bootable apollo.iso file.
This file can be used with a virtual machine, burnt to a flash drive or other
bootable media. Please note that for some targets, the iso file is actually a
generic image file, and should not be burned to a CD (for example, for the rpi4)
Configuration
--------------------------------------------------
Once all the pre-requisites software has been aquired for a specific
archetecture, copy the architecture .config file to `.config` at the root of the
project. The provided configuration files are examples only, and can be
customized by running `make menuconfig` if you have a `kconfig` editor installed
on your machine. Debian provides a package called `kconfig-frontends` that fits
this role. You can also edit the .config file by hand, assuming you know what
kernel compilation options you desire.
Building
--------------------------------------------------
You can build the kernel simply by `make`.
After compilation is done, a file called `apollo.iso` will be generated within
the build directory.
History:
--------------------------------------------------
This kernel descends from several failed kernel projects;
* ScorchOS; by Bob Moss and Allie Sargente. Circa 2010
* Mercury/SaturnOS; by Brandon Cornell and Allie Sargente. Circa 2012
* Apollo Kernel Project; Circa 2009-2011. Allie Sargente.
This kernel takes base code from Bkerndev and James Molloy's Tutorials:
* http://www.osdever.net/bkerndev/Docs/title.htm
* http://www.jamesmolloy.co.uk/tutorial_html/index.html
Greets to the OSDev Community at OSdev.org.