- 博客(20)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 操作系统导论(1.0)
我们先来思考一个问题,什么是操作系统,为什么要有操作系统?我们通过对操作系统发展历史的研究以及对Linux内核实现的深入研究发现,操作系统的存在就是为了一个目的,就是为了运行程序,如果再加个形容词的话,那就是多快好省地运行程序。为了实现这个目的,操作系统提供了两个作用:1.操作系统是一个更加高级的抽象计算机,2.操作系统是计算机资源管理器。.........
2022-08-01 22:15:36
2179
原创 深入理解Linux进程调度(0.4)
什么是调度?调度是CPU资源管理器。操作系统的作用之一就是系统资源管理器。CPU是计算机系统中最重要的资源,当然也要管理。所有进程的运行都需要CPU,对CPU该如何管理呢?对于直接共享型的事物,我们有两种管理方法一种是时间分割管理,另一种是空间分割管理。由于CPU自身的特性,没有空间分割相似性,只有时间分割相似性,所以我们只能对CPU进行时间分割管理。对CPU进行时间分割管理的具体做法就叫做进程调度。..............................
2022-08-01 22:00:41
3010
原创 深入理解Linux内存管理(0.3)
内存是计算机最重要的资源之一,内存管理是操作系统最重要的任务之一。内存管理并不是简单地管理一下内存而已,它还直接影响着操作系统的风格以及用户空间编程的模式。可以说内存管理的方式是一个系统刻入DNA的秉性。既然内存管理那么重要,那么今天我们就来全面系统地讲一讲Linux内存管理。外存是程序存储的地方,内存是进程运行的地方。外存相当于是军营,内存相当于是战场。选择一个良好的战场才有利于军队打胜仗,实现一个完善的内存管理机制才能让进程多快好省地运行。如何更好地实现内存管理一直是操作系统发展的一大主题。.....
2022-07-27 10:15:41
2095
3
原创 深入理解Android图形系统(0.2)
图形系统是计算机中最重要的子系统之一。我们平时使用的电脑、手机都是图形界面的。对于普通人来说,没有图形界面的计算机几乎是没法用的,今天我们就来讲一讲图形系统背后的原理。
2022-07-18 22:33:40
1216
原创 深入理解Linux电源管理(0.2)
计算机运行在物理世界中,物理世界中的一切活动都需要消耗能量。能量的形式有很多种,如热能、核能、化学能等。计算机消耗的是电能,其来源是电池或者外电源。
2022-07-18 22:00:37
783
原创 深入理解Linux系统调用与API(0.9)
内核为了向用户空间提供服务,设计出了系统调用机制,系统调用机制可以让用户空间调用内核里的某些特定的函数。要实现系统调用机制需要有CPU提供的特殊指令才行。由于历史原因,系统调用指令在x86平台上不止有一个。系统调用指令的作用是把CPU模式切换到特权模式、让CPU跳到指定的入口函数来执行,并把用户空间提供的系统调用编号和参数传递进内核。入口函数根据系统调用编号调用相应的函数并传递参数,执行完毕后再返回用户空间。我们一般情况下并不会直接使用系统调用,操作系统为我们提供了非常丰富的API,用起来更方便。.....
2022-07-14 23:03:07
1220
1
原创 深入理解Linux进程管理(1.0)
在本文中我们学习了进程的基本概念,知道了进程在Linux上是怎么实现的,也明白了进程的各个生命周期的活动。下面我们再来看一下进程的实现图,回顾一下在Linux中没有严格的进程线程之分,内核没有实现进程控制块,只有一个task_struct,它既是线程又是进程的代理。当进程的第一个线程创建的时候,此时进程被创建,进程相应的资源结构体会被创建。当进程的最后一个线程死亡的时候,进程相应的所有资源都会被释放,进程就死亡了。.....................
2022-07-14 22:54:06
1382
4
原创 深入理解Linux中断机制(0.6)
中断是计算机中非常重要的功能,其重要性不亚于人的神经系统加脉搏。虽然图灵机和冯诺依曼结构中没有中断,但是计算机如果真的没有中断的话,那么计算机就相当于是半个残疾人。今天我们就来全面详细地讲一讲中断。...............
2022-07-13 02:52:53
2391
5
原创 深入理解Linux时间子系统(0.7)
我们住在空间里,生活在时间中。时间对我们来说是既熟悉又陌生。熟悉是因为我们每天都在时间的驱动下忙碌着,陌生是因为我们从来没有停下来认真思考过时间是什么。我们先从对时间的使用需求开始说起。我们对使用时间有三种需求:知时、定时和计时。...............
2022-07-13 02:51:10
1661
1
原创 深入理解Linux信号机制(1.0)
相信大家对信号并不陌生,很多人都用过kill命令或者Ctrl+C组合键杀死过进程,或者遇到过程序因为收到SIGSEGV信号而崩溃的。而对信号的基本原理,估计很多人都不太了解,今天我们就来详细讲解一下。信号机制是UNIX系统最古老的机制之一,它不仅是内核处理程序在运行时发生错误的方式,还是终端管理进程的方式,并且还是一种进程间通信机制。信号机制由三部分构成,首先是信号是怎么产生的,或者说是谁发送的,然后是信号是怎么投递到进程或者线程的,最后是信号是怎么处理的。..................
2022-07-05 00:48:32
2827
5
原创 深入理解Linux自旋锁(1.0)
旋锁是Linux内核里最常用的锁之一,自旋锁的概念很简单,就是如果加锁失败在等锁时是使用休眠等待还是忙等待,如果是忙等待的话,就是自旋锁,这也是自旋锁名字的由来。自旋锁的逻辑是,用自旋锁保护的临界区要足够小,而且临界区内是不能休眠的。所以当自旋锁加锁失败时,说明有其它的临界区正在执行中。由于自旋锁的临界区足够小且不会休眠,所以我们可以自旋忙等待其它临界区的退出,没必要去休眠,因为休眠要做一大堆操作。..............................
2022-06-28 07:03:53
1681
2
原创 深入理解Linux线程同步(1.0)
我们在工作中会经常遇到线程同步,那么到底什么是线程同步呢,线程同步的本质是什么,线程同步的方法又有哪些,为什么会有这些方法呢?
2022-06-28 06:41:20
1291
5
原创 深入理解编译系统(0.1)
什么是编译器?为什么要有编译器?编译器的作用是什么?编译系统的组成部分有哪些,它们之间的关系是什么?有一句名言说的非常好:了解一件事情最好从它的历史开始。要想对整个编译系统有个全面透彻地理解,我们就必须要先去认真研究它的发展历史。.....................
2022-06-21 03:25:24
744
1
原创 深入理解红黑树(1.0)
大家都听说过红黑树,也都知道红黑树很厉害,是计算机里面评价非常高的数据结构。但是每当想学习红黑树的时候,却总是找不到通俗易懂很好理解的学习资料。很多书上上来就是红黑树的定义,然后就是红黑树的实现,直接就把人给整晕了。光看红黑树的定义就有5条,为什么要有5条定义,为什么要这么定义,这么定义是什么意思,光定义都让人懵了,更别说实现了。我看最近抖音上有很多人在讲底层逻辑,只要你掌握了底层逻辑,其他的问题都不在话下,今天我们也来讲一讲红黑树的底层逻辑。................................
2022-06-14 03:29:37
725
原创 深入理解排序算法(1.0)
排序是数据结构与算法里面最基础最入门的内容,虽然简单,但是深入研究的话里面还是有很多内容的,今天我们来全面详细的讲一讲各种排序算法的分类、原理、复杂度、稳定性和实现方法。
2022-06-14 03:25:31
638
Linux早期版本源码下载(0.01-2.0.1)
2022-08-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人