Linux内核编程
文章平均质量分 77
baimafeifei2011
这个作者很懒,什么都没留下…
展开
-
Linux slab
转载至http://www.cnblogs.com/xuczhang/archive/2010/04/02/1703363.html本文将介绍Linux的slab层,首先我们要解决一个问题就是什么是slab,slab是做什么用的。在linux内核中会有许多小对象,这些对象构造销毁十分频繁,比如i-node,dentry。这么这些对象如果每次构建的时候就向内存要一个页转载 2016-10-08 23:00:49 · 292 阅读 · 0 评论 -
Linux内核驱动之热插拔事件
http://blog.chinaunix.net/uid-26430381-id-3294757.html转载 2016-10-24 10:49:15 · 2001 阅读 · 0 评论 -
Linux文件编程之虚拟文件系统(VFS)
当用户层程序员在编写文件函数时,常常会用到open(),read()和write()这类系统调用,而且用的也很爽,因为我们只需要知道这些函数如何调用就OK了,而不用深究具体文件系统和实际物理介质是如何实现的。而我们内核编程人员就要了解这些底层实现,给上层人员提供更多的方便。因此我们的任务就更复杂,佛家有一句名言:“我不入地狱,谁如地狱”因此我们就要有奉献精神编写出具有统一简单效率高的接口为用户层程转载 2016-10-05 10:22:24 · 561 阅读 · 0 评论 -
Linux内核编程之文件系统-VFS中的目录项对象和文件对象
一 .VFS 中的目录项对象 1.为了方便查找,VFS引入了 目录 项,每个dentry代表路径中的一个特定部分。目录项也可包括安装点。 2.目录项对象由dentry结构体表示 ,定义在文件linux/dcache.h 头文件中。 89struct dentry { 90 atomic_t d_count; //使用计数 91转载 2016-10-05 10:35:50 · 1387 阅读 · 0 评论 -
虚拟文件系统中的数据结构(fs_struct、files_struct)
虚拟文件系统中的数据结构(fs_struct、files_struct) 下载LOFTER我的照片书 |1、与进程相关的文件首先,文件必须由进程打开,每个进程都有它自己当前的工作目录和它自己的根目录。task_struct的fs字段指向进程的f转载 2016-10-05 14:39:54 · 1023 阅读 · 0 评论 -
Linux文件系统的实现
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。我们可以对文件进行许多操转载 2016-10-05 17:20:39 · 276 阅读 · 0 评论 -
sysfs文件系统
3 sysfs文件系统sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用。该文件系统的目录层次结构严格按照内核的数据结构组织。除了二进制文件外(只有特殊场合才使用),sysfs文件内容均以ASCII格式保存,且一个文件只保存一个数据,另外,一个文件不可大于一个内存页(通常为4096字节)。sysfs提供一种机制,使得可以显式的描述内核对象、对象属性及转载 2016-10-06 13:12:24 · 309 阅读 · 0 评论 -
设备模型结构
http://blog.csdn.net/s_e_a_n/article/details/5770617如表2-1,Linux设备模型包含以下四个基本结构:类型所包含的内容内核数据结构对应/sys项设备(Devices)设备是此模型中最基本的类型,以设备本身的连接按层次组织struct devi转载 2016-10-06 14:47:07 · 423 阅读 · 0 评论 -
Linux内核中的常用宏container_of其实很简单
http://blog.csdn.net/npy_lp/article/details/7010752版权声明:本文为博主原创文章,未经博主允许不得转载。 开发平台:Ubuntu11.04 编 译器:gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4) Container_of在Linux转载 2016-10-07 12:03:56 · 361 阅读 · 0 评论 -
史上最经典的Linux内核学习方法论
http://blog.chinaunix.net/uid-20586655-id-1752570.html 从前在学校,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉。毕业的时候,人家跟我说Makefile我完全不知,但是一说Make Love我就来劲了,现在想来依然觉得丢人。 毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个转载 2016-10-07 12:42:50 · 4413 阅读 · 0 评论 -
Linux内核Makefile文件
http://blog.chinaunix.net/uid-20586655-id-215626.htmlMakefile包括五部分-------------------------------------------- Makefile 顶层Makefile文件 .config转载 2016-10-07 22:33:04 · 173 阅读 · 0 评论 -
《深入理解Linux内核》软中断/tasklet/工作队列
软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者。本文重点在于介绍这三者之间的关系。(函数细节将不会在本文中出现,可以参考文献,点这里)(1)上半部和下半部的区别上半部指的是中断处理程序,下半部则指的是一转载 2016-10-08 09:50:25 · 441 阅读 · 0 评论 -
从 inode 了解 Linux 文件系统
http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/ 从 inode 了解 Linux 文件系统硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一。转载 2016-10-08 13:58:07 · 2084 阅读 · 1 评论 -
linux块大小与分区大小问题
http://bbs.chinaunix.net/forum-viewthread-tid-3670672.htmlEXT2文件系统EXT2是second extended file system的简写。这个文件最早的目的是取代minix文件系统。开发于1993年。在设计之初没有提供journal的功能。EXT2的磁盘分布在ext2文件系统中,硬盘分区首先被划分为一个个的 bloc转载 2016-10-08 15:23:02 · 4331 阅读 · 0 评论 -
Google 发布 Android 性能优化典范
https://www.oschina.net/news/60157/android-performance-patterns转载 2016-10-12 13:57:34 · 223 阅读 · 0 评论 -
《Linux内核设计与实现》读书笔记(六)- 内核数据结构
内核数据结构贯穿于整个内核代码中,这里介绍4个基本的内核数据结构。利用这4个基本的数据结构,可以在编写内核代码时节约大量时间。主要内容:链表队列映射红黑树 1. 链表链表是linux内核中最简单,同时也是应用最广泛的数据结构。内核中定义的是双向链表。 1.1 头文件简介内核中关于链表定义的代码位于: include/linux/list.hlist.转载 2016-10-11 20:20:02 · 274 阅读 · 0 评论 -
内核中的kmalloc函数详解
一、kmalloc函数详解 #include void *kmalloc(size_t size, int flags);给 kmalloc 的第一个参数是要分配的块的大小. 第 2 个参数, 分配标志, 非常有趣, 因为它以几个方式控制 kmalloc 的行为.最一般使用的标志, GFP_KERNEL, 意思是这个分配((内部最终通过调用 __get_free_pages 来进转载 2016-10-08 23:17:23 · 388 阅读 · 0 评论 -
Linux内核:通过wait_event和wake_up内在机制分析等待队列
等待队列在linux内核中,等待队列是一个非常重要的概念,也是一个非常重要的机制。我们会在很多函数当中用到等待队列的知识,例如completion机制、wait_event机制等等。在解释这些机制之前,我们首先要弄清楚什么是等待队列。在linux内核里面,我们将进程分为以下几种状态:可运行状态(TASK_RUNNING) 处于这种状态的进程,要么正在运行,要么正准备被CPU调度运行。正转载 2016-10-08 23:42:48 · 502 阅读 · 0 评论 -
linux内核中等待队列(wait_event,wake_up...)
http://blog.chinaunix.net/uid-27714502-id-3450323.html根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析 介绍这几个函数,不得不先介绍等待队列wait_queue_head_t 等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核转载 2016-10-08 23:45:46 · 484 阅读 · 0 评论 -
Linux makefile 教程 非常详细,且易懂 .
http://blog.csdn.net/liang13664759/article/details/1771246转载 2016-10-09 10:28:10 · 327 阅读 · 0 评论 -
make modules
http://blog.csdn.net/humanof/article/details/236248011.make moduleserror:Building modules, stage 2.MODPOST 0 modulesrootcause and solution: obj -m should be obj-m in Makefile 拓展:if转载 2016-10-09 10:52:31 · 2344 阅读 · 0 评论 -
EXT2的文件系统装载之内核函数ext2_fill_super分析
在安装ext2fs的时候,存放ext2文件系统的磁盘分区上的大部分数据结构的信息都会被拷贝到RAM(操作系统内存)中,从而使得内核避免了许多后续的操作,变得简单。由于ext2磁盘数据结构都保存在ext2磁盘分区的块中,所以当需要经常更新一些数据结构时,内核会利用页高速缓存来实现。在实际mount一个文件系统的时候,ext2文件系统依赖于虚拟文件系统的一个标准函数(mount_bdev)来实现文转载 2016-10-09 15:10:34 · 1099 阅读 · 0 评论 -
EXT2 文件系统
http://www.cnblogs.com/ggjucheng/archive/2012/08/22/2651641.html#first-ext2认识ext文件系统硬盘组成与分割文件系统特性Linux 的 EXT2 文件系统(inode)与目录树的关系EXT2/EXT3 文件的存取与日志式文件系统的功能Linux 文件系统的运行挂载点的意义其他 Linux转载 2016-10-09 20:57:54 · 243 阅读 · 0 评论 -
linux文件读写的流程
转自http://hi.baidu.com/_kouu/item/4e9db87580328244ef1e53d0在《linux内核虚拟文件系统浅析》这篇文章中,我们看到文件是如何被打开、文件的读写是如何被触发的。 对一个已打开的文件fd进行read/write系统调用时,内核中该文件所对应的file结构的f_op->read/f_op->write被调用。 本文将顺着这条路走下去转载 2016-10-09 23:15:10 · 966 阅读 · 0 评论 -
Linux设备模型——设备驱动模型和sysfs文件系统解读
http://www.cnblogs.com/Ph-one/p/5052191.htmlLinux设备模型——设备驱动模型和sysfs文件系统解读本文将对Linux系统中的sysfs进行简单的分析,要分析sysfs就必须分析内核的driver-model(驱动模型),两者是紧密联系的。在分析过程中,本文将以platform总线和spi主控制器的platform驱动为转载 2016-10-09 23:39:50 · 601 阅读 · 0 评论 -
设备模型之kobject,kset及其关系
http://blog.chinaunix.net/uid-24227137-id-3266449.html设备驱动基础0:设备模型之kobject,kset及其关系Linux2.6以后的设备驱动,都是在设备模型的基础上构建的,因此,要编写linux下的设备驱动程序,不论是usb设备,pci设备等,都需要了解设备模型。设备模型的基础结构体主要是kobject,kset这两个结构体:转载 2016-10-10 13:22:01 · 226 阅读 · 0 评论 -
linux dmesg命令参数及用法详解(linux显示开机信息命令) .
功能说明:显示开机信息。语 法:dmesg [-cn][-s ]补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。参 数: -c 显示信息后,清除ring buffer中的内容。 -s 预设置为8196,刚好等于ring b转载 2016-10-10 14:55:38 · 4627 阅读 · 0 评论 -
内核中通过虚拟地址找到物理地址例子
http://www.cnblogs.com/hfww/archive/2012/03/31/2427228.html转载 2016-10-21 16:42:17 · 836 阅读 · 0 评论 -
Linux内核Crash分析
http://blog.chinaunix.net/uid-20788636-id-4377271.html 在工作中经常会遇到一些内核crash的情况,本文就是根据内核出现crash后的打印信息,对其进行了分析,使用的内核版本为:Linux2.6.32。 每一个进程的生命周期内,其生命周期的范围为几毫秒到几个月。一般都是和内核有交互,例如用户空间程序使用系统调用进入内核空间。转载 2016-10-20 19:52:15 · 5935 阅读 · 0 评论