Skip to content

Latest commit

 

History

History
203 lines (116 loc) · 4.86 KB

README_en.md

File metadata and controls

203 lines (116 loc) · 4.86 KB

github ci last-commit languages MIT License LICENSE 996.icu

English | 中文

SimpleKernel

Key Words

  • Kernel

  • C/C++/AT&T ASM/cmake/shell

  • Linux-like

  • Multiboot2

Abstract

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.

Environment

  • 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

RUN

git clone https://github.com/Simple-XX/SimpleKernel.git
cd SimpleKernel/
bash ./run.sh

Screenshot

Directory Structure

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.

Directory Design

  • 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.

Dependencies

  • 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.

Header File

Naming

  • Principle

    Header file naming should accurately describe the contents of the module contained in the file to achieve the purpose of easy to understand.

CMake

Test

CI

Each push will be tested using Github Action.

Code Style

Image Files

simplekernel.iso: multiboot2 boot

fs.img: file system, unuse

TODO

  • concurrent
  • File system
  • drive

CONTRIBUTORS

MRNIU

cy295957410

rakino

xiaoerlaigeid

CONTRIBUTING

See CONTRIBUTING.md.

Thanks

osdev

GRUB 在 Mac 上的安装

multiboot

《程序员的自我修养--链接、装载与库》(俞甲子 石凡 潘爱民)

JamesM's kernel development tutorials

xOS

hurlex

howerj/os

cfenollosa/os-tutorial

omarrx024/xos

PurpleBooth/project-title

0xAX weblong

How-to-Make-a-Computer-Operating-System

coding-style

DNKernel

c-algorithms

Linux内核中的中断栈与内核栈的补充说明

Linux进程管理 (1)进程的诞生

SynestiaOS

Donors

Donate

Thank you! (Please specify the GitHub id for joining the sponsor list

CopyRight

MIT LICENCE