![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux深度学习
文章平均质量分 93
charlie114514191
这个作者很懒,什么都没留下…
展开
-
如何现代的编译和安装内核
本文是在阅读书目时找到了一篇非常高质量的文章。的原文是英文,现在我自己手头翻译了一下,发布到这里。原创 2024-07-01 17:44:43 · 862 阅读 · 0 评论 -
Linux 用户进程启动与Systemd
我们都知道,Linux在内核的初始化自身的流程结束后,就会将程序流的运行转到用户态,也就是进入init进程流之后,他会按照这个流程进行初始化:init进程初始化基础的底层服务:比如说udevd和syslogd网络配置中高层服务,比如说cron和一些打印服务乱七八糟的登录会话。原创 2024-05-09 16:58:06 · 465 阅读 · 0 评论 -
内核同步机制I
详细地讲就是进程A需要拿到B的锁才能够释放锁B,但是另一个进程B想要释放锁B就必须拿到A进程现在持有的锁A。然而,在确实提升了效率的同时,这样的举措也埋下了一些对数据访问同步的隐患:即我们应该如何保证多个线程访问到的数据都是最新而且有效的呢?只有在当我们访问共享数据(比如说去全局变量等),多个进程或者线程确实在访问同一个内存处的时候的需要我们才需要考虑它的一致性问题(一个进程更改了,其他的进程也要刷新对之的读取!任何进程都必须遵循这个顺序获取多个锁,这样的话想要获取后面的锁,必须先拿到前面的锁!原创 2024-04-26 11:39:35 · 501 阅读 · 0 评论 -
8. 中断下半页 与 延迟处理
(偷个懒:这里不将怎么用hhh)我们现在开始考虑中断的部分了。我们直到处理设备(不管是CPU自己的还是外部设备的)的中断是操作系统的一个重要任务。我们说中断是异步的——我们不知道何时会来中断:一旦来了,就会打断当前的执行上下文督促操作系统进行处理,同样的,还不可以滞留过久,否则将会影响用户的体验注意到:我们更青睐于那些可以被中断的中断(Interrruptable Interrupt),也就是那些一旦发生了其他中断我们仍能接受并处理而不是丢失,比起来,那些屏蔽了中断的中断则很有可能会导致中断的丢失。原创 2024-04-23 13:20:45 · 784 阅读 · 0 评论 -
中断与中断处理句柄
操作系统的一个重要的内容就是进行硬件的管理:比如说我现在写这边文章,cv其他博主的文章片段(划)。我就用到了至少明显的鼠标和键盘,我们的操作需要就需要处理这些设备发出来的中断。(可以直到的是这些操作都是异步的,换而言之,我的操作系统没法确切的知道,他只会突然被硬件或者是什么拍醒:嘿!处理我!原创 2024-04-23 12:58:41 · 658 阅读 · 0 评论 -
6.系统内核数据结构
Linux内核的四种数据结构原创 2024-04-22 12:07:22 · 641 阅读 · 0 评论 -
Linux - 系统调用
操作系统为底层的硬件架构与上层的应用层进程之间提供了一个抽象。那么这个抽象是如何体现的呢?之前我们谈到过操作系统实际上就是代之应用软件向底层的硬件提出需求。这种代理方式就是向用户层提供一个系统调用。(System Call)这样搞,我们可以有效的防止一个进程随意的使用硬件,侵占其他进程的找资源和破坏系统整体的运行。原创 2024-04-21 11:27:40 · 875 阅读 · 1 评论 -
Linux进程调度
更新一下这个系列啥是进程调度呢?简单的讲就是决定进程之间,如何和谐高效的在一起工作——对于进程自己而言,也就是自己何时被选中执行,何时被暂时停止让出CPU等行为。进程调度是一个并发操作系统的概念,我们这里首先需要引入并发操作系统(原创 2024-04-12 09:28:19 · 722 阅读 · 0 评论 -
Linux进程管理(下)
一个Linux流行的线程的抽象手段就是复用创建进程的流程,他们被设置上共享一些数据结构,打开的文件等操作,对于那些拥有多核的机器,并发程序确实让我们有了真正意义上的并发执行。仔细思考。我们复用创建进程的流程是合理的——它们本质上都是做一些工作,只是线程之间更加注重一些数据结构的共享和进程之间的协作。所以在Unix下,不妨认为线程就是轻量级的进程。原创 2024-04-08 09:24:35 · 707 阅读 · 0 评论 -
Linux 内核学习:进程管理(上)
我们的开头就是阐述Linux的进程管理。进程是Unix下的一个极其重要的(事实上,也是学习操作系统不可能绕开的话题)的一个抽象。这段话我相信任何上过操作系统课程的人都会很熟悉进程是那些正在活动的二进制程序。对于多线程应用程序随处可见的时代,进程如今也被认为是系统分配任务资源的最小单位,而真正执行的程序流则是线程(Threads),也就是那些真正在干活的程序流(所以对于只存在一个线程的进程被称为单线程的应用程序,反之是多线程的应用程序,其从事编写这样的多线程的程序活动也就被称为并发编程)。原创 2024-04-05 18:31:15 · 966 阅读 · 1 评论 -
Linux内核导览与简史
UNIX简史我们必须先提一嘴Unix操作系统的简史:1964年贝尔实验室(Bell Labs)、通用电气(General Electric)和麻省理工学院(MIT)联合启动研发第二代分时操作系统MULTICS(Multiplexed Information and Computing Service)(注:MULTICS正式研制始于1965年)1969年,贝尔实验室研究人员Ken Thompson(对,C语言的发明者之一)在退出MULTICS项目时,准备将原本在MULTICS系统上开发的“sta原创 2024-04-03 10:43:55 · 1015 阅读 · 1 评论 -
Linux学习——小引
这子篇博客是个人笔记在Linux系统的全流程笔记的小引,也是这个系列的导览。这组博客将会从常用的Linux操作(以Arch为例)。如果是从0开始阅读我的博客,可以考虑按照基础的Linux使用更加通用的操作系统概念计算机组成原理Linux内核架构的顺序进行阅读,从看得见,摸得着,使用的最多的部分进行阅读。这里我们大胆的假设您的C语言基础功底尚可,关于疑难的部分将会给出相关的解释。原创 2024-04-03 10:43:09 · 596 阅读 · 1 评论