Linux

lunux占用内存小的核心原因

  • 极简可裁剪的内核设计,核心只保留进程调度,内存管理等基础操作系统,其他的一些功能比如硬件驱动,文件系统都可以做成可动态加载卸载的模块,像windows就是全部加载进去。

  • 极致的内存共享机制,写时复制,当打开多个进程是,会让父子进程共享同一块物理内存,只有当一个进程需要修改内存里面的内容的时候,才会复制单独的内存也给他使用,没有进行修改的部分始终共享,就像你和室友合租的时候,都先共用一套家具,只有当你自己要换沙发的时候才会去买一个新的回来。

  • linux动态库(.so文件,对应windows的.dll文件)实现了真正的全局共享,系统里所有用到同一个库的程序,都只加载一份库的代码,就像全小区共用一套健身器材。

  • 按需分配,绝不预占,应用申请内存时,先分配虚拟内存地址,只有当真正写数据的时候,才会分配实际的物理内存,避免了申请了但是不用的内存浪费。

  • linux把内存分为用户空间和内核空间,用户进程无法直接访问内核内存,每个进程都有独立的虚拟地址空间,进程之间完全隔离,那么一个进程出现泄露崩溃,只会影响自己,不会污染其他进程的内存,更不会影响内核。

linux文件管理优越的底层核心原因

  • 一切皆文件,所有东西都被抽象成文件,包括普通文件,硬件设备等,所有文件都使用同一套API接口( open / read / write / close )来操作。

  • linux核心是inode索引节点,每个文件只有一个唯一的inode,文件名只是inode的一个别名,和inode是绑定关系。

  • 通过inode可以创建多个硬链接,也就是多个文件名对应同一个文件,不用复制文件数据。查找文件时,先通过文件名找到inode,再通过inode直接定位到数据块的物理位置一次性找到数据。但是windows需要链表结构顺着链表一个个遍历

  • 精细化权限管理,天生适配多用户任务,底层实现了用户,用户组,其他用户三级权限控制

posted @ 2026-03-09 11:01  Huangyien  阅读(18)  评论(0)    收藏  举报