内核
文章平均质量分 52
slicesss
自然规律,功能与物质的平衡
展开
-
linux内核架构解析-Linux文件与进程的关联
进程与其打开文件的关系 如果说文件管理系统是文件的管理者与提供者,那么进程就是文件系统中文件的使用者。即,文件管理系统与进程之间是服务与客户之间的关系。 文件对象 当进程通过系统调用open()打开一个文件时,该系统调用找到这个文件后,会把文件封装到一个file结构的实例中提供给进程,这个实例称为file对象。 struct file { union { struct list_head fu_list; //所有打开文件的链表 struct rcu_head fu_rcuhead原创 2021-08-27 09:37:36 · 280 阅读 · 0 评论 -
linux内核架构解析-内存管理
内存管理的实现涵盖了许多领域 内存中的物理内存页的管理 分配大块内存的伙伴系统 分配较小块内存的slab、slub和slob分配器 分配非连续内存块的vmalloc机制 进程的地址空间 系统启动 start_kernel的代码流程图。内存管理相关的系统初始化函数。 setup_arch是一个特定于体系结构的设置函数,其中一项任务是负责初始化自举分配器。 setup_per_cpu_areas初始化源代码中(使用per_cpu宏)定义的静态per-cpu变量,这种变量对系统原创 2021-08-26 19:24:14 · 107 阅读 · 0 评论 -
linux内核架构解析-进程调度
分配给 CPU 的 task,作为调度实体加入到运行队列中。 runqueue 运行队列是本 CPU 上所有可运行进程的队列集合。每个 CPU 都有一个运行队列,每个运行队列中有三个调度队列,task 作为调度实体加入到各自的调度队列中。 参考微信公众号:人人都是极客 ...原创 2021-08-26 14:54:37 · 108 阅读 · 0 评论 -
linux内核架构解析-1基本知识
概述 在接下来的日子里,我会去分析内核的主要功能,解析其内部的结构,并研究其实现,内核版本2.6.24 1.1 内核的任务 内核是硬件与软件之间的一个中间层 其作用是将应用程序的请求传递给硬件, 并充当底层驱动程序,对系统中的各种设备和组件进行寻址 1.2 内核的组成部分 粗略的草图,图中只是其中一部分 1.3 进程、进程切换、调度 操作系统下运行的应用程序、服务器及其他程序都称为进程。每个进程都在CPU的虚拟内存中分配地址空间 各个进程的地址空间是完全独立的,因此进程并不会意识到彼此的存在。进程之间原创 2021-08-23 20:07:51 · 161 阅读 · 0 评论 -
内核的struct变量使用方法
typedef void (*pfunc_t)(void); typedef void (*pfunc_t)(int i); //定义一种类型 通过类型定义变量 typedef struct { // 属性 int a; // 方法 pfunc_t func; }stu; //通过直接定义函数指针的方式,linux内核用的就是这种方法 typedef struct { // 属性 int a; // 方法 void (*pfunc_t) (void); }stu; ..原创 2021-05-13 12:52:39 · 106 阅读 · 0 评论