趣谈Linux操作系统
刘超
网易杭州研究院云计算技术部首席架构师
立即订阅
19393 人已学习
课程目录
已完结 72 讲
0/4登录后,你可以任选4讲全文学习。
入门准备篇 (3讲)
开篇词 | 为什么要学习Linux操作系统?
免费
01 | 入学测验:你究竟对Linux操作系统了解多少?
02 | 学习路径:爬过这六个陡坡,你就能对Linux了如指掌
核心原理篇:第一部分 Linux操作系统综述 (3讲)
03 | 你可以把Linux内核当成一家软件外包公司的老板
04 | 快速上手几个Linux命令:每家公司都有自己的黑话
05 | 学会几个系统调用:咱们公司能接哪些类型的项目?
核心原理篇:第二部分 系统初始化 (4讲)
06 | x86架构:有了开放的架构,才能打造开放的营商环境
07 | 从BIOS到bootloader:创业伊始,有活儿老板自己上
08 | 内核初始化:生意做大了就得成立公司
09 | 系统调用:公司成立好了就要开始接项目
核心原理篇:第三部分 进程管理 (10讲)
10 | 进程:公司接这么多项目,如何管?
11 | 线程:如何让复杂的项目并行执行?
12 | 进程数据结构(上):项目多了就需要项目管理系统
13 | 进程数据结构(中):项目多了就需要项目管理系统
14 | 进程数据结构(下):项目多了就需要项目管理系统
15 | 调度(上):如何制定项目管理流程?
16 | 调度(中):主动调度是如何发生的?
17 | 调度(下):抢占式调度是如何发生的?
18 | 进程的创建:如何发起一个新项目?
19 | 线程的创建:如何执行一个新子项目?
核心原理篇:第四部分 内存管理 (7讲)
20 | 内存管理(上):为客户保密,规划进程内存空间布局
21 | 内存管理(下):为客户保密,项目组独享会议室封闭开发
22 | 进程空间管理:项目组还可以自行布置会议室
23 | 物理内存管理(上):会议室管理员如何分配会议室?
24 | 物理内存管理(下):会议室管理员如何分配会议室?
25 | 用户态内存映射:如何找到正确的会议室?
26 | 内核态内存映射:如何找到正确的会议室?
核心原理篇:第五部分 文件系统 (4讲)
27 | 文件系统:项目成果要归档,我们就需要档案库
28 | 硬盘文件系统:如何最合理地组织档案库的文档?
29 | 虚拟文件系统:文件多了就需要档案管理系统
30 | 文件缓存:常用文档应该放在触手可得的地方
核心原理篇:第六部分 输入输出系统 (5讲)
31 | 输入与输出:如何建立售前售后生态体系?
32 | 字符设备(上):如何建立直销模式?
33 | 字符设备(下):如何建立直销模式?
34 | 块设备(上):如何建立代理商销售模式?
35 | 块设备(下):如何建立代理商销售模式?
核心原理篇:第七部分 进程间通信 (7讲)
36 | 进程间通信:遇到大项目需要项目组之间的合作才行
37 | 信号(上):项目组A完成了,如何及时通知项目组B?
38 | 信号(下):项目组A完成了,如何及时通知项目组B?
39 | 管道:项目组A完成了,如何交接给项目组B?
40 | IPC(上):不同项目组之间抢资源,如何协调?
41 | IPC(中):不同项目组之间抢资源,如何协调?
42 | IPC(下):不同项目组之间抢资源,如何协调?
核心原理篇:第八部分 网络系统 (7讲)
43 预习 | Socket通信之网络协议基本原理
43 | Socket通信:遇上特大项目,要学会和其他公司合作
44 | Socket内核数据结构:如何成立特大项目合作部?
45 | 发送网络包(上):如何表达我们想让合作伙伴做什么?
46 | 发送网络包(下):如何表达我们想让合作伙伴做什么?
47 | 接收网络包(上):如何搞明白合作伙伴让我们做什么?
48 | 接收网络包(下):如何搞明白合作伙伴让我们做什么?
核心原理篇:第九部分 虚拟化 (7讲)
49 | 虚拟机:如何成立子公司,让公司变集团?
50 | 计算虚拟化之CPU(上):如何复用集团的人力资源?
51 | 计算虚拟化之CPU(下):如何复用集团的人力资源?
52 | 计算虚拟化之内存:如何建立独立的办公室?
53 | 存储虚拟化(上):如何建立自己保管的单独档案库?
54 | 存储虚拟化(下):如何建立自己保管的单独档案库?
55 | 网络虚拟化:如何成立独立的合作部?
核心原理篇:第十部分 容器化 (4讲)
56 | 容器:大公司为保持创新,鼓励内部创业
57 | Namespace技术:内部创业公司应该独立运营
58 | CGroup技术:内部创业公司应该独立核算成本
59 | 数据中心操作系统:上市敲钟
实战串讲篇 (9讲)
60 | 搭建操作系统实验环境(上):授人以鱼不如授人以渔
61 | 搭建操作系统实验环境(下):授人以鱼不如授人以渔
62 | 知识串讲:用一个创业故事串起操作系统原理(一)
63 | 知识串讲:用一个创业故事串起操作系统原理(二)
64 | 知识串讲:用一个创业故事串起操作系统原理(三)
65 | 知识串讲:用一个创业故事串起操作系统原理(四)
66 | 知识串讲:用一个创业故事串起操作系统原理(五)
67 | 期末测试:这些操作系统问题,你真的掌握了吗?
结束语 | 永远别轻视任何技术,也永远别轻视自己
免费
专栏加餐 (2讲)
学习攻略(一):学好操作系统,需要掌握哪些前置知识?
“趣谈Linux操作系统”食用指南
免费
趣谈Linux操作系统
登录|注册

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

