
Linux内核设计理论
文章平均质量分 88
Linux内核设计理论
刘仕豪
操作系统行业从业者,开源精神,希望可以推动科技进步。
展开
-
linux的initcall机制--应用层用链接脚本实现
initcall机制的由来 我们都知道,linux对驱动程序提供静态编译进内核和动态加载两种方式,当我们试图将一个驱动程序编译进内核时,开发者通常提供一个xxx_init()函数接口以启动这个驱动程序同时提供某些服务。 那么,根据常识来说,这个xxx_init()函数肯定是要在系统启动的某个时候被调用,才能启动这个驱动程序。 最简单直观地做法就是:开发者试图添加一个驱动程序时,在内核启动init程序的某个地方直接添加调用自己驱动程序的xxx_init()函数,在内核启动时自然会调用到这个程序。 但是,回头一原创 2022-03-04 17:21:45 · 400 阅读 · 0 评论 -
内核性能分析总结
# 内核性能分析总结 1.unixbench a.测试介绍 UnixBench源于1995 年,基线系统是“George”,一个工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此系统的指数值被设定为10,所以,如果一个系统的最后结果分数为520,意思是指此系统比基线系统运行快52 倍。 UnixBench也支持多CPU系统的测试,默认的行为是测试两次,第一次是一个进程的测试,第二次是N份测试,N等于CPU个数。这样的设计是为了以下目标: 测试系统的单任务性能 测试系统原创 2021-10-05 22:45:51 · 325 阅读 · 0 评论 -
图解 Linux 文件系统
之前我写过有关 Linux 文件系统源码分析的文章,但从源码角度分析文件系统略显枯燥(对新手不友好),所以这次主要通过图文的方式来讲解 Linux 文件系统的原理,而不用陷入源代码的深渊之中。 一、硬盘简介 在介绍文件系统前,我们先来了解一下 硬盘。 众所周知,内存在断电后数据就会丢失,所以现代计算机都通过 硬盘 来进行数据存储。也就是说,硬盘中的数据在断电后依然能够保存下来。 现在比较流行的硬盘分为:机械硬盘(HDD) 和 固态硬盘(SSD)。由于本文重点介绍的对象是 文件系统,所以对于硬盘的原理就不进行转载 2021-06-03 14:12:14 · 382 阅读 · 0 评论 -
进程的表现形式
进程的表现形式 1.进程生命周期 运行:该进程此刻正在执行。 等待:进程能够运行,但没有得到许可,因为CPU分配给另一个进程。调度器可以在下一次 任务切换时选择该进程。 睡眠:进程正在睡眠无法运行,因为它在等待一个外部事件。调度器无法在下一次任务切换 时选择该进程。 2.进程表示 include/linux/sched.h中有结构体struct task_struct;表示了进程的所有信息。 struct task_struct { volatile long state; /* -1表示不可运原创 2021-03-18 16:40:14 · 457 阅读 · 0 评论 -
tiny4412通过串口连接到ubuntu来调试
使用串口转USB线,连接主机, 在主机设备管理器会显示端口。 看是com几。 一会虚拟机要用。 在虚拟机中添加串口。 选择从物理主机获取串口。 在虚拟机中连接串口。 对应的/dev/ttyS1 对应 COM1 。 数字是对应的。 然后使用minicom -s设置串口为ttyS1 。 然后minicom启动。 重启开发板 就能看到串口的消息。 ...原创 2020-03-07 18:55:42 · 498 阅读 · 0 评论 -
Linux内核设计与实现(进程管理)
Linux内核设计与实现—>进程管理 进程描述符和任务结构 进程间通信 1.管道: 1.有名管道 特性 特点:1、可以用于不同进程间通信,不限于必须有亲缘关系。 有名管道的使用 1、管道的创建 =====》mkfifo int mkfifo(const char * filename,mode_t mode); 功能:通过该函数可以创建一个有名管道的设备文件出来。 参数:fil...原创 2018-09-30 17:42:52 · 256 阅读 · 0 评论