深入理解 Linux OS
文章平均质量分 96
深入理解Linux OS
城中之城
这个作者很懒,什么都没留下…
展开
-
操作系统导论(1.0)
我们先来思考一个问题,什么是操作系统,为什么要有操作系统?我们通过对操作系统发展历史的研究以及对Linux内核实现的深入研究发现,操作系统的存在就是为了一个目的,就是为了运行程序,如果再加个形容词的话,那就是多快好省地运行程序。为了实现这个目的,操作系统提供了两个作用:1.操作系统是一个更加高级的抽象计算机,2.操作系统是计算机资源管理器。.........原创 2022-08-01 22:15:36 · 2128 阅读 · 0 评论 -
深入理解Linux进程调度(0.4)
什么是调度?调度是CPU资源管理器。操作系统的作用之一就是系统资源管理器。CPU是计算机系统中最重要的资源,当然也要管理。所有进程的运行都需要CPU,对CPU该如何管理呢?对于直接共享型的事物,我们有两种管理方法一种是时间分割管理,另一种是空间分割管理。由于CPU自身的特性,没有空间分割相似性,只有时间分割相似性,所以我们只能对CPU进行时间分割管理。对CPU进行时间分割管理的具体做法就叫做进程调度。..............................原创 2022-08-01 22:00:41 · 2870 阅读 · 0 评论 -
深入理解Linux内存管理(0.3)
内存是计算机最重要的资源之一,内存管理是操作系统最重要的任务之一。内存管理并不是简单地管理一下内存而已,它还直接影响着操作系统的风格以及用户空间编程的模式。可以说内存管理的方式是一个系统刻入DNA的秉性。既然内存管理那么重要,那么今天我们就来全面系统地讲一讲Linux内存管理。外存是程序存储的地方,内存是进程运行的地方。外存相当于是军营,内存相当于是战场。选择一个良好的战场才有利于军队打胜仗,实现一个完善的内存管理机制才能让进程多快好省地运行。如何更好地实现内存管理一直是操作系统发展的一大主题。.....原创 2022-07-27 10:15:41 · 1964 阅读 · 3 评论 -
深入理解Android图形系统(0.2)
图形系统是计算机中最重要的子系统之一。我们平时使用的电脑、手机都是图形界面的。对于普通人来说,没有图形界面的计算机几乎是没法用的,今天我们就来讲一讲图形系统背后的原理。原创 2022-07-18 22:33:40 · 1187 阅读 · 0 评论 -
深入理解Linux电源管理(0.2)
计算机运行在物理世界中,物理世界中的一切活动都需要消耗能量。能量的形式有很多种,如热能、核能、化学能等。计算机消耗的是电能,其来源是电池或者外电源。原创 2022-07-18 22:00:37 · 745 阅读 · 0 评论 -
深入理解Linux系统调用与API(0.9)
内核为了向用户空间提供服务,设计出了系统调用机制,系统调用机制可以让用户空间调用内核里的某些特定的函数。要实现系统调用机制需要有CPU提供的特殊指令才行。由于历史原因,系统调用指令在x86平台上不止有一个。系统调用指令的作用是把CPU模式切换到特权模式、让CPU跳到指定的入口函数来执行,并把用户空间提供的系统调用编号和参数传递进内核。入口函数根据系统调用编号调用相应的函数并传递参数,执行完毕后再返回用户空间。我们一般情况下并不会直接使用系统调用,操作系统为我们提供了非常丰富的API,用起来更方便。.....原创 2022-07-14 23:03:07 · 1188 阅读 · 1 评论 -
深入理解Linux进程管理(1.0)
在本文中我们学习了进程的基本概念,知道了进程在Linux上是怎么实现的,也明白了进程的各个生命周期的活动。下面我们再来看一下进程的实现图,回顾一下在Linux中没有严格的进程线程之分,内核没有实现进程控制块,只有一个task_struct,它既是线程又是进程的代理。当进程的第一个线程创建的时候,此时进程被创建,进程相应的资源结构体会被创建。当进程的最后一个线程死亡的时候,进程相应的所有资源都会被释放,进程就死亡了。.....................原创 2022-07-14 22:54:06 · 1282 阅读 · 4 评论 -
深入理解Linux中断机制(0.6)
中断是计算机中非常重要的功能,其重要性不亚于人的神经系统加脉搏。虽然图灵机和冯诺依曼结构中没有中断,但是计算机如果真的没有中断的话,那么计算机就相当于是半个残疾人。今天我们就来全面详细地讲一讲中断。...............原创 2022-07-13 02:52:53 · 2286 阅读 · 5 评论 -
深入理解Linux时间子系统(0.7)
我们住在空间里,生活在时间中。时间对我们来说是既熟悉又陌生。熟悉是因为我们每天都在时间的驱动下忙碌着,陌生是因为我们从来没有停下来认真思考过时间是什么。我们先从对时间的使用需求开始说起。我们对使用时间有三种需求:知时、定时和计时。...............原创 2022-07-13 02:51:10 · 1505 阅读 · 1 评论 -
深入理解Linux信号机制(1.0)
相信大家对信号并不陌生,很多人都用过kill命令或者Ctrl+C组合键杀死过进程,或者遇到过程序因为收到SIGSEGV信号而崩溃的。而对信号的基本原理,估计很多人都不太了解,今天我们就来详细讲解一下。信号机制是UNIX系统最古老的机制之一,它不仅是内核处理程序在运行时发生错误的方式,还是终端管理进程的方式,并且还是一种进程间通信机制。信号机制由三部分构成,首先是信号是怎么产生的,或者说是谁发送的,然后是信号是怎么投递到进程或者线程的,最后是信号是怎么处理的。..................原创 2022-07-05 00:48:32 · 2746 阅读 · 5 评论 -
深入理解Linux进程间通信(1.0)
什么是进程间通信?为什么要有进程间通信?为什么能进程间通信?原创 2022-07-05 00:39:38 · 830 阅读 · 0 评论 -
深入理解Linux自旋锁(1.0)
旋锁是Linux内核里最常用的锁之一,自旋锁的概念很简单,就是如果加锁失败在等锁时是使用休眠等待还是忙等待,如果是忙等待的话,就是自旋锁,这也是自旋锁名字的由来。自旋锁的逻辑是,用自旋锁保护的临界区要足够小,而且临界区内是不能休眠的。所以当自旋锁加锁失败时,说明有其它的临界区正在执行中。由于自旋锁的临界区足够小且不会休眠,所以我们可以自旋忙等待其它临界区的退出,没必要去休眠,因为休眠要做一大堆操作。..............................原创 2022-06-28 07:03:53 · 1627 阅读 · 2 评论 -
深入理解Linux线程同步(1.0)
我们在工作中会经常遇到线程同步,那么到底什么是线程同步呢,线程同步的本质是什么,线程同步的方法又有哪些,为什么会有这些方法呢?原创 2022-06-28 06:41:20 · 1257 阅读 · 5 评论