mykernel 2.0: 通过重用 Linux 基础架构,基于 x86-64/Linux Kernel 5.4.34 开发自己的操作系统内核。
mykernel 2.0: 通过重用 Linux 基础架构,基于 x86-64/Linux Kernel 5.4.34 开发自己的操作系统内核。
Develop your own OS kernel by reusing Linux infrastructure, based on x86-64/Linux Kernel 5.4.34.
mykernel 1.0 based on IA32/Linux Kernel 3.9.4.
wget https://raw.github.com/mengning/mykernel/master/mykernel-2.0_for_linux-5.4.34.patch
sudo apt install axel
axel -n 20 https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.34.tar.xz
xz -d linux-5.4.34.tar.xz
tar -xvf linux-5.4.34.tar
cd linux-5.4.34
patch -p1 Configure standard kernel features ---> Enable support for printk ---> yes
64-bit kernel ---> yes # 如果不需要64bit支持, 这个也可不要
Device Drivers ---> Character devices ---> Enable TTY ---> yes从qemu窗口中您可以看到my_start_kernel在执行,同时my_timer_handler时钟中断处理程序周期性执行。
进入mykernel目录您可以看到qemu窗口输出的内容的代码mymain.c和myinterrupt.c。当前有一个CPU执行C代码的上下文环境,同时具有中断处理程序的上下文环境,我们通过Linux内核代码模拟了一个具有时钟中断和C代码执行环境的硬件平台。
您只要在mymain.c基础上继续写进程描述PCB和进程链表管理等代码,在myinterrupt.c的基础上完成进程切换代码,一个可运行的小OS kernel就完成了。start to write your own OS kernel, enjoy it!
…under GNU GPL v2, or Contact us
暂无开放 Issues,或尚未同步最近议题。