Blogs

Linux内核之旅参与开源软件供应链点亮计划暑期2020项目活动

由 薛晓雯编辑 | 3400字 | 阅读大约需要7分钟 | 归档于社区

2020年6月9日

Linux内核之旅开源社区的社区负责人梁金荣和社区项目负责人赵晨雨参与开源软件供应链点亮计划暑期 2020 项目活动的直播。

继续阅读

Pthread

| 5600字 | 阅读大约需要12分钟 | 归档于文件系统

2020年6月8日

本文从三个方面讲述进程线程的那些事儿,先介绍了由线程引发的概述,接着讲述了进程在Linux内核中的角色扮演,最后从实践理解基本原理。

继续阅读

Linux系统调用

| 9600字 | 阅读大约需要20分钟 | 归档于电子杂志

2020年6月7日

本期重点和大家讨论系统调用机制。其中涉及到了一些及系统调用的性能、上下文深层问题,同时也穿插着讲述了一些内核调试方法。并 且最后试验部分我们利用系统调用与相关内核服务完成了一个搜集系统调用序列的特定任务,该试验具有较强的实用和教学价值。

继续阅读

eBPF内核探测中将任意系统调用转换成事件

由 梁金荣 | 1900字 | 阅读大约需要4分钟 | 归档于eBPF

2020年6月7日

Linux 4.4 以上内核基于 eBPF 可以将任何内核函数调用转换成可带任何数据的用户空间事件。程序采集系统相关参数时,通常有两种方式。一种是程序主动去轮询,检查系统变化,即 poll 模型;另一种是系统主动通知程序,即 push 模型。使用 poll 模型还是 push 模型取决于具体的问题。通常情况下,如果事件频率相对于事件处理时间来说比较低,那 push 模型比较合适;如果事件频率很高,就采用 pull 模型。例如,通常的网络驱动会等待网卡事件,而 dpdk 这样的框架会主动 poll 网卡, 以获得最高的吞吐性能和最低的延迟。理想情况下,我们需要一个通用的方式处理事件,具体做法请看此篇。

继续阅读

Linux内存管理

由 Jinrong | 11200字 | 阅读大约需要23分钟 | 归档于电子杂志

2020年6月7日

本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。

继续阅读

双刃剑

由 王聪 | 7300字 | 阅读大约需要15分钟 | 归档于新手上路

2020年6月7日

Jim Gettys,X Window系统的最初作者之一,递交的一篇非常有深度的社论,涉及X Window系统和它可能的将来。

继续阅读

CFS 调度器

由 马明慧 | 5500字 | 阅读大约需要11分钟 | 归档于进程管理

2020年6月6日

调度器是OS的核心部分,说白了就是CPU时间的管理员。调度器主要是负责某些就绪的进程来执行,不同的调度器根据不同的方法挑选出最适合运行的进程。通过查阅资料,目前Linux支持的调度器有RT scheduler、Deadline scheduler、CFS scheduler及Idle scheduler等。

继续阅读

内核中的调度与同步

由 马明慧整理 | 8700字 | 阅读大约需要18分钟 | 归档于电子杂志

2020年6月6日

本章将为大家介绍内核中存在的各种任务调度机理以及它们之间的逻辑关系(这里将覆盖进程调度、推后执行、中断等概念),在此基础上向大家解释内核中需要同步保护的根本原因和保护方法。最后提供一个内核共享链表同步访问的例子,帮助大家理解内核编程中的同步问题。

继续阅读

中断下半部-工作队列

| 1700字 | 阅读大约需要4分钟 | 归档于中断机制

2020年6月6日

工作队列(work queue)是另外一种将中断的部分工作推后的一种方式,它可以实现一些tasklet不能实现的工作,比如工作队列机制可以睡眠。

继续阅读

编写自己的Shell解释器

由 戴君毅整理 | 7800字 | 阅读大约需要16分钟 | 归档于电子杂志

2020年6月5日

本期的目的是向大家介绍 shell 的概念和基本原理,并且在此基础上动手做一个简单 shell 解释器。同时,还将就用到的一些 linux 环境编程的知识做一定讲解。

继续阅读