OS/Linux
sinzou1
这个作者很懒,什么都没留下…
展开
-
《自己动手写操作系统》开发环境的安装
最近一直在用windows,为了配置环境又装了Xp。环境配置:Virtual PC 5.2+MSodc6.22工具:windows下的NASM(nasm-0.99.04-win)和随书光盘中一些工具说明:Virtual PC 5.2汉化版是最好的选择,Virtual 2007可以装dos,但是却不能共享文件夹,《自己动手写操作系统》中作者的平台是virtual pc 5.01.安装Virtual PC 5.2vpc 5.2 完整名称叫Connectix Virtual PC 5.2,后来被microsoft转载 2010-09-12 21:37:00 · 681 阅读 · 0 评论 -
地址转换、内存地址扩展方向
<br />虚拟地址、线性地址、物理地址 <br /> 保护模式下,虚拟存储器由大小可变的存储块组成,这样的块称为段。描述附表用来描述段的位置、大小和使用情况。这些地址的集合称为虚拟地址空间。程序使用的都是虚拟地址空间,每一个任务有一个虚拟地址空间。为避免多个并行任务的多个虚拟地址空间直接映射到同一物理地址空间,采用线性地址空间隔离虚拟地址空间和物理地址空间。线性地址空间由一维的线性地址构成,线性地址空间和物理地址空间对等。分段管理机制实现虚拟地址空间到线性地址空间的映射。分页管理机制把原创 2010-10-16 00:20:00 · 1881 阅读 · 0 评论 -
中断和异常
<br /> 在保护模式下,中断机制发生了很大的变化,原来的中断向量表已经被IDT所代替,实模式下使用的BIOS中断在保护模式下已经不能用了。联系调用门,中断门和调用门的作用机理其实是一样的,只不过使用调用门时使用call指令,而这里我们使用int 指令。<br /> 中断,又处理其外部的事件引起,比如外设请求,软件通过执行int指令等。异常,则通常是在处理器执行指令的过程中检测到错误引起的。中断和异常不可以简单的按照硬件或者软件,引起他们的源进行划分,可以理解为,中段和异常没有严格的界原创 2010-10-18 14:33:00 · 520 阅读 · 0 评论 -
控制转移(三)——调用门转移流程
<br /> <br />从两个方向看门调用的流程,理解门调用。<br /> <br />原创 2010-10-15 18:32:00 · 613 阅读 · 0 评论 -
ELF文件结构
<br />Linux可执行文件为ELF格式,ELF格式文件主要分为以下几类:<br />1. 可重定位文件(Relocatable File),这类文件包含了代码和数据,可以被用来链接成可执行文件或共享目标文件,静态链接库也可以归为这一类,如.o文件。<br />2. 可执行文件(Executable File),这类文件包含了直接执行的程序,如/bin/bash等。<br />3. 共享目标文件(Shared Object File),链接器可以使用这种文件跟其他的可重定位文件和共享目标文件链接,转载 2010-10-20 09:31:00 · 748 阅读 · 0 评论 -
描述符归类总结
存储段描述符与系统段描述符结构完全相同,区别的标志是属性字节中的描述符类型位DT的值。DT=1表示存储段,DT=0表示系统段。 存储段描述符中,TYPE字段说明存储段描述符所描述的存储段具体属性。此字节共占4位,涵义丰富。其中位3指示所描述的段是代码段还是数据段(应该是广义的,包含堆栈段等)。用符号E标示,E=0标示段是不可执行的,即数据段;E=1标示段是可执行的,即代码段。 数据段描述符中具体的位又标示了是否可写等属性。 代码段描述符中具体的位又标示了是否可读等属原创 2010-10-18 16:03:00 · 687 阅读 · 0 评论 -
系统启动过程简介
什么是BIOS?<br />BIOS:basic inout/output system基本输入输出系统.它是固化在ROM上的一段程序,但电脑电源打开的时候,BIOS是第一个被执行的程序。其他的程序都必须先加载到RAM才能运行。认识BIOS首先要知道几个名词:北桥,南桥,FLASH Memory,CMOS,SMBIOS 南北桥:主板芯片组,北桥主要控制着CPU和内存;南桥:负责PCI,PCI-E,USB,VGA等外围设备。南桥里面有一个特殊的区块,即负责存储CMOS的空白区域,是用来让BIOS存储用户设转载 2010-10-19 18:03:00 · 1474 阅读 · 0 评论 -
.COM文件
<br /> COM文件是一种可执行程序的内存映像文件,它与只有16位地址线的8位机上的CP/II操作系统下的可执行程序结构相似。在COM程序执行过程中,除了调用DOS功能和ROM BIOS功能,以及用户特意安排外,段寄存器一般都不发生变化。四个段寄存器具有相同的内容,指向PSP(DOS利用PSP来和被加载的程序进行通信),因此程序的大小仍限于64K以内。COM文件的入口地址必须是100H,而EXE文件可以有多个段。其中CS和SS以及IP和SP在程序装入时由DOS根据文件头中的信息初始化,ES和D原创 2010-10-20 11:32:00 · 1323 阅读 · 0 评论 -
文件系统
看内核,对根文件系统的理解比较模糊,网上找了下,有一篇讨论的很好,解释本质。主要回答:文件系统是什么,根文件系统又是什么,根文件系统与内核的关系。现总结如下。1楼: 文件系统是数据保存到设备上所使用的一种组织结构或格式。也可以说是操作系统访问外部设备数据所约定的一种通用访问接口格式。 所涉及的设备可以是普通的块设备,也可以是其他形式的虚拟设备。例如位于内存中的虚拟磁盘、网络设备等。 根文件系统是Linux(或者说是UNIX类)操作系统运行时所需要的特有文件系统。该文件系统不仅原创 2010-11-02 19:11:00 · 538 阅读 · 0 评论 -
ubutun10.04安装boch-2.4.5
<br />获取 bochs-2.4.5.tar.gz 安装包,同样可以从 www.bochs.sourceforget.net 上得到。<br /> <br />1. sudo apt-get install build-essential<br />2. sudo aptitude install xorg-dev<br />3. sudo aptitude install libgtk2.0-dev<br />4. tar vxzf bochs-2.4.5.tar.gz<br />5. cd转载 2011-03-14 16:36:00 · 1012 阅读 · 0 评论 -
任务状态段和门
<br /> 每一个任务(可以理解为进程)都有一个任务状态段TSS,用于保存任务的有关信息,在任务内变换特权级和任务切换时要用到这些信息。<br /> 系统段是为实现存储管理机制所使用的一种特别的段。在80386中,有两种系统段:任务状态段TSS和局部描述附表LDT段(注意:全局描述附表GDT不属于状态段)。不光在高级语言应用或者说用户应用程序编程中用到了数据结构,个人觉得在CPU硬件的支持下,系统编程也是把数据结构发挥的淋漓尽致,甚至CPU硬件支持本身就充分体现了结构化,或者说数据结构原创 2010-10-14 14:08:00 · 1450 阅读 · 0 评论 -
控制转移(二)
<br /> 特权级转移这块一直觉得很混乱,理不出头绪,现在终于发现问题在哪了:不要将特权级和代码段、数据段、堆栈段搅在一块。代码段、数据段、堆栈段他们各自有自己的特权级处理规则。在学习的过程中还要有意识的提醒自己这种规则是哪种类型段的规则。三种类型的段相互配合才能组成一段可以运行的程序。既然三种类型之间的段有联系,三种类型段的特权级处理方式也会有自己的联系和区别。在学习中有意识的提醒自己正在阅读的规则是属于哪种类型的段的,就能很好的理解他们之间的联系和区别,从而使学习事半功倍。<br />原创 2010-10-14 16:50:00 · 580 阅读 · 0 评论 -
控制转移(一)
控制转移基本可以分为两大类:同一任务内的转移和任务间的转移(任务切换)。同一任务内的转移又分为:段间转移、特权级不变的段间转移、特权级变换的段间转移。段内转移与实模式下相似,不涉及特权级变换和任务切换。只有段间转移才涉及特权级变换和任务切换。段间转移指令 与是模式下一样,指令JMP、CALL和RET都具有段间转移的功能,指令INT和IRET总是段间转移。此外,中断、异常也将引起 段间转移。与实模式下相似,段间转移指令JMP和段间调用指令CALL还可以分为段间直接转移和段间间接转移两类。原创 2010-10-14 16:25:00 · 1185 阅读 · 0 评论 -
POSIX--操作系统标准
<br /><br />术语解释:POSIX是Portable Operation System Interface of Unix的缩写。由IEEE(Institute of Electrical and Electronic Engineering)开发,由ANSI和ISO标准化。<br />由来:POSIX的诞生和Unix的发展是密不可分的,Unix于70年代诞生于Bell lab,并于80年代向美各大高校分发V7版的源码以做研究。UC Berkeley在V7的基础上开发了BSD Unix。后来很多商转载 2010-09-19 22:46:00 · 2002 阅读 · 0 评论 -
内存分页
<br /> 页式非连续分配方式。其出发点打破了程序装入的整体性和存储分配的连续性允许进程逻辑地址空间不必分布在内存的一段连续空间中,而是可以分布在若干非连续的内存块中。即内存分配时,以页为单位,并按用户进程包含的页数多少进行分配,逻辑上相邻的页面在内存中不一定相邻,即用户进程不一定要分配连续的物理内存块。每一个进程就需要页表对其进行管理。当进程要访问某个逻辑地址中的数据时,启动地址变换机制。地址变换机制首先将逻辑地址分为两部分:页号P和页内偏移量W,用页号P与页表长度寄存器的内容进行比较。<br原创 2010-09-20 22:22:00 · 4207 阅读 · 0 评论 -
Bochs、虚拟软盘与BootLoader
<br />自己动手写操作系统--"Hello, OS world!"<br /> 作者:zieckey(zieckey@yahoo.com.cn)<br />1、开发环境与工具<br />开发环境:winxp+sp2<br />必须安装Bochs-2.3,nasm,UltraEdit.<br />下载nasm后,添加nasm所在目录到到path目录,建议直接将nasm放到windows或system32目录,方便从命令行调用.<br />下载地址:http://source转载 2010-09-25 18:57:00 · 5018 阅读 · 2 评论 -
Linux(ubuntu)安装bochs
一、准备工作<br />bochs是由C++编写的,我们要安装相应的编译环境<br />sudo apt-get install build-essential<br />如果要图形界面,<br />sudo apt-get install xorg-dev<br />安装bison,<br />sudo apt-get install bison<br />到bochs官方网站下载源码包bochs-2.3.7.tar.gz<br />tar xvfz bochs-2.3.7.tar.gz解压产生文件夹bo转载 2010-09-24 23:53:00 · 2411 阅读 · 0 评论 -
ubuntu安装程序目录
<br />一般的deb包(包括新立得或者apt-get下载的)都在/usr/share。自己下载的压缩包或者编译的包,有些可以选择安装目录,一般放在/usr/local/,也有在/opt的。<br /><br />另参见apt使用参考: <br />apt-cache search # ------(package 搜索包) <br />apt-cache show #------(package 获取包的相关信息,如说明、大小、版本等) <br />sudo apt-get instal转载 2010-09-25 17:05:00 · 1471 阅读 · 0 评论 -
计算机启动流程解析
<br /> 首先简要梳理一下计算机开机的流程:<br />1:开机加电,CPU工作在16位实模式下;<br />2:CPU按照实模式下的内存寻址方式从段地址(FFFF):偏移地址(0000)处开始执行指令;<br />3:FFFF0H处是BOIS的第一条指令,是一条跳转指令,指向BIOS真正的代码处;<br />4:BIOS代码从高字节到低字节依次是POST硬件自检、显卡初始化、CPU、内存、硬盘等标准硬件的初始化、加载引导扇区; <br />4.1:POST硬件自检主要包括检测关键设备如内存显卡等是否存转载 2010-10-11 08:41:00 · 462 阅读 · 0 评论 -
认识BIOS
<br />计算机用户在使用计算机的过程中,都会接触到BIOS,它在计算机系统中起着非常重要的作用;而计算机底层开发人员,尤其是操作系统和虚拟机的开发人员更是要非常了解BIOS,本文将详细介绍一下BIOS这个家伙。<br /> BIOS,是计算机的基本输入输出系统(Basic Input System),它也是一个应用程序,只不过它是工作在操作系统层之下,硬件层之上的程序罢了,程序的代码被烧制集成在计算机主板上的一个ROM芯片上。它负责为操作系统提供最直接的硬件控制。<br /> 下面我来转载 2010-10-11 08:42:00 · 483 阅读 · 0 评论 -
漫谈如何学习操作系统原理
<br />很老的一片文章,写的真是太好了。<br />学习操作系统一段时间了,很难找到全面专注的讲解底层的书籍或资料。这一段时间里,都是从微机原理、操作系统、汇编语言相关书籍里面找自己需要的东西,很是麻烦,就很纳闷为什么没有专门讲解这些内容的著作。曾经意识到INTEL官网去查看他的CPU文档,考虑到可能会讲解硬件细节,就作罢了。再者,无论在学习中还是现实生活中,都追求去掉表面浮华看本质。这篇文章对操作系统学习方式的见解,质朴而智慧。 <br /> <br /> <br />本人学习计算机技术至今,对于如何转载 2010-10-11 14:27:00 · 572 阅读 · 0 评论 -
字符编码的故事(ASCII,ANSI,Unicode,Utf-8)
<br />一直对字符的各种编码方式懵懵懂懂,什么ANSI、UNICODE、UTF-8、GB2312、GBK、DBCS、UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们。Let's go!<br /> <br /> 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。 <br /> 再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多转载 2010-10-11 08:37:00 · 556 阅读 · 0 评论 -
ubuntu linux下安装和使用PPS
先下载 pps for linux下载地址:http://download.ppstream.com/ppstream_1.0.0-1_i386.deb1. sudo apt-get install libqt4-core libqt4-dbus libqt4-gui libqt4-network libqt4-webkit libqt4-xml libfuse2 mplayer2. sudo dpkg -i ppstream_1.0.0-1_i386.deb (安装刚才下载到的.deb包。也可双击直接转载 2011-03-14 21:13:00 · 1187 阅读 · 0 评论