
《深入理解Linux内核》
狼群一一先锋
他日仙界如相见,一声道友尽沧桑。
展开
-
笔记——深入理解Linux内核——第五章 内核同步——自旋锁(spin lock)
1、P204 表5-7提到了几个宏,例如:spin_lock_init(),具体的实现还是挺好的,至少我没那么用过。看了内核代码,才知道c语言并不是我这几年写的那样子。很多写法我都不了解。spin_lock_init()-初始化自旋锁的宏实现记得前些天看到另外两个宏likely和unlikely,知道原理后真的震惊了。这也展示了为什么很多大底层要用C去编写,为什么C是基础。等闲暇的时候手...原创 2018-12-20 16:00:55 · 230 阅读 · 0 评论 -
笔记——深入理解Linux内核——第九章 进程地址空间——红黑树
刚刚看到了红黑树(red-black tree),进程申请的地址空间管理用到的,改变了我一直的一个观点。我一直以为所有的数据管理都是简单的链表,没有其他的了。看到这里我才发现我的认识是错误的,一切的根本都是链表没错,但在链表的基础上,设计师又设计出了一些链表的节点规则,这样一切就真的就变了。例如这个红黑树,在成百上千个节点的情况下就大大的缩短了查询速度。如果是简单的链表,那速度与节点个数是简单的线...原创 2019-01-28 09:37:27 · 311 阅读 · 0 评论 -
笔记——深入理解Linux内核——第八章 内存管理——cache/slab
今天早上看了高速缓存和slab分配器这部分的开头几节,写一点自己的感受吧。原公司所有嵌入式设备都使用的那套内存管理接口(有名字的,就不透露了)就是参考的早期linux内核使用的slab分配器使用的算法,也就是伙伴系统。为了使碎片可控,在应用层做了这么一套东西其统一的创建和释放内存。我想水平很高但又不能掌握linux内核才会采取这种办法。顶级的不能这么做,直接修改内核slab和kmem_cach...原创 2019-01-23 09:48:34 · 259 阅读 · 0 评论