操作系统学习笔记(1)

操作系统学习笔记(1)

第一章   文件系统

A.硬盘知识导引
说起文件系统,我们从硬盘的数据结构开始。其中涉及到汇编知识,引导型病毒示例,数据恢复和C语言读写硬盘扇区内容。需要使用的实践系统环境为DOS实模式,工具为borland c++ 3.1或者TC2.0。
在说到工具和环境的时候,好多人都说DOS和TC,BC3.1都被时代淘汰了吧。我个人对这种现象有一点自己的看法。大家都知道现代操作系统为了安全把自己武装的像防蜂人一样,但是一旦一只蜜蜂突破了防线,这种武装却苦不堪言,相反却成了桎梏。当某一天你的硬盘遭受了数据消失的灾难,或者你的硬盘由于某种原因不转了,这些“老掉牙”的系统或者工具可能对你的数据恢复有所帮助。那么通过本系列专题你可以了解到怎样在我们恐惧的黑屏窗口下对我们丢失的数据进行恢复的尝试。有信心学好的同志,我也鼓励你现在就把自己的重要文件删掉,看一看学完数据恢复以后是不是能把删掉的文件进行恢复。^_^
对于柱面,磁头,扇区这些基本概念大家都能理解吧,不理解的可以留言,我再个别解释。
对于现代硬盘的数据结构,主要分为6部分,主引导记录,主分区表和分区表链,分区引导记录,文件分配表,文件目录表以及数据区。
先说主引导分区(MBR),位置为0柱面0磁道1扇区,该扇区的512个字节有3部分内容,主引导记录,分区表和结束标志55AA。
现在根据它的这种结构来说下硬盘在计算机系统中是如何启动的:


1.BIOS自检;


2.将磁盘的第一扇区(0柱面0磁道1扇区)读入内存。


3.检查结束标志,也就是扇区的最后两个字节的值是否等于aa55H,如不等屏幕打印然后关机。


4.执行主引导记录中的程序,将控制权交给主引导程序。


5.主引导程序首先将自己读入内存,然后查找分区表中是否有活动分区,找到活动分区以后,将分区引导记录读入内存。


6.检查结束标志,是否等于aa55h,如果等于执行分区引导记录的启动程序,将控制权交给操作系统。


7.操作系统加载系统文件,计算机启动。


我强烈建议你根据这个过程画一张图来理解下。其中涉及到主引导程序,我这里就以grub为例,来说下有关grub的一些应用和小知识。由于是知识串讲,我们不急,虽然数据恢复技术的确让人着迷,但是耐心也是很重要的。


grub引导程序相信熟悉linux的同志都很喜欢,功能强大,界面干净。我根据grub引导操作系统的一些细节来帮大家理解下硬盘的启动过程。


首先在windows下将linux系统删掉,重起操作系统。系统重起后光标停止在grub界面不再前进,那么此刻硬盘的启动已经经历了bios自检,第一扇区读入内存和检查结束标志以及控制权交接(我们要学会诊断启动故障),但是由于我们把linux系统删掉了,grub找不到存在于linux系统下的grub.conf配置文件,那么光标就停止在启动界面。根据硬盘的启动过程判断,这时候还有一种不能启动的原因就是没有活动分区,这个问题我们将在后面进行讨论。grub.conf文件一般存放在 /boot/grub目录下,想查看其内容需要root权限,使用如下命令可以查看其内容 cat /boot/grub/grub.conf 。关于一些grub的命令我就不在这里重复了,有兴趣的同志可以到网上查找下相关的grub专题,其中比较好玩的就是给grub加密码,也可以加md5 的,但慎用哈,出了问题我不负责任,呵呵。其次就是用grub引导安装linux系统。删除linux系统无法进入windows操作系统,可使用以下命令:


1。rootnoverify (hd0,0)


2.chainloader  +1


3.boot


根据grub的引导过程,我们也可以大致揣摩它的一些程序结构,有兴趣的同志可以参看一下源代码,它的功能远不仅仅于引导。
主引导记录扇区所在的磁道,通常称为0磁道,属于隐藏磁道。63个扇区都属于隐藏扇区,这里操作系统的命令除了fdisk以外,都不可访问。即使格式化命令format也不可以。所以一些病毒代码,操作系统引导代码,应用软件自我保护识别标记,BIOS功能扩展程序代码都喜欢在这里藏身。

你可能感兴趣的:(操作系统学习笔记(1))