原 《Linux内核分析》小节

笔者作为通信工程的学生,在学习这门课之前虽然会用Linux完成一些简单的任务,但却从没有接触过这个操作系统的内在之美。之前学完C语言的时候,就想认识这个神秘的Linux内核了,可是一直在数学建模和各种活动中抽不开身,学习的过程也是不得其法。直到我看到孟宁老师的《Linux内核分析》这门课时,我想我大概可以在二十年后吹牛了:“当年我大二,读Linux内核源码的时候.....”

只是在学习的过程中,没有找到合适的参考书,导致复习有些困难。到了第六、七周早早的把视频看完,周末想写博客的时候却记不起来了。与其参考别人的博文拼凑出一片,我觉得倒不如不写吧。

下面是学习这门MOOC的过程中写的6篇博文:

汇编一个简单的C程序

说到计算机,大家都知道现代计算机都是由冯诺依曼体系结构组成的,也就是储存程序计算机。让我先从它的工作模型说起。

通过一个简单的时间片轮转多道程序内核代码,分析linux操作系统

mykernel是一个基于Linux 3.9.4的内核模拟程序,通过观察软件模拟的操作系统运行过程可以帮助我们理解操作系统的进程工作、调度机制。

跟踪分析Linux系统的启动过程

MenuOS是一个基于Linux 3.18.6内核的微型操作系统,本文使用gdb来观察系统的启动过程,至init进程被启动为止。

Linux下嵌入汇编代码调用API

在Linux系统下,我们不仅可以通过API,还可以直接使用系统调用号来进行系统调用。本文简要介绍了fork函数,进而使用C代码内嵌汇编代码的形式直接进行系统调用,并与直接使用API进行调用的C代码进行对比。

分析system_call的中断处理过程

本文在原有MenuOS的基础上添加了fork和fork-asm命令,再使用gdb跟踪调试,最后分析了Linux系统调用从system_call开始到iret结束之间的整个过程。

浅谈Linux进程调度过程

在操作系统运行过程中,由于CPU bound和I/O bound,进行进程的调度自然是常事。进行进程调度时,操作系统使用某些特定算法(如FIFO、SCBF、轮转法等)在进程队列中选出一个进程作为下一个运行的进程,调用schedule。

----------------------------------------------------------------------------------------------------------

从来没觉得内核距离自己这么近。老师还曾批评过我说学Linux内核有些“不务正业”,但我觉得在这门MOOC中学习到的是系统底层的“内功心法”,学会了这些,再去学各种上层的知识也更加得心应手了。

陈政/arc001    原创作品转载请注明出处  《Linux内核分析》MOOC课程

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏美团技术团队

服务容错模式

背景 随着美团点评服务框架和服务治理体系的逐步成熟,服务化已成为公司内部系统设计的趋势。本着大系统小做、职责单一的原则,我们度假技术团队对业务系统进行了不少服务...

4394
来自专栏架构师小秘圈

日订单50万级分布式事务

作者:伈情,喜玩Java、Python、Golang!热爱架构设计、SOA、微服务、高并发、分布式、性能优化、DevOps、大数据、消息队列等....!在互联网...

8358
来自专栏java架构师

学习 WCF (1)--基础篇

  Windows Communication Foundation (WCF)是一个面向服务编程的综合分层架构。该架构的顶层称为服务模型层(Service M...

2769
来自专栏做全栈攻城狮

程序员带你学习安卓开发-安卓基础之网络编程 大汇总

本系列教程致力于可以快速的进行学习安卓开发,按照项目式的方法,通常一篇文章会做一个小程序。提高学习的兴趣。

974
来自专栏游戏杂谈

移动APP的IM后台架构浅析

IM(InstantMessaging 即时通讯)作为一项基础功能,很多APP都有,比如:手机QQ、微信、易信、钉钉、飞信、旺旺、咚咚、陌陌等。而IM如同我们日...

4512
来自专栏ytkah

“我的小程序”来了 新版微信v6.7.1下拉就能找到

  今天iOS版微信迎来v6.7.1正式版发布,本次升级主要是可以把常用的小程序添加到“我的小程序”。近期版本微信可以直接浏览订阅号的消息,扫一扫可拍照翻译整页...

782
来自专栏Linuxer的专栏

宋宝华:LEP ( Linux 易用剖析器) 是什么,为什么以及怎么办 ( 2 )

LEP 是 Linuxer 之 LEP 项目组正在致力于打造的一个开源项目,LEP 项目组欢迎开源爱好者加入和参与。这是 LEP 文档《 LEP 是什么,为什...

1910
来自专栏Petrichor的专栏

csdn: 添加站内搜索框

CSDN博客 对我来说是一个很重要的 Online Notebook,我日常会把每天新学到的东西都记录下来以方便将来查阅。

2422
来自专栏zingpLiu

海量日志实时收集系统架构设计与go语言实现

日志收集系统应该说是到达一定规模的公司的标配了,一个能满足业务需求、运维成本低、稳定的日志收集系统对于运维的同学和日志使用方的同学都是非常nice的。然而这时理...

1352
来自专栏大魏分享(微信公众号:david-share)

浅谈业内各种主流双活存储技术,以及开源的HA/DR方案

声明 本文为笔者根据自身的项目经验,以及参考大量文档书写而成。文中提到很多厂商的解决方案和概念,第一不方案之间的优劣评判,第二不进行厂商间的相互攻击,第三文中仅...

5236

扫码关注云+社区

领取腾讯云代金券