-
Kernel
-
C/C++/AT&T ASM/cmake/shell
-
Linux-like
-
Multiboot2
SimpleKernel, a simple kernel for learning. Contains the basic functionality of an operating system
Kernels with different levels of completion are available, and you can start from where you like.
-
Ubuntu Linux
- brew
- x86_64-elf-binutils
- x86_64-elf-gcc
- xorriso
- grub
- bochs
- bochs-x
Tested on Ubuntu 20.04
-
Arch Linux
- brew
- x86_64-elf-binutils
- x86_64-elf-gcc
- mtools
- xorriso
- grub
- bochs
Tested on Manjaro 5.6.15-1
-
Mac
-
brew
-
x86_64-elf-binutils
-
x86_64-elf-gcc
-
xorriso
-
grub
-
bochs
Tested on macOS 10.15.7
-
git clone https://github.com/Simple-XX/SimpleKernel.git
cd SimpleKernel/
bash ./run.sh
Screenshot
The whole project according to the functional modules delimited molecular directory, each subdirectory and then divided header file and source file directory, so that the architecture is clear and easy to understand.
-
Principle
The naming of the directory should accurately describe the basic function of the module, it is recommended to use lowercase letters and do not contain underline, dot and other special symbols;
Directories must be placed under the parent directory that they contain, and they need to be explicitly coupled to other directories.
-
Principle
New components are often dependent on existing components of the system, and the components that are directly dependent must be specified with minimal coupling.
-
Principle
Header file naming should accurately describe the contents of the module contained in the file to achieve the purpose of easy to understand.
Each push will be tested using Github Action.
-
git commit:
-
code style
Specified by tools/clang-format
simplekernel.iso: multiboot2 boot
fs.img: file system, unuse
- concurrent
- File system
- drive
See CONTRIBUTING.md.
《程序员的自我修养--链接、装载与库》(俞甲子 石凡 潘爱民)
JamesM's kernel development tutorials
How-to-Make-a-Computer-Operating-System
- digmouse233
- l*e
- fslongjin
Thank you! (Please specify the GitHub id for joining the sponsor list
MIT LICENCE