Linux
文章平均质量分 88
ljyyyyyyyyy
随便就好啦
展开
-
用Linux5.0的视角看《Linux内核设计与实现》——(四)内存管理
在看完了内核中的进程管理,接下来我们看看内存管理——操作系统的另一大块,个人觉得当你对进程管理和内存管理都有一定的了解后,对“内核”这一词就会有一个比较清晰的概念。12.1 页(page)页,是内核管理物理内存的基本单位。虽然处理器处理内存可以以字节为单位,但是一般来讲在处理器和物理内存之间,还存在着一个处理单元,我们称之为内存管理单元(MMU),主要负责虚拟地址到物理地址的转换。(关于为什么我们总是需要一个MMU在CPU和物理内存之间,这是计算机系统设计的一个总要知识,挖坑中……)在内核中,用str原创 2021-10-24 23:01:13 · 2602 阅读 · 1 评论 -
用Linux5.0的视角看经典《Linux内核设计与实现》——(三)进程调度的实现
接着上一篇文章。4.5 Linux调度的实现4.5.1 时间记账在前面的实现原理中讲到,每个进程被调度执行的时候是以时间片为单位的,当进程的时间片减少到0的时候,就会被停止执行,调度到其他进程中。在真正的代码实现里面,其实是用vruntime来记录的。调度实体(struct sched_entity)在调度器初始化的章节就提到了调度实体,进程可运行的时间便是记录在这个实体里面。虚拟实时(vruntime)vruntime是在调度实体里面的一个成员,存放了进程的虚拟运行时间,该运行时间并不是真原创 2021-09-12 21:26:22 · 403 阅读 · 0 评论 -
用Linux5.0的视角看《Linux内核设计与实现》——(二)进程调度
第四章 进程调度在前一章讲到内核是怎么管理进程的,进程的信息都是怎么在内存中保存和维护,这一章将会讨论这些进程是如何在操作系统的管理下有条不紊地运行的。4.1 多任务从操作系统的角度出发,多任务操作系统就是能同时并发地交互执行多个进程的操作系统。要明白的是,以单CPU系统为例,在某一特定时刻只会有一个进程真正被执行,都处于其他状态。多任务系统弄个可以分为两类:非抢占式多任务(cooperative multitasking)和抢占式多任务(preemptive multitasking)。所有的类U原创 2021-08-22 11:57:40 · 457 阅读 · 0 评论 -
用Linux5.0的视角看《Linux内核设计与实现》——(一)进程管理
趁新买的硬件还在路上,给自己再挖一个新坑。之前一直很喜欢《Linux Kernel Development》这本书,这本书写得简洁明了,而又章章经典,中译本仅300多页,把整个Linux Kernel的基本设计框架讲解得明明白白。虽说经典永远都是经典,但毕竟当时的内核只发行到2.6版本,而经过广大开源开发者的贡献,内核现在已经发展到5.13版了。书中的内容有哪些已经被改得天翻地覆,又有哪些经典永存呢?想到这里,突然觉得重温这本书和对照现在的代码会是一件十分有趣的事情。这就是大概为什么我会开始这个新坑。所有内原创 2021-07-31 11:26:50 · 217 阅读 · 0 评论 -
【Linux】LDD3中sbull源码编译问题梳理
LDD3,linux设备驱动第三版用的内核是2.6.10,在编译的时候我用的是2.6.322.6.32相比2.6.10在块设备驱动上,简直是动了大手术,编译基本满满错误,这里梳理一下我遇到全部的错误很多都是网上找的资料,只有小部分是我写的:1、包含文件错误:没有#include改法:删掉2、整一个块设备驱动的struct block_device_operation原创 2017-09-16 10:34:16 · 890 阅读 · 0 评论 -
【Linux】LDD学习笔记——操作硬件——IO内存
原文出处:http://blog.chinaunix.net/uid-25014876-id-80627.htmlxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx在之前章节的驱动,都没有对硬件进行操作,接写来将从我之前学的裸板驱动开始,讲解在lin转载 2017-07-02 23:51:02 · 690 阅读 · 0 评论 -
【Linux】我的第一个驱动程序——scull字符设备驱动
我的第一个驱动程序,其实基本上都是抄的,只是结合自己的理解把它们都拼起来。参考资料:《Linux设备驱动程序(第三版)》(Linux Device Driver, LDD)原创 2017-05-27 13:51:03 · 1126 阅读 · 0 评论 -
【Linux】linux源码Makefile的详细分析
众多的资料(《嵌入式Linux应用开发完全手册》、Documentation/kbuild/makefiles.txt)已经向我们展示了一个初级Linux用户者应该懂得的知识--怎样添加需要编译的文件、添加编译的规则、多个源文件构成一个目标文件的情况等。 但是,一种“找到真相”的冲动迫使我想了解Linux内核编译的整个过程是怎样的。为此,查了很多资料,发现《深度探索Linux操作系统:系统构建和原理解析》一文的第三章对该问题有很详细的论述。 经过一番分析,也有自己的想法,写于此。本文主要讨论的是转载 2017-04-07 22:51:46 · 1406 阅读 · 0 评论 -
【Linux】Subversion/SVN学习笔记2
这篇博客用于记录Windows下得SVN客户端使用流程。原创 2017-03-22 11:11:50 · 608 阅读 · 0 评论 -
【Linux】Subversion/SVN学习笔记
Subversion/SVN学习笔记原创 2017-02-23 17:49:32 · 393 阅读 · 0 评论 -
【Linux】CD管理应用程序
看完Neil和Richard的《Linux程序设计》,根据书中的例子,自己写了一个简化版的CD管理应用程序。主要用到了几个在书中讲到的知识点:1.采用C/S模式,在同一机子上运行;2.用curses作为客户端显示接口;3.数据用MySQL存储;4.进程间通讯使用命名管道。写完下来总共900行左右的代码吧,断断续续不知道写了多久,感受还是挺深刻的,中途出了很多问题,也原创 2016-11-07 23:23:41 · 630 阅读 · 0 评论