该专栏是为Linux内核开发编程做铺垫,如果你对操作系统很熟悉,想了解一些Linux内核发开的知识,请直接跳转至《Linux内核编程专栏》,如果你对Linux内核编程也很熟悉,想了解Linux内核的各个模块,可移步至《Linux内核分析专栏》,带你领略Linux内核的绝美风光。

操作系统导学会对一些基本的概念进行讲解,但并不是单纯的讲解概念,而是通过操作系统发展历史的脉络,解释一些概念。操作系统不断改进,针对计算机硬件发展,用户需求的变化,而提出的一些高效的设计。永远记住,操作系统是管理硬件的艺术,将重要关键的资源高效且安全的抽象给用户。我们按照是什么?为什么?怎么做?的方法,针对操作系统的各个组件进行抽丝剥茧,达到读者能掌握操作系统核心概念的目的,为后面Linux内核开发,深入理解Linux内核打下坚实的基础。

一、专栏内容概览

编辑


二、操作系统中重要的三个抽象

操作系统中有三个重要的抽象,分别是虚拟化,并发和持久化。

虚拟化与我们经常听到的另一个虚拟化(运行虚拟机)有所区分,但也有相似之处,本质核心都是一个物理资源如何被复用

虚拟化分为虚拟化CPU和虚拟化内存;虚拟化CPU,主要是讲CPU分时复用的问题,同样会引出进程这个概念,从而让CPU看起来支持多个程序同时运行的假象。虚拟化内存是主要是讲物理内存的复用,将单一的物理内存虚拟化为每个进程独占的内存地址空间,而且进程可用的实际内存空间是远多于物理内存的,让每个进程看起来拥有自己的内存

并发涉及多线程概念以及多线程编程,抽象来说,线程是进程的抽象,一个进程可有多个线程组成。你可能有疑问,既然有了进程,为什么还需要线程?这个我们将在并发给大家细细说来。

最后一部分是持久化,我们知道CPU计算出的数据是保存在内存上的,有些重要的数据是需要断电仍可恢复的,就需要操作系统支持持久化。持久化涉及到磁盘,硬盘等硬件设备,需要将CPU产生的数据回写到硬盘这类可持久保存的媒介上,可以将数据组织成文件,同时也需要具备从磁盘上找到该文件,这就要求操作系统需要对硬盘内容进行组织,这就需要文件系统参与,方面快速存储读取文件。

该专栏会持续更新,期待与大家一起,一点点探索操作系统的内部世界。

如果你想了解Linux内核发开的知识,《Linux内核编程专栏》正在更新中,期待你的关注与订阅;如果你想深入理解Linux内核的各个模块,《Linux内核分析专栏》连载中,也期待你的关注与订阅,让我们一起领略Linux内核的绝美风光。

你的关注与订阅是我们更新的最大动力!


更多技术内容和书籍资料获取,入群技术交流敬请关注“明解嵌入式”

