
Kernel Development
文章平均质量分 64
bokee
I'm writing a toy os and my current goal is to resemble, simplify and understand the linux kernel.
展开
-
自己动手实现操作系统引导程序(OS bootloader)——借助QEMU/GDB/losetup/dd等工具
引导程序可以认为是PC加电启动后运行的第一段代码,它是一段长度为512字节的16位运行于实模式的代码。事实上,机器启动后会首先运行0xFFFF0处(也有的资料说是0xFFFFFFF0,BIOS这块我也不熟:-( )ROM中的BIOS代码,之后会跳转到0x07C00处执行引导程序。原创 2011-10-05 15:13:11 · 9819 阅读 · 4 评论 -
Memory Consistency Model for Shared-Memory Multiprocessors学习笔记(一)
最近纠结与linux kernel中关于memory barrier的语义和使用方法。遂进行深入阅读研究,所思所得记录如下。一,Sequential Consistency Model 对于程序员来说,在SMP系统中编程,最直观的内存一致性模型就是Sequential Consistency (SC,其实内存一致性模式可以扩展为分布式系统中的一致性模型)。因为它跟UP原创 2011-10-11 21:48:27 · 2014 阅读 · 0 评论 -
Linux kernel boot process——从实模式(real mode)到保护模式(protected mode),再到分页(paging)
本文简要介绍X86-32架构下的Linux kernel被boot loader(如grub)加载到内存后,如何从最初的实模式,切换到保护模式,并开启分页机制。本文不涉及boot loader如何将内核加载到内存,因为这是boot loader的事,跟内核自己无关(当然他们之间一定要有种事先约定的协议来沟通)。因为启动代码并不经常变化,所以对这部分的分析基本适用于较早的2.6.24至现在的3.0.原创 2011-10-24 16:07:47 · 10921 阅读 · 0 评论 -
基于busybox制作自己的root filesystem
1,编译busybox 1)获得busybox-1.19.4源代码,并解压,进入源代码根目录busybox-1.19.4 2)$make O=busybox/build/dir menuconfig 选择编译static版本。取消ubi相关的选项,它会导致编译错误。确定安装目录为./_install 3)make O=busybo原创 2012-04-08 01:28:23 · 3706 阅读 · 1 评论 -
手动安装linux kernel
1,编译内核,略2,将modules安装到指定路径,命令如下 make INSTALL_MOD_PATH=xxx modules_install 安装完毕后,在xxx/lib/modules下会出现新内核的modules目录 yyy。将xxx/lib/modules/yyy目录下两个链接文件删除3,将xxx/lib/modules/yyy拷贝到/boot/lib原创 2012-06-11 19:23:55 · 2422 阅读 · 0 评论