用 C 语言实现操作系统

  • Post author:
  • Post category:其他


码农都懂的一句话:C 语言无所不能,什么都能搞。把 C 学好,上手其他语言也会事半功倍。因为热爱 C 语言,所以才有了这篇 Chat 。

一直以来,我们学习线程切换与调度,都是通过阅读操作系统书籍或 Linux 源码甚至反汇编 Window 内核代码。无论怎样,这些东西都很抽象,学习起来十分困难。
在这里插入图片描述

另外,随着现代化编程语言逐渐流行,C++20 的正式发布,都离不开用户态线程这些基础知识。再比如 Golang 的 Goroutine,腾讯公司的开源的 libco,百度的 BRPC 中的 bthread,如果想深刻理解它们,都需要扎实的基本功。

本文会带你循序渐近的掌握以下知识点:

控制流切换原理

上下文切换

线程设计

调度函数的封装与代码模块化

线程的主动切换

时间片轮转调度

本文实验环境:

ubuntu 16.04 32 位操作系统(读者请务必提前安装好);

挑选一个你自己觉得好用的虚拟机软件,比如 VMWare;

请把你的虚拟机环境配置成单核 CPU

回归正文,我为什么要使用 32 位系统?因为方便初学者学习,也能更快速的掌握原理。

需要注意的是,本文的代码,并没有使用操作系统为我们提供的 pthread 系列函数,thread_create 和 threa



版权声明:本文为weixin_42976659原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。