易截截图软件、单文件、免安装、纯绿色、仅160KB

LINUX 0.11 分析集锦

    1.bootsect.s       
               本文的目的,在将linux kernel的boot部份做一个介绍,因为笔者觉得很少有这样的
  文章来介绍一个操作系统最最开始的一步----把kernel本身载入至内存中,同时进行一些
  机器相关(machine dependent)的初始化工作,由于linux刚好使用的是大家最熟悉的386,
  486系列PC,所以在说明其程序流程时,也刚好可以对其相关的PC硬体架构做探讨,可以
  说是一举两得。不过,我必须假设读者对于汇编语言及PC最基础的架构,如寄存器,分段,
  分页,中断服务等有大概的认识。
  读者可在linux source code的/boot子目录下找到几个以.S作为副档名的组合语言档,
  本文要说明的即是其中的bootsect.S及setup.S两个档案,及尽量简单地说明其所牵涉的
  相关硬件部份。
  bootsect.S
  这个程序是linux kernel的第一个程序,包括了linux自己的bootstrap程序,但是
  在说明这个程序前,必须先说明一般IBM PC开机时的动作(此处的开机是指"打开PC的电源"):
  一般PC在电源打开时,是由内存中地址FFFF:0000开始执行(这个地址一定在ROMBIOS
  中,ROMBIOS一般是在FE000h到FFFFFh中),而此处的内容则是一个jump指令,jump到另
  一个位于ROMBIOS中的位置,开始执行一系列的动作,包括了检查RAM,keyboard,显示
  器,软硬磁盘等等,这些动作是由系统测试码(system test code)来执行的,随着制作
  BIOS厂商的不同而会有些许差异,但都是大同小异,读者可自行观察自家机器开机时,
  屏幕上所显示的检查讯息。
  紧接着系统测试码之后,控制权会转移给ROM中的启动程序(ROM bootstrap routine),
  这个程序会将磁盘上的零道零扇区读入内存中(这就是一般所谓的bootsect,如果你曾
  接触过电脑病毒,就大概听过它的大名),至于被读到内存的哪里呢?----绝对位置07C0
  :0000(即07C00h处),这是IBM系列PC的特性。而位在linux开机磁盘的bootsect上的正
  是linux的bootsect程序,也就是说,bootsect是第一个被读入内存中并执行的程序。
  现在,我们可以开始来看看到底bootsect做了什么。
  第一步
  首先,bootsect将它"自己"从被ROMBIOS载入的绝对地址0x7C00处搬到0x90000处,
  然后利用一个jmpi(jumpindirec


相关文档:

Linux环境进程间通信(五


文档选项
打印本页
将此页作为电子邮件发送
级别: 初级
郑彦兴 (mlinux@163.com), 国防科大攻读博士学位
2003 年 5 月 01 日
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共 ......

Linux下的C语言开发初学者指南

一、工具的使用
1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑具,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。vim有一个中文在线手册http://vcd.gro.clinux.org。
2、学会makefile文件的编写规则,并结合使用工具aclocal、autoc ......

Linux 时间同步配置


一. 使用 Network Time Protocol (NTP) 服务器
1.1 服务器可链接外网时    
# crontab -e    
加入一行:    
*/1 * * * * ntpdate 210.72.145.44     ......

linux select 用法

select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。
文件在句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是的,如man socket可以看到“On success, a fi ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号