Linux操作系统导学专栏(一)——专栏要讲些什么?的更多相关文章

  1. 趣谈Linux操作系统学习笔记:第二十四讲

    一.小内存的分配基础 1.kmem_cache_alloc_node的作用 通过这段代码可以看出,它调用了kmem_cache_alloc_node函数,在task_struct的缓存区域task_s ...

  2. 趣谈Linux操作系统学习笔记:第二十六讲

    一.内核页表 和用户态页表不同,在系统初始化的时候,我们就要创建内核页表了 我们从内核页表的根swapper_pg_dir开始找线索,在linux-5.1.3/arch/x86/include/asm ...

  3. 趣谈Linux操作系统学习笔记:第二十八讲

    一.引子 磁盘→盘片→磁道→扇区(每个 512 字节) ext* 定义文件系统的格式 二.inode 与块的存储 1.块 2.不用给他分配一块连续的空间 我们可以分散成一个个小块进行存放 1.优点 2 ...

  4. 趣谈Linux操作系统学习笔记:第二十九讲

    一.引子 在这之前,有一点你需要注意.解析系统调用是了解内核架构最有力力的一把钥匙,这里我们只要重点关注这几个最重要的系统调用就可以了 1.mount 系统调用用于挂载文件系统:2.open 系统调用 ...

  5. 深挖计算机基础:趣谈Linux操作系统学习笔记

    参考极客时间专栏<趣谈Linux操作系统>学习笔记 核心原理篇:内存管理 趣谈Linux操作系统学习笔记:第二十讲 趣谈Linux操作系统学习笔记:第二十一讲 趣谈Linux操作系统学习笔 ...

  6. Linux操作系统--定时任务

    最近在学习Linux操作系统.学到了关于定时任务的章节,作为一个总结写下这篇文章.在Linux中,我们可以将耗时大的任务如复制大文件,压缩.解压缩大文件等放进定时任务中(深夜执行,因为工作时间访问量大 ...

  7. 《趣谈 Linux 操作系统》学习笔记(一):为什么要学 Linux 及学习路径

    前言:学习的课程来自极客时间的专栏<趣谈 Linux 操作系统>,作者用形象化的比喻和丰富的图片让课程变得比较易懂,为了避免知识看过就忘,打算通过写学习笔记的形式记录自己的学习过程. Li ...

  8. 浅析Linux操作系统是如何工作的(思维导图)

    SA***189 多任务计算机运转机制如下思维导图所示: 小结: Linux操作系统是一个在时钟的节拍下,各个模块紧密协作.密不可分的整体,而整个Linux系统都是建立在存储程序的基础之上,正是有了程 ...

  9. 学linux内核与学linux操作系统有什么区别!?

    linux内核包括:进程管理,存储管理,IO管理,文件系统等功能.linux操作系统则是linux内核再加上像shell或图形界面和其他的实用软件,比内核庞大的多.建议先学shell命令和linux下 ...

  10. [转帖]爬过这 6 个坡,你就能对 Linux 操作系统了如指掌

    爬过这 6 个坡,你就能对 Linux 操作系统了如指掌 http://www.51testing.com/html/16/n-4461316.html 学习的任务 任重道远 我现在处于第一阶段. 发 ...

随机推荐

  1. 17_Vue列表过滤_js模糊查询

    列表过滤 需求分析 这里呢有张列表,假设这个列表有一百多条数据 当我在这个 搜索框当中 搜索 单个关键字的时候 (冬,周,伦),它能把带了这几个关键字的信息都给我罗列出来 === 跟数据库的 模糊查询 ...

  2. 谷歌拼音输入法扩展API开发指南

    为了帮助开发者在谷歌拼音输入法的基本输入功能基础上,开发和定义更丰富的扩展输入功能,谷歌拼音输入法提供了以Lua脚本编程语言为基础的输入法扩展API.利用输入法扩展API,开发者可以编写自定义的输入功 ...

  3. Nginx的概述和配置

    一.Nginx概述 1.1Nginx的特点 (1)一款高性能.轻量级web服务 稳定性高 系统资源消耗低高 对HTTP并发连接的处理能力 (2)单台物理服务器可支持30000~50000个并发请求 1 ...

  4. C#使用正则表达式来验证是否是16进制字符串

    /// <summary> /// 判断是否为16进制字符串 /// </summary> /// <param name="hexString"&g ...

  5. 2022-11-13 Acwing每日一题

    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...

  6. MediatRPC - 基于MediatR和Quic通讯实现的RPC框架,比GRPC更简洁更低耦合,开源发布第一版

    大家好,我是失业在家,正在找工作的博主Jerry.作为一个.Net架构师,就要研究编程艺术,例如SOLID原则和各种设计模式.根据这些原则和实践,实现了一个更简洁更低耦合的RPC(Remote Pro ...

  7. mindxdl--common--head_handler.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common the commo ...

  8. cv2.imread opencv读取不到图片问题

    解决办法 cv2.imread 路径中包含中文,改为英文 其他 这个问题解决了很久,都属于库的问题

  9. 一图看懂Hadoop中的MapReduce与Spark的区别:从单机数据系统到分布式数据系统经历了哪些?

    今日博主思考了一个问题:Hadoop中的MapReduce与Spark他们之间到底有什么关系? 直到我看到了下面这张图 废话不多说先上图 我们知道,单机数据系统,在本地主机上针对数据有单机本地存储操作 ...

  10. ast在爬虫上的应用

    https://astexplorer.net/ https://zhuanlan.zhihu.com/p/371710865 1.基础了解 const {parse} =require(" ...