linux_kernel
文章平均质量分 81
ty_laurel
这个作者很懒,什么都没留下…
展开
-
文件系统注册注销,模块输出file_systems链表文件系统类型
一、文件系统注册当内核被编译时,就已经确定了可以支持哪些文件系统,这些文件系统在系统引导时,在 VFS 中进行注册。如果文件系统是作为内核可装载的模块,则在实际安装时进行注册,并在模块卸载时注销。每个文件系统都有一个初始化例程,它的作用就是在 VFS 中进行注册,即填写一个叫做 file_system_type的数据结构,该结构包含了文件系统的名称以及一个指向对应的 VFS 超级块读取例程的地址,所原创 2015-12-13 13:21:26 · 1403 阅读 · 0 评论 -
Linux容器LXC学习之Namespace
Linux Containers即就是Linux容器,是一个加强版的Chroot。容器可以提供轻量级的虚拟化,一遍隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。; LXC主要依赖Linux内核的3种隔离机制(isolation infrastructure):Chroot 将应用隔离岛一个虚拟的私有root下Cgroups 实现资源控制,给每个原创 2016-04-22 22:18:54 · 1364 阅读 · 0 评论 -
linux伙伴算法实现过程分析
linux伙伴算法Linux物理内存分配有三种方式: a. per-CPU机制,分配单个页面,per-CPU的页缓存提供了更快的分配和释放机制; b. 伙伴算法,适用于分配大块连续页面(至少一个页面),解决了外碎片问题; c. slab机制,分配小内存,访问频率较高的内存,解决了内碎片问题。原创 2015-12-02 16:36:13 · 3132 阅读 · 0 评论 -
VFS之基本数据结构
文件系统是一种存储和组织计算机中文件数据的一系列抽象数据类型,它们用来实现数据的存储、管理、查看、等功能。在Linux系统中,所有的设备、进程都是以文件的形式存在,字符设备、块设备以及这些设备的驱动均要依靠文件系统来实现,设备管理的基础框架也要以来文件系统(sysfs),所以文件系统在Linux操作系统中担任着重大的作用。一、VFS介绍Linux内核通过虚拟文件系统(Virtual File Sys原创 2015-12-12 21:04:12 · 3604 阅读 · 0 评论 -
linux 管道实现解析
管道是进程间通信的一种方式,分为无名管道和有名管道两种。使用无名管道可以进行相关进程间通信(也就是父子进程),使用有名管道可以进行不相关进程(没有父子关系的进程)之间的通信。下边主要介绍下无名管道的实现机制。 用户态创建无名管道函数有pipe()和pipe2(),通常在命令行的一个命令输出中查找一些特定数据时,也常用到管道技术,如“ps -elf | grep program”,其也是调用pi原创 2017-05-30 22:07:56 · 1173 阅读 · 0 评论 -
管道文件系统pipefs
概述 在Linux的世界里,万物皆文件,并且都是通过虚拟文件系统VFS来同一管理调用不同的文件系统,因此Linux中可以通过文件IO系统调用来进行操作。而管道就是一个伪文件系统,其通过pipefs来实现。同其他真正的文件系统(ext3、ext4等)一样,都实现VFS中的四种主要对象:super_block、inode、dentry和文件对象file。当对管道进行读写操作时,VFS就会将请原创 2017-06-06 13:33:07 · 1662 阅读 · 0 评论 -
Linux内核模块编程问题
最近在做的实验,以内核模块方式实现,现在就内核模块编程遇到的的一些问题,做以记录如下:1.内核函数访问用户态空间在内核模块中若想要打开或者写一个文件时,可以调用内核中的open/write函数,但是内核中的这些函数其中的一些参数是需要从用户态传过来的,也就是有“__user”修饰的函数(该类函数需要进行内存地址的检查变换)。如果在内核中直接指定一个文件或者缓冲区(内核空间中的),则原创 2017-07-06 16:33:38 · 785 阅读 · 0 评论