Linux0.11小结】的更多相关文章

第一部分 基础内容 1.操作系统基础     操作系统是计算机硬件系统与用户程序间重要环节,理解操作系统的原理是编写优秀代码的基础.教课书中阐述的操作系统一般由5部分组成. 一个最简单的操作系统,可以不需要文件,不需要网络,只要实现多进程,且进程间也不需要通信,相互独立.那么这样一个简单的OS仅需要两块内容:进程管理.内存管理.这两方面内容是相辅相成,不可分割的,因为现在计算机系统的基本架构仍是指令存储-执行.内存管理很大程度上依赖处理器的硬件支持,而进程管理则是在这个基础上,用软件的方式虚拟化…
前言 Makefile对于从来没有接触过的人来说是相当别扭的(比如我),但它确实又是非常重要的,它描述了一个Image是如何形成的,理解它也许并不能帮我解决实际问题,而且编写Makefile的工作也许根本不需要我们来做,但是,学习它能给我们一个更广阔的视角,说不定就能为某些难题.bug提供解决思路.这篇文章也只是对Makefile的初探,待到对Makefile有更深刻的理解之后,我会对这篇文章进行更新~ Tips 在查看Makefile源码之前最好熟悉gas常用的命令参数 as A B A -a…
上一篇分析了c语言的函数调用栈情况,知道了c语言的函数调用机制后,我们来看一下,linux0.11中起动部分的代码是如何从汇编跳入c语言函数的.在LINUX 0.11中的head.s文件中会看到如下一段代码(linux0.11的启动分析部分会在另一部分中再分析,由于此文仅涉及c与汇编代码的问题,). after_page_tables: pushl $ # These are the parameters to main :-) pushl $ pushl $ pushl $L6 # retur…
这是学习哈工大李治军在mooc课操作系统时做的实验记录.原实验报告在实验楼上.现转移到这里.备以后整理之用. 完整的实验代码见:实验楼代码 一.tss方式的进程切换 Linux0.11中默认使用的是硬件支持的tss切换,系统为每个进程分配一个tss结构用来存储进程的运行信息(上下文环境),然后通过CPU的一个长跳转指令ljmp来实现进程的切换,这种方式易于实现,但一者不便于管理多CPU进程,二者效率不佳,故此次实验要将系统中使用的tss切换方式修改为栈切换方式.而由于CPU管理方式的原因,tr寄…
为什么学习 linux 正如不能依靠美国的 GPS 为我们的导弹指示目标一样,很难想像用运行 windows 的电脑去同美国进行信息战.而朝鲜的网络崩溃,再次警示国人,信息战.网络战离我们并不遥远.linux 的开源,可以按自己的要求进行深度定制,无疑是极佳选择. 为什么是 linux-0.11 现在的 linux-3.18,近千万行代码,即使是 linus,也没有全部看完,更不用说拿来学习了.而 linux-0.11,只有万余行代码,拿来学习,从量上是正好. 进入 linux-3.18/arc…
一个完整可用的操作系统主要由 4 部分组成:硬件.操作系统内核.操作系统服务和用户应用程序,如下图所示: 用户应用程序是指那些字处理程序. Internet 浏览器程序或用户自行编制的各种应用程序: 操作系统服务程序是指那些向用户所提供的服务被看作是操作系统的部分功能的程序. 在 Linux 操作系统上,这些程序包括 X 窗口系统. shell 命令解释系统以及那些内核编程接口等系统程序:操作系统内核程序即是本书所感兴趣的部分,它主要用于对硬件资源的抽象和访问调度. Linux 内核的主要用途就…
http://orbt.blog.163.com/     异常就是控制流中的突变,用来响应处理器状态中的某些变化.当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类事件的操作系统子程序,这张表即中断描述符表IDT.本文将针对Linux0.11代码进行分析和调试,来了解中断机制,主要分析以下三个问题: 1.  中断描述符表的建立. 2.  一般中断的处理过程,以0x3号中断为例. 3.  系统调用的处理过程,以fork系统调用为例. 中…
Linux-0.11内存管理模块是源码中比較难以理解的部分,如今把笔者个人的理解发表 先发Linux-0.11内核内存管理get_free_page()函数分析 有时间再写其它函数或者文件的:) /*  *Author  : DavidLin  *Date    : 2014-11-11pm  *Email   : linpeng1577@163.com or linpeng1577@gmail.com  *world   : the city of SZ, in China  *Ver    …
公布软件包包括内容: bootimage.Z - 具有美国键盘代码的压缩启动映像文件: rootimage.Z - 以1200kB 压缩的根文件系统映像文件: linux-0.11.tar.Z- 内核源码文件: as86.tar.Z - linux bruce evans'二进制运行文件. 是16 位的汇编程序和装入程序: INSTALL-0.11 - 更新过的安装信息文件. 不足之处:不包含有关进程等待队列.虚拟文件系统.TCP/IP网络等方面的一些当前很重要的代码. 文件夹: Linux/文…
从开机加电,到执行main函数之前的过程 好吧,这里应该是有执行3个汇编的文件,但是我不太了解.囧 从main函数,到启动OK(即可以响应用户操作了) 这个步骤做了3件事情: 创建进程0,使之具备在主机中进行运算的能力,2.1 已进程0为母本创建进程1,不仅有运算能力,而且还能以文件的行驶与外设进行数据交互,2.2-2.4 以进程1为母本创建进程2,全面具备进程1的能力和环境,进一步具备支持"人机交互",实现怠速,2.5-2.8 开中断之前的准备工作 复制根设备号和硬盘参数表 物理内存…