linux子系统
文章平均质量分 80
Destihang
这个作者很懒,什么都没留下…
展开
-
linux下中断子系统
request_irq(). request_thread_irq().//分配中断资源,使能中断线和中断处理函数。 几个比较关键的数据结构 struct irqaction struct irq_desc struct irq_chip //hardware interrupt chip descriptor 在arch/xxx_cpu/xxx_sys/irq.c下原创 2016-02-16 22:34:32 · 1355 阅读 · 0 评论 -
linux下文件
系统调用read()将阻塞调用进程,直到数据被拷贝进用户态地址空间。但系统调用write不同,它在数据被拷贝到页高速缓存(延迟写)后马上结束。 O_SYNC标志只影响写操作,它将阻塞调用进程,直到数据被有效地写入磁盘。 对磁盘文件来说,read,write方法能够确定正被访问的数据所在物理块的位置,并激活块设备驱动程序开始传送。 对于大部分文件系统来说,从文件中读取一个数据页就等于在磁盘上查原创 2016-04-26 08:54:51 · 629 阅读 · 0 评论 -
linux同步
如果进程正执行内核函数时,即它在内核态运行时,允许发生内核切换(被替换的进程是正在执行内核函数的进程),这个内核就是可抢占的。 所有进程切换都是由宏switch_to()来完成的。 使内核可抢占的目的是减少用户态进程的分派延迟,即从进程变为可执行状态到它实际开始运行之间的时间间隔。 只有当内核正在执行异常处理程序(或系统调用),而且内核抢占没有被显式禁用,才可能抢占内核。 内核抢占会引起不原创 2016-04-19 22:17:45 · 611 阅读 · 0 评论 -
linux启动代码分析
在bootloader将linux的uImage搬到指定内存空间地址并且引导linux内核启动后,linux首先从arch/xxx_cpu/kernel/head.S先一步一步执行汇编代码。 (1)加载bootloader_tags的地址 (2)使能指令cache (3)使能数据cache (4)使能MMU (5)初始化TLB (6)建立中断异常向量表 (原创 2016-02-21 20:45:23 · 2009 阅读 · 0 评论 -
linux下内存
MMU由一个或一组芯片组成,其功能是把逻辑地址映射为物理地址,进行地址转换(MMU是CPU的一部分) 机器指令仍然用逻辑地址指定一个操作数的地址或一条指令的地址 MMU包含两个部件:分段部件和分页部件,分段机制将逻辑地址转换为线性地址,分页机制把线性地址转换为物理地址。 系统的运行速度一般是被CPU从内存中取得指令和数据速率限制的。 TLB(translation lookside buf原创 2016-03-29 11:07:34 · 820 阅读 · 0 评论 -
linux下I/O体系结构和设备驱动程序
一台计算机包括集中不同类型的总线,它们通过被称为“桥”的硬件设备连接在一起。 任何I/O设备有且仅能连接一条总线。 linux内核包含了辅助函数来简化汇编语言指令的访问I/O端口(inb(),inb_p(),outb(),outb_p()). 通常I/O设备驱动程序为了探测硬件设备,需要盲目地向某一I/O端口写入数据,但是,如果其他硬件设备已经使用了这个端口,那么系统就会崩溃,为了防止这种情原创 2016-02-21 14:04:13 · 1053 阅读 · 0 评论 -
linux下VFS
通用文件模型由下列对象类型组成: 超级块对象:存放已安装文件系统的有关信息 索引节点对象:存放关于具体文件的一般信息 文件对象:存放打开文件和进程之间交互的有关信息 目录项对象:存放目录项与对应文件进行链接的有关信息 所有的超级块对象都以双向循环链表的形式链接在一起。 任何基于磁盘文件系统都需要访问和更改自己的磁盘分配位图,以便分配或释放磁盘块。 文件系统处理文件所需要的原创 2016-02-20 14:51:51 · 455 阅读 · 0 评论 -
linux下时间子系统
每个architecture相关的代码中要有实现clock event会让clock source模块。 一般而言,每个CPU形成自己的一个小系统,有自己的调度,有自己的进程统计,这个小系统都是拥有自己的tick设备,而且是唯一的。 硬件有多少个timer硬件就注册多少个clock event device,各个CPU的tick device会选择自己合适的那个clock event设备。原创 2016-03-29 21:34:52 · 723 阅读 · 0 评论