# linux-0.11-imitate **Repository Path**: joshaucp001/linux-0.11-imitate ## Basic Information - **Project Name**: linux-0.11-imitate - **Description**: 彻底解决linux 0.11无法在最新编译环境下不可编译的问题,不需要自作专门编译环境,使用的所有编译工具都可取最新,为研究linux源码的同学提供便利,为学习linux内核提供条件。 - **Primary Language**: C - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2024-05-16 - **Last Updated**: 2024-05-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # linux-imitate #### 介绍 本项目并不是一个新的项目而是对linux0.11这一古老系统的改造,改造后的系统编译不再依赖于老的编译环境,使用最新的编译工具即可, 其意义在于为喜欢linux内核,想要学习Linux底层原理的同学提供一个快速入门的环境,项目中的代码我根据重写中出现的问题基本上都作了相应的注释, 大多注释参考了《Linux内核完全注释0.11.pdf》再次感谢赵炯博士,编译过程中可能缺少一些包的情况请自行百度。 #### 软件架构 linux0.11系统架构 #### 安装教程 1. 安装nasm gcc as ld AR工具 2. 安装bochs虚拟机 执行 make 双击bochim.bxrc(记得将里面的属性改成自己的环境属性) #### 使用说明 我在系统中已经带了一个根文件系统hdc-0.11.img,可直接使用,如果想要自己创建根文件系统请参考tty文件中的《clk-ch14-expriment.pdf》 #### 参与贡献 主要参考赵炯博士的《Linux内核完全注释0.11.pdf》 以及网上的一些博客 #### 拓展知识 软盘介绍: 软盘的每个扇区会存储512字节的数据,而且采用双面存储又因为软盘的存储空间为1.44MB,所以可以划分的扇区为1.44MB/512B/2=1440。所以我们得出扇区为1440个,又因为软盘具有80个磁道,所以说每个磁道的扇区数为1440/80=18。 iret会隐含的执行以下指令: popl eip popl cs popl eflag popl esp popl ss gcc 嵌入汇编的限定意义: 'm','v','o' -- 内存单元 'r' -- 任何寄存器 'q' -- 寄存器'eax','ebx','ecx','edx'之一 'i','h' -- 直接操作数 'E','F' -- 浮点数 'g' -- 任意 'a','b','c','d' -- 寄存器'eax','ebx','ecx','edx' 'S','D' --寄存器'esi','edi'