趣谈Linux操作系统 / 像故事一样的操作系统入门课
刘超
网易杭州研究院云计算技术部首席架构师
 
  • 课程目录
  • 课程介绍
  • 开篇词 | 为什么要学习Linux操作系统?

    从今天开始,在接下来的四个月时间里,我会带你一步一步进入Linux操作系统的大门,让基础变成你技术生涯的左膀右臂。

  • 01 | 入学测验:你究竟对Linux操作系统了解多少?

    今天是入学第一课,我为你准备了12道小题,邀请你先来做个小测验。

  • 02 | 学习路径:爬过这六个陡坡,你就能对Linux了如指掌

    操作系统的学习过程就像爬坡,今天我就给你分享我的私家爬坡宝典。

  • 03 | 你可以把Linux内核当成一家软件外包公司的老板

    操作系统其实就像一个软件外包公司,其内核就相当于这家外包公司的老板。

  • 04 | 快速上手几个Linux命令:每家公司都有自己的黑话

    这一节,咱们介绍几个上手Linux的命令,先把Linux用起来。

  • 05 | 学会几个系统调用:咱们公司能接哪些类型的项目?

    系统调用决定了这个操作系统好用不好用、功能全不全。

  • 06 | x86架构:有了开放的架构,才能打造开放的营商环境

    在以后的讲解中,我们主要基于x86架构进行讲解,只有了解了底层硬件的基本工作原理,将来才能理解操作系统的工作模式。

  • 07 | 从BIOS到bootloader:创业伊始,有活儿老板自己上

    几乎所有成功的公司,都是从个体户模式发展壮大的,因此这一节咱们就从系统刚刚启动的个体户模式开始说起。

  • 08 | 内核初始化:生意做大了就得成立公司

    内核的初始化过程,主要做三件事情:各个职能部门的创建、用户态祖先进程的创建、内核态祖先进程的创建。

  • 09 | 系统调用:公司成立好了就要开始接项目

    站在系统调用的角度,层层深入下去,就能从某个系统调用的场景出发,了解内核中各个模块的实现机制。

  • 10 | 进程:公司接这么多项目,如何管?

    这一节我们讲,一个进程从代码到二进制,再到运行这么一个过程中发生的事儿。

  • 11 | 线程:如何让复杂的项目并行执行?

    写多线程的程序是有套路的。这节我讲创建线程的套路、mutex的使用的套路、条件变量使用的套路。

  • 12 | 进程数据结构(上):项目多了就需要项目管理系统

    无论是进程还是线程,到了内核里,都由一个统一的结构task_struct进行管理。

  • 13 | 进程数据结构(中):项目多了就需要项目管理系统

    task_struct这个结构非常长,上一节我们只是讲了一部分,今天我们解析剩下的部分。

  • 学习攻略(一):学好操作系统,需要掌握哪些前置知识?

    随着涉及的技术越来越深,很多同学觉得学习难度越来越大了,今天我讲讲我学习很难的知识的方法。

  • 14 | 进程数据结构(下):项目多了就需要项目管理系统

    如果说task_struct的其他成员变量都是和进程管理有关的,内核栈是和进程运行有关的。

  • 15 | 调度(上):如何制定项目管理流程?

    这一节我们讲调度相关的数据结构。

  • 16 | 调度(中):主动调度是如何发生的?

    一个运行中的进程会主动调用__schedule,让出CPU。

  • 17 | 调度(下):抢占式调度是如何发生的?

    上一节我们讲的主动调度是第一种方式,第二种方式是抢占式调度。什么情况下会发生抢占呢?

  • 18 | 进程的创建:如何发起一个新项目?

    fork系统调用的过程包含两个重要事件,将task_struct结构复制一份并且初始化、试图唤醒新创建的子进程。

  • 19 | 线程的创建:如何执行一个新子项目?

    创建进程和创建线程,在用户态和内核态有哪些不同?

  • 20 | 内存管理(上):为客户保密,规划进程内存空间布局

    这一节我们讲一个内存管理系统应该做的三件事情。

  • 21 | 内存管理(下):为客户保密,项目组独享会议室封闭开发

    这一节我们讲分段机制、分页机制以及从虚拟地址到物理地址的映射方式。

  • 22 | 进程空间管理:项目组还可以自行布置会议室

    一个进程要运行起来需要什么样的内存结构?

  • 23 | 物理内存管理(上):会议室管理员如何分配会议室?

    这一节我们主要讲物理内存的组织形式。

  • 24 | 物理内存管理(下):会议室管理员如何分配会议室?

    对于物理内存来讲,从下层到上层的关系及分配模式是必须要掌握的。

  • 25 | 用户态内存映射:如何找到正确的会议室?

    今天我们来分析用户态内存映射机制的几个部分。

限时拼团中,点「拼团按钮」,立即加入。

操作系统在计算机中承担着“大管家”的角色。它合理分配计算机硬件和软件资源,并处理多种基本事务,比如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等,还提供一个让用户与系统交互的操作界面。在刘超看来,Linux操作系统这个“大管家”的角色,就好比一家公司的老板

假设我们现在的目标是把这家公司做上市,怎么做呢?至少要经历以下四个发展阶段:

这样一来,你是不是就能设身处地理解到,操作系统就是协调各种资源,帮助我们成事的。你就不再局限于原有的“外部思维”,而是进入Linux内部,全方位理解计算机的工作原理,掌握程序的运行机制。如此,你的并发编程、程序设计和性能分析能力都会上升一个层次,开发效率会得到质的提升。在遇到实际问题时,你也能从系统层面出发,去编写代码和解决问题。

刘超,网易杭州研究院云计算技术部首席架构师。曾在EMC从事分布式存储系统开发,在惠普从事OpenStack的开发和架构设计,目前在网易从事容器、Kubernetes和微服务的架构工作,出版有《Lucene应用开发解密》。

2018年5月,他在极客时间开设的“趣谈网络协议”专栏,已有超过30000人订阅。这次,他将延续“趣谈”的风格,为你奉上一堂精彩的Linux操作系统基础课。

他将以Linux 4.x的内核源代码为基础,用一个完整的创业故事,配合生动详实的图片,深入剖析Linux操作系统的方方面面。他会教你快速上手Linux命令,掌握学习Linux的方法和路径,带你详细推演Linux内核的工作原理,让你对Linux操作系统的细节和全貌都有个完整的认识,并能站在一定高度去理解和优化当下的工作。

专栏分为三大模块,共52讲。

入门准备篇

这一模块首先为你精心准备了一套入门测试题,你可以检验一下自己的水平,然后根据测试结果,明确学习目标,之后再结合Linux操作系统的学习路径,设定自己的爬坡计划,为进入正式学习做好准备。

核心原理篇

将带你快速上手几个Linux命令,学会系统调用;进而讲到进程管理、内存管理、文件系统、输入输出系统;最后讲到进程间的通信、网络系统和虚拟化、容器化。带你搞清Linux操作系统的内核原理和工作机制,学习背后的程序设计和实现原理,学会从系统层面编写代码和解决问题。

实战串讲篇

将带你搭建一个操作系统实验环境,并用创业故事串起整个操作系统的知识点,帮助你复习、巩固每一模块细碎的知识点,并把它们有机地连接起来。另外,这一模块同样为你准备了一套期末测试题,帮你检验学习效果,查漏补缺,形成闭环。

限时福利

你觉得怎么样?期待您评价: