随笔分类 - ~Kernel API
linux-2.6.32
摘要:Chrome OS Firmware Introduction /* implement */
阅读全文
摘要:Monolithic and Microkernel 一、微内核的特点 Idea of microkernel:• Flexible, minimal platform• Mechanisms, not policies• OS functionality provided by usermode
阅读全文
摘要:小小地跟踪下read函数,从 ssize_t read(int fd, void *buf, size_t count) 到 DATASHEET 一调到底,见证内核的分层模块化。 --内核服务例程开始提供服务-- --进入vfs层-- 发现回调函数,file->f_op->read 又是何时给回调函
阅读全文
摘要:每个文件系统都是一个独立的世界,统管着属于自己的文件们。如果你想进入这世界瞧一瞧,要准备一扇门(文件夹),然后施展魔法(mount命令),门的另一边便通向了新文件系统。 mount正式开始: 新建文件blkfile 选loop1回接 直接格式化blkfile当然不行,not a block spec
阅读全文
摘要:文件分很多种,但咱可以这么分:给人看的和给机器看的。 可执行文件就是进程能认识的文件,属于后者。 机器能认识的文件也不止一种,至少内核代码里列出这么些: elf是常用的一种,我们这里的a.out就属于此种格式。 [jesse@localhost test]$ ./a.out hello 运行a.ou
阅读全文
摘要:程序表头涉及到“内存上页的分配”。 进程是个动态的家伙,需要足够的舞台来让他表演,时常嚷嚷着缺空间。 创建子进程时对于mm处理:共享还是分配一个新的? 内存空间的分配在代码的表现形式无非是填充 mm_struct 的过程,因为基因的遗传性,有些是可以继承的,有些也会变异。 翅膀硬了,子进程成了全新的
阅读全文
摘要:作为计算机程序的基本单位,一切五花八门,新奇古怪的程序都源于一个fork。亚当夏娃之后,人类繁衍生息便出现了社会,fork繁衍生息之后便出现了windows,或者Linux,又或者你手中的iPhone5,双卡双待,大屏加超长待机,还有标配的炫酷铃声——《爱情买卖》。 fork不是一个C函数,而是一个
阅读全文
摘要:先写个简单的test.c 仅一个简单的open,应该不会有更简单的字符设备驱动了。 app 层还应该有这么个东西。 好了,上面下面都有了。那,中间是怎么个回事? 大致的过程: 这个sys_open()可不是一个简单的函数,它包括了文件路径查找,文件权限判断等各种复杂BT的步骤。况且,不知何时起,内核
阅读全文
摘要:周末闲散,敲着键盘遍历文件夹,竟发现了一年前的笔记,那年青涩的我啊,一切都是懵懵懂懂,时至今日,虽然看得都是相同的代码,一模一样的函数,就为啥感觉不一样呢。“一行有每一行的道”,IT行业的你们、她们、我们,每隔一年的变化就是那么的实实在在de。 贴上note,纪念逝去那一年的青春。 # 如何修改系统
阅读全文
摘要:那谁不是说了么,“内核是个各种程序的大宝库,因为这些程序出自地球上顶尖程序员”。 可能,你的工程中需要用到红黑树,你应该不会亲自去写,能写你也不会去写。到哪里去找个现成的代码勒? 这种类似的疑问也困扰过曾经年少无知的我,其实,内核这儿不就有一个么! 红黑树是平衡二叉树的一种,它有很好的性质,树中的结
阅读全文
摘要:曾经的某一天,接触了“自旋锁”,听到这个名字,脑子里出现的是“中子星”——都是在旋啊旋。 脉冲星概述:脉冲星(Pulsar),又称波霎,是中子星的一种,为会周期性发射脉冲信号的星体。人们最早认为恒星是永远不变的。而大多数恒星的变化过程是如此的漫长,人们也根本觉察不到。然而,并不是所有的恒星都那么平静
阅读全文
摘要:系统的心跳无疑就是“时钟”,心跳稳定,系统才稳定,有心脏病的系统可要不得。 app最常见使用的用法: app更精确的定时方式: 再来个简单的内核定时测试程序: linux非实时系统,实时性有待提高,低负荷、毫秒级以上的操作还是比较理想。先来看看这个几乎是个驱动就会涉及到的 异常常见的 结构体 tim
阅读全文
摘要:add_wait_queue_exclusive(); add_wait_queue(); 插入队列的位置不同:一个从尾,一个在头。前者插入元素的优先级较高。 又是一位内核界的明星,通过内核链表遍历一大串结构体的典型。 #define list_for_each_entry_safe(pos, n,
阅读全文