简述Linux内核的内存分配原理
时间: 2023-03-19 13:21:40 浏览: 89
Linux内核使用伙伴系统来进行内存分配。该系统将物理内存划分为多个大小相等的块,称为页面(page),通常大小为4KB。当需要分配内存时,内核会寻找一个能够满足需求大小的页面块,并将其标记为已使用。
如果无法找到足够大的空闲页面块,内核会寻找多个页面块并尝试将它们合并成一个更大的页面块。这个过程被称为“合并”。如果没有找到足够大的空闲页面块,并且无法通过合并来获得足够大的页面块,内核将向系统请求更多的内存。
当释放已分配的内存时,内核会将页面块标记为未使用,并将其返回给伙伴系统。内核还会尝试将相邻的未使用页面块合并为更大的未使用页面块,以便将来的内存分配可以更容易地找到空闲块。
相关问题
简述glibc的内存分配原理
glibc的内存分配原理是基于doubly-linked-list的内存池管理策略,它将内存分割成多个不同大小的块,每个块都是double linked list中的一个结点,这些结点存放在一个双向链表中,当程序需要使用内存时,就从链表中查找可用的内存块,如果找不到,则从操作系统申请更多的内存,然后将其分割成可用的内存块,加入到链表中。
简述linux内核版本与发行版本
这个问题问到了 Linux 内核版本和发行版本的区别。
Linux 内核版本是指 Linux 操作系统内核的版本号,这个版本号通常包括主版本号、次版本号和修订版号,比如 5.4.0。
而发行版本是指基于 Linux 操作系统内核搭建的完整操作系统,包括一系列软件程序、文件系统、用户界面等,比如 Ubuntu 20.04、CentOS 7 等。发行版本通常会采用自己的版本号,以区分不同版本之间的差异和更新。
因此,Linux 内核版本和发行版本都是 Linux 操作系统的一部分,但具有不同的含义。