设为首页 加入收藏

TOP

Linux0.11内核Kernel包(内核代码)中的几个重要的文件分析
2014-11-24 03:06:07 来源: 作者: 【 】 浏览:1
Tags:Linux0.11 内核 Kernel 代码 重要 文件 分析

在kernel包中有几个重要的文件夹和文件,他们各司其职,处理着有关内核的一些功能操作。其中文件夹有三个:blk_drv(块设备驱动),chr_drv(字符设备驱动),math(数学协处理器) 文件中asm.s fork.c mktime.c panic.c printk.c sched.c signal.c exit.c sys.c traps.c system_call.c vsprintf.c 该文件夹下的代码文件从功能上来可以分为三类:


1.硬件中断处理类程序。(asm.s trap.c)asm.s用于实现大部分硬件异常所引起的中断的汇编语言处理过程。在80X86组成的PC机中,采用了两片8259A可编程中断控制芯片。每片可以管理8个中断源。通过多片的级联方式,能够构成最多可以管理64个中断向量的系统。在PC/AT系列兼容机中,使用了两片8259A芯片,共可管理15级中断向量。如下图:


对于Linux内核来说,中断信号通常分为两类:硬件中断和软件中断(异常)。每个中断时由0-255之间的一个数字来标示。对于中断int0-int31(0x00--0x1f),每个中断的功能有INTEL公司固定设定或者保留用,属于软件中断,单INTEL公司称之为异常。因为这些中断时在CPU执行指令时探测到异常而引起的。中断int32--int255可以由用户自己设定使用,在Linux中int32--int47对应于8259A中断控制芯片发出的硬件中断请求信号IRQ0--IRQ15,并把程序编程发出的系统调用(system_call)中断设置为int128(0x80)。


traps.c程序则实现了asm.s的中断处理过程中调用的C函数。


2.系统调用处理相关程序(system_call.s fork.c signal.c sys.c exit.c)在Linux中应用程序调用内核的功能是通过中断调用int0x80进行的


3.其他通用类程序(schedule.c mktime.c panic.c printk.c vsprintf.c) 其中,schedule.c最为重要,是内核的核心调度程序,用于对进程的执行进行切换或改变进程的执行状态。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux内核网络系统结构图(TCP/IP.. 下一篇RedHat Linux 9.0下Android内核的..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)
·MySQL 索引 - 菜鸟教 (2025-12-24 10:18:06)
·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)