![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核学习及实践
文章平均质量分 77
dymom
当爱生活遇上程序猿-爱生活的程序媛
展开
-
CPU寻址方式与过程
在看了上一篇转载的文章后,自己也仔细搜索研究了下关于CPU寻址方面的东西,写下来吧。首先,说到寻址,当然离不开各种各种总线啦,先来看下我们的计算机系统内的总线结构图啦(下图来自大话存储) 如图,主板上的每个部件都是通过总线连接起来,其实,这些密密麻麻的先都是印刷在电路板上,这些线中,有一些是部件之间交互数据时候用的数据总线,有的是一些地址总线,用来确认通信时候的目标设备,一般按照数据总原创 2013-10-28 22:19:01 · 7787 阅读 · 0 评论 -
块设备文件
linux 操作系统秉承“一切都是文件”的设计思想,将所有的块设备也看成文件,内核发现一个块设备时候,会通知用户空间,用户空间的udevd后台进程接受到这些消息后,会按照用户指定的规则为他们创建(mknod)块设备文件。理解块设备文件,关键有两方面,一,从外部表现看,他是属于某个外部文件系统上的一个文件,通常将他们存放在/dev目录下,用户像常规文件一样通过文件名对他们进行访问;二,从内部实现原创 2014-03-10 14:08:10 · 2819 阅读 · 1 评论 -
sysfs文件系统
sysfs文件系统sysfs核心负责为内核中的内部表示和用户空间的外部呈现建立对应关系1 内核对象被映射为用户空间的目录;2 对象属性被映射为用户空间的常规文件3 对象关系被映射为用户空间的符号链接sysfs代码在fs/sysfs中,他提供两种构件,也就是两个方面的API,一是内核编程接口,用于向内核其他模块提供构建内部树的API,另一是文件系统接口,使得用户空间可以查看并操作原创 2013-11-19 19:19:28 · 1234 阅读 · 0 评论 -
linux引导过程
1 CPU执行BIOS处的代码,BIOS是位于主板的闪存中某段特殊区域。原创 2014-04-28 22:37:10 · 588 阅读 · 0 评论 -
删除已经编译好的内核
由于之前在对国产机的测试中,发现如果原创 2014-04-28 19:59:17 · 2820 阅读 · 0 评论 -
深入浅出linux内核源代码之双向链表list_head(上)
创文章,转载请注明出处,谢谢! 作者:清林,博客名:飞空静渡 前言: 在linux 源代码中有个头文件为list.h 。很多linux 下的源代码都会使用这个头文件,它里面定义了一个结构, 以及定义了和其相关的一组函数,这个结构是这样的: struct list_head{struct list_head *next, *prev;};转载 2014-06-05 15:44:38 · 838 阅读 · 0 评论 -
阵列源码学习实践(一)阵列的开机自动检测
我们知道,如果我们创建过阵列,那么在下一次开机后,系统会将系统中已有的阵列运行起来。那么,他是根据什么组织起各个阵列将其自动启动的呢?该文章探索了系统开机过程中对阵列的自动检测过程,并且与国产机中的过程进行对比,找出了国产机中为何当开机过程设备扫描顺序出现变化时候不能正常的将阵列检测自动运行起来而在标准的服务器中却可以。原创 2014-04-28 22:11:16 · 2448 阅读 · 0 评论 -
IO的请求队列何来何往
因为最近在研究数据与元数据分离的原创 2014-06-12 20:32:11 · 2194 阅读 · 0 评论 -
block(块),page(页),buffer cache(块缓冲)区别与联系
在自己的理解里,块就是用来管理磁盘空间的,就像我们在给一个磁盘建立原创 2014-07-14 10:00:02 · 16569 阅读 · 0 评论 -
无基础新伙伴前期基本linux学习建议
今天组里来了两个新研0的童鞋,陈老师说绕过原创 2014-07-11 22:17:27 · 854 阅读 · 0 评论 -
linux内核编译
一 认识核心,核心源码核心是整个OS的最底层,他负责了整个硬件的驱动以及提供了各种系统所需要的核心功能,包括防火墙机制,是否支持LVM或者Quota等文件系统等,而在开机流程中,MBR内的loader加载核心档案来驱动整个系统的硬件,所以说,如果你的核心不认识某个最新的硬件,那么该硬件也无法被驱动,当然也无法使用这个硬件。计算机真正在工作的东西是硬件,例如数值计算要使用CPU、数据存储要使原创 2013-10-18 22:15:12 · 927 阅读 · 0 评论 -
内存脏数据下刷(linux2.6.18/linux.2.6.32)剖析
1 前言BDI机制原本主要是用于检测磁盘的繁忙程度等作用,从2.6.19内核开始,将此部分功能整合到了mm/backing_dev.c中,一直到2.6.31内核为止,其功能也只是在不段的完善,但是脏数据的下刷依然是依靠pdflush。自2.6.32内核开始,彻底取消了pdflush,而是将此部分功能添加到BDI机制中,并且是为每个设备创建了一个名为“flush-设备主次设备号”的线程,转载 2014-08-28 18:55:51 · 2083 阅读 · 0 评论 -
手稿核心章节技术架构 - md5 位图机制
1 Bitmap实现1.1 bitmap原理简单的说,bitmap的工作原理就是使用一个位图,每个位对应md设备的一个数据块,在md设备有数据写入时,设置该数据块对应的位,等待写入完成后,再清除该数据块对应的位。当需要进行数据同步/恢复时,参照bitmap的位图,只有设置了位对应的数据块才需要进行同步/恢复操作。1.2 核心数据结构1.2.1 Bitma转载 2014-01-14 10:12:15 · 1019 阅读 · 0 评论 -
linux设备驱动归纳总结(三):4.ioctl的实现
linux设备驱动归纳总结(三):4.ioctl的实现一、ioctl的简介:虽然在文件操作结构体"struct file_operations"中有很多对应的设备操作函数,但是有些命令是实在找不到对应的操作函数。如CD-ROM的驱动,想要一个弹出光驱的操作,这种操作并不是所有的字符设备都需要的,所以文件操作结构体也不会有对应的函数操作。出于这样的原因,ioctl就有它的转载 2013-12-26 20:38:01 · 795 阅读 · 0 评论 -
内核编译 make menuconfig错误
在make menuconfig时,之前遇到一个问题大概如下:scripts/kconfig/mconf.c:91: error: static declaration of 'current_menu' follows non-static declarationscripts/kconfig/lkc.h:63: error: previous declaration of 'curre原创 2013-11-03 11:47:55 · 2044 阅读 · 0 评论 -
Linux内核源码:Kconfig和Makefile
Linux内核源码树的每个目录下都有两个文档Kconfig和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单。在执行内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这个.config,就知道了用户的选择转载 2013-11-04 10:08:45 · 954 阅读 · 0 评论 -
linux驱动模型
linux驱动模型在linux2.5中引入linux驱动模型,有时也叫linux设备模型,主要解决之前版本存在的以下问题:1 没有一种统一的机制表达驱动和设备之间的关系2 没有通用的热插拔机制3 没有通用的碘盐管理机制4 procfs文件系统过度混乱,包含很多不是进程的信息 linux内核基于kobject内核对象机制将系统中的总线类型、设备和驱动分别用bus-type原创 2013-11-18 16:31:28 · 698 阅读 · 0 评论 -
Slab分配机制
http://oss.org.cn/kernel-book/ch06/6.3.3.htm6.3.3 Slab分配机制 采用伙伴算法分配内存时,每次至少分配一个页面。但当请求分配的内存大小为几十个字节或几百个字节时应该如何处理?如何在一个页面中分配小的内存区,小内存区的分配所产生的内碎片又如何解决? Linux2.0采用的解决办法是建立了13个空闲区链表,它们的大小从32字节到1转载 2013-11-06 15:00:05 · 825 阅读 · 0 评论 -
linux 中解析命令行参数 getopt_long
原文http://blog.csdn.net/ast_224/article/details/3861625getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下: #include int getopt_long(int argc, char * const argv[], con原创 2013-11-27 15:30:55 · 793 阅读 · 0 评论 -
set_buffer_dirty的源码在哪?怎么理解?
在看关于将buffer置为脏页的时候,我们是看到原创 2014-08-28 15:22:23 · 1421 阅读 · 0 评论