随笔分类 - Linux系统深入学习
摘要:6. C 函数调用机制概述 在 Linux 内核程序 boot/head.s 执行完基本初始化操作之后,就会跳转区执行 init/main.c 程序。那么 head.s 程序时如何把执行控制转交给 init/mian.c 程序呢?即汇编程序时如何调用执行 C 语言程序的?这里我们首先描述一下 C
阅读全文
摘要:1. C 语言程序概述 GNU gcc 对 ISO 标准 C89 描述的 C 语言进行了一些扩展,其中一些扩展部分已经包括进 IOS C99 标准中。本节给出了内核中经常用到的一些 gcc 扩展语句的说明。 2. C 程序编译和链接 使用 gcc 汇编器编译 C 语言程序时通常会经过四个处理
阅读全文
摘要:1. 概述 由于操作系统许多关键代码要求有很高的执行速度和效率,因此在一个操作系统源代码中通常就会包含大约 10% 左右的起关键作用的汇编语言程序量。Linux 操作系统也不例外,它的 32 位初始化代码、所有中断和异常处理过程接口程序、以及很多宏定义都使用了 as 汇编语言程序或扩展的嵌入式汇
阅读全文
摘要:控制器和控制卡(3) 7. 软盘和硬盘控制器 PC 机的软盘控制子系统有软盘片和软盘驱动器组成。由于软盘可以存储程序和数据并且携带方便,因此长期以来软盘驱动器是 PC 机上的标准配置设备之一。硬盘也是由盘片和驱动器组成,但是通常硬盘的金属盘片固定在驱动器中,不可拆卸。 由于硬盘具有河大的存储
阅读全文
摘要:控制器和控制卡(2) 5. 串行(xing)控制卡 (1)异步串行通信原理 两台计算机/设备进行数据交换,即通信,必须像人们对话一样使用同一种语言。在计算机通信术语中,我们把计算机/设备与计算机/设备之间的“语言”称为 通信协议 。通信协议规定了传送一个有效数据长度单位的格式。通擦我们使用术语
阅读全文
摘要:控制器和控制卡(1) 1. 中断控制器 IBM PC/AT 80X86 兼容微机使用两片级联的 8259A 可编程中断控制芯片组成一个中断控制器,用于实现 I/O 设备的中断控制数据存取方式,并且能为 15 个设备提供独立的中断控制功能,如下图所示。 在计算机刚开机初始化期间,ROM BIO
阅读全文
摘要:主存储器、BIOS 和 CMOS 存储器 1. 主存储器 1981年 IBM PC 机刚推出时系统只带有 640KB 的 RAM 主存储器(简称内存)。由于所采用的 8088/8086 CPU 只有 20 根地址线,因此内存寻址范围最高为 IMB (2^20Byte) 。在当时 DOS 操作系统流行
阅读全文
摘要:1. I/O端口和寻址 CPU 为了访问 I/O 接口控制器或者控制卡上的数据和状态信息,需要首先指定他们的地址。这种地址就称为 I/O端口地址 或简称 端口 。通常一个 I/O 控制器包含访问数据的数据端口、输出命令的命令端口和访问控制器执行状态的状态端口。端口地址的设置方法一般有两种:统一编址和
阅读全文
摘要:1.计算机系统结构 计算机系统可以分为硬件部分和软件部分,但两者之间相互依存。硬件部分是计算机系统的可见部分,是软件运行和存储的平台。软件是一种控制硬件操作和动作的指令流。 本书描述的主题就是一个计算机系统的运行机制,主要说明系统的处理中心和输入/输出部分的硬件组成原理和软件控制的实现。 在硬件方面
阅读全文
摘要:1. 阅读完整源代码的重要性和必要性 正如 Linux 系统的创始人在一篇新闻组投稿上所说的,要理解一个软件系统的真正运行机制,一定要阅读其源代码(RTFSC — Read The Fucking Source Code)。系统本身是一个完整的整体,具有很多看似不重要的细节存在,但是若忽略这些细节,
阅读全文

浙公网安备 33010602011771号