刘超 2019-03-27
限量发售中,仅限5000 份,3 大体系,22 个模块,定位工作中 80% 的高频问题。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《趣谈Linux操作系统》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(280)

  • 石将从
    只会第一题的举手
    2019-03-27
    2
    730
  • allean
    只知道第一题,进步空间巨大,很开心
    2019-03-27
    160
  • @建维
    有一题都不会的吗😮
    2019-03-27
    109
  • 龍蝦
    记得刚开始学习 Linux,遇到问题会请教同组的高手,等他敲完命令解决问题退出后,我会用 history 回顾下他敲过的命令,重新理一遍解决问题的步骤。

    作者回复: history是个好工具

    2019-03-27
    90
  • 龙坤
    我在谷底,要去珠穆朗玛峰
    2019-03-27
    54
  • 青石
    1. A、B、C、D,源码编译安装、rpm及yum安装、脚本或二进制文件直接运行。
    2. A、B、C,感觉这个和操作系统启动顺序有关,内核加载到内存之后,就可以使用虚拟地址映射物理内存了。
    3. B、D,0号进程是初始化进程,在初始化1号进程和2号进程后,进入Idle状态。
    4. C,这个就只知道syscall
    5. D,B和C排除了,A不了解,所以只选了D
    6. A、B、C,D的实时进程对优先级要求应该会更高,所以排除了。
    7. B、D,内存空间里代码是存在只读段里的,进程陷入到内核态是共享的内核态空间
    8. A、C,怀疑C的问题是不是因为slab缓存呢?所以选上了
    9. B、D,B是确定,select、poll、epoll都要维护一个文件描述集合,D在Linux上是inode+block组成,有点考虑的就是内存文件系统。
    10. A、B、C、D
    11. B,跨过缓存的DIRECT_IO模式,其他的还真不了解。
    12. B、D,七层协议在内核里只实现了四层。

    留个痕,跟着老师一起学习,再回过头看这些问题。
    2019-03-27
    49
  • 任鹏斌
    除了第一题剩下的全不知道
    2019-03-27
    32
  • Thorn
    一道题都不会,超大进步空间
    2019-03-27
    29
  • 苏籍
    实在太小白,所以基本都不会/捂脸,简单罗列一些从题目中我想知道的一些问题,希望学完课程都能清白
    1、Linux安装软件的方式
         有哪些方式,适用于什么样的情况。
    2、实模式下运行的过程
         实模式是什么。其他模式有哪些
         BIOS,启动扇区,Grub,Linux内核,驱动的概念定义以及相关的加载过程
    3、Linux内核初始化
         Linux内核如何初始化,初始化阶段如何创建进程,
         进程的状态(用户态和内核态)
         除了初始化阶段还有其他阶段,整个生命周期怎样的
    4、触发Linux系统的调用指令
         调用指令有哪些,分别适用在什么情况,如何实现调用
    5、Linux系统内核中的进程管理
         进程管理解决什么问题,带来什么好处,如何进行进程管理
         进程和线程存储结构,进程的状态,父子进程通信方式,内核栈是什么
    6、进程调度问题
         进程为什么要调度,谁来调度,如何进行调度
         进程的分类有哪些?优先级,普通,实时进程
         调度策略有哪些,FIFO,CFS ,轮流调度,分别适用于什么样的场景,
      7、进程的内存管理
          进程的内存是什么,为什么要进行内存管理,谁来管理,如何管理
          进程中的内存如何划分。是进程的栈?(用户栈,内核栈?)
    8、系统物理内存
          物理内存是什么。如何划分(段,页),他们的结构是什么样的,这么划分 解决什么问题
          被划分后的内存可能还要被标记所属人,如何标记
          cpu如何访问物理内存
    9、linux系统的文件
         文件描述符的概念,文件描述符实现以及与文件的关系
         文件的状态。
         谁来维护如何维护文件描述符,操作系统、进程和文件之间的关系
    10、虚拟文件系统
        有哪些文件系统,他们之间的关系(对接)
        虚拟文件系统的一些概念,由来,网络文件系统
        dentry结构 inode
        文件系统对于文件的操作(读,写,打开,关闭)是如何实现的

    11、输入输出设备
        输入输出设备有哪些,分类(块设备,字符设备)
       对设备的操作方式
       设备如何使用缓存,使用缓存的场景
    12、网络通信
       七层网络协议,以及对应在Linux内核中如何实现
       套接字
       两个进程socket通信方式
    2019-03-28
    24
  • 来者可追
    老师,我发现自己只会第一题(笑cry),不知道这个课程买了,还能继续学下去不。因为看到您的回复,写道:“要会基本的程序开发就可以”。
    2019-03-27
    18
  • 影子传说
    一题不会的飘过,内核态和用户态区别都不知道
    2019-03-27
    14

  • 个人理解答案及知识点:后面一定跟老师课查缺补漏
    1、ABCD
    知识点是linux下软件安装的方式及这几种方式背后的实现原理,比如如何自己打一个安装包呢
    2、不知。对实模式和保护模式相关的概念不了解。
    3、BD
    知识点是linux系统的三个特殊进程:
    0号进程(idle进程)是系统创建的第一个进程,运行在内核态
    1号进程(init进程)是由idle进程(即0号进程)创建,是所有用户态进程的祖先
    2号进程(kthread进程)也是由idle进程创建,运行在内核空间,负责所有内核线程的调度和管理
    4、触发系统调指令意思是说会发生用户态-->内核态切换的吗?
    5、CD? 底层原理不太清楚了
    6、BC? 进程调度策略知识欠缺
    7、CD 应该是需要弄清MMU的原理
    8、不知。待补充物理内存细节相关知识
    9、BD
    10、不知。待补充VFS相关知识原理
    11、不清楚细节
    12、D 进程间通信相关知识
    2019-03-27
    11
  • sotey
    发现好多知识点不知道,知道的大多不知其所以然
    1、在Linux上安装一个软件的常用方式有:ABCD
    A. make install 编译安装,从源码编译安装,配套configure脚本,如nginx安装configure、make、make install,reidis安装使用make install
    B、通过rpm和deb文件,厂商出版的编译好的安装程序,我用CentOS比较多,rmp包也习惯用yum install -y *.rpm安装,如:图形界面安装firefox
    C、通过yum和apt-get,解决依赖安装,实际是下载rpm包安装,同时安装依赖的rpm包
    D、下载压缩包解压缩后设置PATH,二进制安装。如:mysql。
    2、下列过程在实模式下运行的有:ABC
    查了资料也不知道回答是否正确,感觉老师是想考咱cpu原理,虚拟内存映射物理内存映射原理,这部分确实查资料也没怎么懂。还是把实模式、保护模式、虚拟模式之间的关系没怎么看懂。
    3、对于在Linux内核初始化阶段创建进程,下列说法正确的有:ABD
    0号进程idle最先启动,0号进程创建了1号进程和2号进程,1号进程init负责创建用户态进程,2号进程kthreadd负责创建内核进程,因此:答案ABD
    4、下列属于出发系统调用指令的有:ABCD
    int $0x80 软中断调用系统,sysenter和syscall是快速系统调用,systemcall函数库调用
    5、对于内核中的进程管理,下列描述正确的有:CD
    A没判断出来,我是这样理解的线程对内核来说是无感知的,猜测A不正确
    B、TASK_RUNNING状态是可运行状态,隔壁倪老师的课也讲过
    C、父子进程间本来就是list_head链表
    这道题内容太多了,进程、线程、多道、进程状态、等待队列、优先级、调度算法、数据结构全在这题里面,期待老师后续详细解惑。
    6、对于进程调度,下列说法正确的有:CD 这题有点懵逼
    A选项本来想选,低优先级队列为了防止进程饿死选用FIFO好像合理,但是仔细一想,高优先级进程一定会比低优先级进程先执行,所以最后没选。
    我有点混乱,操作系统按照优先级维护着多个进程队列,高优先级进程在CPU运行后会降低优先级到低优先级队列,低优先级队列的进程等待时间长了之后会被提升到高优先级队列以保证进程都能在CPU上执行,操作系统要满足空时让进、公平调度、分时轮询的一些要求,哪些优先级队列应该用那种调度算法有些搞不清楚了,实时进程优先级通常比较高,那应该是分时轮询调度吗,运行一个轮询周期然后从CPU唤出降到低优先级队列排队?
    7、对于进程的内存管理,下列说法正确的有:CD
    8、对于物理内存的管理,下列说法正确的有:AB 猜的
    9、对于文件,下列描述正确的有:AD
    我映像中好像是数组表维护的文件打开位置,file链表是这些数组表之间的关系吗?
    10、对于虚拟文件系统,下列描述正确的有:ABCD
    11、对于输入输出设备,下列描述正确的有:ABD
    老师,是不是字符设备好像是顺序读写,块设备好像是既能顺序又能随机?
    字符设备是不是不用系统缓存,而是使用硬件设备内的缓存?
    12、对于网络通信,下列描述正确的有:BD
    老师,Linux内核网络协议栈是TCP/IP协议栈,实际Linux实现的是四层模型?
    使用socket的方法是不是用loopback、直接访问socket文件、通过网络ip+端口这些方式访问,loopbakc和ip+端口我觉得是同一种方式?

    2019-03-29
    1
    10
  • Pluto
    看到那么多只会第一题的我就放心了,我也只会第一题
    2019-03-27
    10
  • wahaha
    第一题全选,但少了一项:docker pull ...
    2019-03-27
    8
  • 不专注的linuxer
    老师以后的更新中会不会加入一些实际动手操作的内容,感觉动手操作一遍比看10遍都有用,希望老师多增加一些动手操作的内容

    作者回复: 是的,动手操作一遍比看10遍都有用

    2019-03-27
    7
  • zxc
    非常好,只有第一道题是完全不含糊的
    2019-03-27
    7
  • zx钟 💤
    对于我这种敲命令尝试型选手来说😂完全看不懂
    2019-03-27
    7
  • 拉格朗日的忧桑
    除了第一题,其他都不知道,看来进步的空间很大呀。
    2019-03-27
    6
  • 。茹
    突然发现好慌,全不会。。。

    作者回复: 不慌不慌

    2019-03-27
    5
收起评论
99+
返回
顶部