![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kernel
识荒者
知识焦虑的心灵港湾。(本人目前在找工作,欢迎介绍)
展开
-
VMA使用
VMA用户地址空间用户层进程的虚拟地址空间是linux的一个重要抽象:它向每个运行进程提供了同样的系统视图,这使得多个进程可以同时运行,而不会相互干扰。 本文讨论内核管理用户虚拟地址空间的方法,由于一下种种原因,这比内核地址空间的管理更复杂。 - 每个应用程序都有自身的地址空间,与所有其它的应用程序分隔开。 - 通常在巨大的线性地址空间中,只有很少的段可用于各个用户空间进程,这些...原创 2018-03-06 18:42:54 · 2945 阅读 · 0 评论 -
malloc实现
malloc实现几个问题malloc()函数是C语言中内存分配函数, - malloc()函数返回的内存是否马上就分配物理内存? - 如果不考虑libc,malloc分配100Byte,那么实际上内核是为其分配100Byte吗? - vm_normal_page()函数返回的什么样的页面的struct page数据结构?为什么内存管理代码中需要这个函数? - get_user_...原创 2018-03-06 18:44:06 · 596 阅读 · 0 评论 -
Linux kernel 4.x中的min和max宏
min和max是两个很常用的操作,一般都是用宏实现的,不过想要写出一个很完善的宏定义还是要考虑很多问题的,本文就来分析下Linux Kernel中的实现方法。文中仅考虑min,max的结构与其完全相同,只要修改下大于小于号即可。宏定义中要将整体和变量都加上括号的意义此处就不多说了,据此我们可以写出一个最基本的形式:#define min(a, b) ((a) < (b) ? (a) ...原创 2018-08-14 16:09:45 · 1090 阅读 · 0 评论