
Linux
文章平均质量分 92
lqp276
The devil is in the details
展开
-
Linux Kernel - 探索Ram Disk 驱动(1) - 体验使用
我不是专业的内核玩家, 对于内核也是平时有兴趣了看一看, 这里写下来的东西主要为了把学习之路上的风景记录一二, 当然了, 如果能够给你带来帮助, 那就算是意外收获了原创 2016-12-01 17:46:53 · 1585 阅读 · 0 评论 -
Linux Kernel - 探索Ram Disk 驱动(2) - 源码探索
继续前行接着上一篇 Linux Kernel - 探索Ram Disk 驱动(1) - 体验使用 , 我们来看一看Ram Disk驱动的实现.代码源文件位于: drivers/block/brd.c, 总共不到700行, 至少从数字上来说, 看起来不麻烦. 在看代码之前, 我们可以思考一下设备具有的功能, 这样带着问题思考可能更有效率. 对于块设备来说, 无非就是读取一个块, 写入数据到一个块.原创 2016-12-02 15:17:01 · 1438 阅读 · 0 评论 -
Linux Kernel - mount系统调用
mount系统调用简介玩过linux的同学对mount系统调用都不会陌生, shell命令mount正是调用内核中的sys_mount函数完成文件系统的挂载. 比如下面的命令: lqp@lqp-ThinkPad-T540p:~/mnt$ sudo mkfs.minix /dev/ram0 21856 inodes 65535 blocks Firstdatazone=696原创 2016-12-07 17:07:50 · 2109 阅读 · 0 评论 -
Linux Kernel - mknod系统调用
mknod简介mknod是用来创建特殊设备文件的系统调用, 在Linux Kernel - 探索Ram Disk 驱动(1) - 体验使用中, 我们通过在/dev/ram0的设备文件创建文件系统后, 访问我们挂载的Ram Disk设备. 与普通意义上的文件不同, 对一个设备的读写实质上会调用到设备驱动提供的读写函数, 进而和设备产生交互. lqp@lqp-ThinkPad-T540p:~$ ls原创 2016-12-07 11:01:26 · 1447 阅读 · 0 评论 -
Linux Kernel - open系统调用
系列目录传送门Linux Kernel - 文件系统系列open系统调用简介open系统调用相信大家都不会陌生, ‘Everything is a file - 一切皆是文件’, 是Unix的一个设计特点, 和Unix有着密切关系的Linux也不例外. 设备是文件, 数据是文件, 连socket也是文件. 文件的抽象把数据的特性抽离了出来, 使得对系统编码和理解系统大大简化.代码示例:int mai原创 2016-12-13 12:10:57 · 3546 阅读 · 0 评论 -
Linux Kernel - 文件系统系列纲要
写在开头在Linux Kernel - 探索Ram Disk 驱动(1) - 体验使用 和 Linux Kernel - 探索Ram Disk 驱动(2) - 源码探索 中, 我们探索了好玩的Ram Disk底层实现. 从直觉上来说, 我们能够理解数据是怎么通过文件系统写入到最后的内存中了, 但是具体对于用户程序是如何一步步通过系统调用和底层驱动交互的, 现在还是一片迷雾. 因此, 本着趁热好打原创 2016-12-06 15:56:25 · 778 阅读 · 0 评论 -
Linux Kernel - read系统调用
系列目录传送门Linux Kernel - 文件系统系列read系统调用文件系统作为连接用户数据和磁盘等块存储设备的中间层, 必须提供数据的读取和写入接口, 而read系统调用就是用来完成数据读取功能的. 在上一篇Linux Kernel - open系统调用中了解到, 通过open系统调用, 内核分配了文件描述符和file文件对象, 并将它们关联起来, 同时把文件描述符返回到应用层, 作为所打开文原创 2017-03-01 10:59:37 · 6757 阅读 · 0 评论