这本讲内核编写的书挺不错的,从空的裸盘一步步到一个带shell的小操作系统,完成之后颇有收获,但我看到最后发现作者遗漏了一个关键的部分:内核保护,即不能允许用户进程随意读写内核。这个漏洞需要补上。
将loader.S中高1G区域,即内核空间的页表权限设为内核级,那么用户进程就无法访问内核了,但是按照作者的进程写法,这样简单修改后init进程是无法启动的,为了操作系统的正常运行还需要修改很多其他地方。
修改基于示例代码c15/g。
Read More »这本讲内核编写的书挺不错的,从空的裸盘一步步到一个带shell的小操作系统,完成之后颇有收获,但我看到最后发现作者遗漏了一个关键的部分:内核保护,即不能允许用户进程随意读写内核。这个漏洞需要补上。
将loader.S中高1G区域,即内核空间的页表权限设为内核级,那么用户进程就无法访问内核了,但是按照作者的进程写法,这样简单修改后init进程是无法启动的,为了操作系统的正常运行还需要修改很多其他地方。
修改基于示例代码c15/g。
Read More »