# mykernel **Repository Path**: lineaar/mykernel ## Basic Information - **Project Name**: mykernel - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-06-18 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Welcome to the mykernel! It is a platform to write your own OS kernel,its based on Linux Kernel 3.9.4 source code. + Set up this platform + sudo apt-get install qemu # install QEMU + sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu + wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.4.tar.xz # download [Linux Kernel 3.9.4 source code](https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.4.tar.xz) + wget https://raw.github.com/mengning/mykernel/master/mykernel_for_linux3.9.4sc.patch # download [mykernel_for_linux3.9.4sc.patch](https://raw.github.com/mengning/mykernel/master/mykernel_for_linux3.9.4sc.patch) + xz -d linux-3.9.4.tar.xz + tar -xvf linux-3.9.4.tar + cd linux-3.9.4 + patch -p1 < ../mykernel_for_linux3.9.4sc.patch + make allnoconfig + make + qemu -kernel arch/x86/boot/bzImage 从qemu窗口中您可以看到my_start_kernel在执行,同时my_timer_handler时钟中断处理程序周期性执行。 + cd mykernel 您可以看到qemu窗口输出的内容的代码mymain.c和myinterrupt.c + 当前有一个CPU执行C代码的上下文环境,同时具有中断处理程序的上下文环境,我们初始化好了系统环境。 + 您只要在mymain.c基础上继续写进程描述PCB和进程链表管理等代码,在myinterrupt.c的基础上完成进程切换代码,一个可运行的小OS kernel就完成了。 + start to write your own OS kernel,enjoy it! + mykernel patch generated by this command: + diff -Naur linux-3.9.4 linux-3.9.4.new/ > mykernel_for_linux3.9.4sc.patch # Comments * mykernel这样一个短小精悍的模拟内核,时常给我提供了看问题的角度和思路。当被庞杂的Linux内核代码弄得一头雾水时,我就去看看mykernel,很多复杂的问题就可以用简单的机制解释。——[pianogirl](http://blog.csdn.net/pianogirl123/article/details/51287024) # Links * [2013年暑期补课计算机操作系统原理](https://github.com/mengning/mykernel/wiki/OS2013) * 和mykernel类似的项目[kernel-in-kernel](https://github.com/jserv/kernel-in-kernel)值得参考