想了解操作系统,有什么书籍推荐?

推荐一本操作系统经典书:

操作系统导论

《操作系统导论》虚拟化(virtualization)、并发(concurrency)和持久性(persistence)。这是我们要学习的3个关键概念。通过学习这3个概念,我们将理解操作系统是如何工作的,包括它如何决定接下来哪个程序使用CPU如何在虚拟内存系统中处理内存使用过载,虚拟机监控器如何工作,如何管理磁盘上的数据,还会讲一点如何构建在部分节点失败时仍能正常工作的分布式系统。

每个主要概念在若干章节中加以阐释,其中大部分章节都提出了一个特定的问题,然后展示了解决它的方法。这些童节很简短,尝试(尽可能地)引用作为这些想法真正来源的源材料。我们写这本书的目的之一就是厘清操作系统的发展脉络,因为我们认为这有助于学生更清楚地理解过去是什么、现在是什么、将来会是什么。在这种情况下,了解香肠的制作方法几乎与了解香肠的优点一样重要。

整本书中采用了几种结构,值得在这里介绍一下。

无论何时,在试图解决问题时,我们首先要说明最重要的问题是什么。我们在书中明确提出关键问题(crux of the problem),并希望通过本书其余部分提出的技术、算法和思想来解决。

在许多地方,我们将通过显示一段时间内的行为来解释系统的工作原理。这些时间线(timeline)是理解的本质。如果你知道会发生什么,例如,当进程出现页故障时,你就可以真正了解虚拟内存的运行方式。如果你理解日志文件系统将块写入磁盘时发生的情况,就已经迈出了掌握存储系统的第一步。

整本书中有许多“补充”和“提示”,为主线讲解增添了一些趣味性。“补充”倾向于讨论与主要文本相关的内容(但可能不是必要的);“提示”往往是一般经验,可以应用于所构建的系统。

在整本书中,我们使用最古老的教学方法之---对话(dialogue)。这些对话用于介绍主要的主题概念并经常地复习这些内容。这也让我们得以用更幽默的方式写作。好吧,你觉得它们是有用还是幽默,完全是另一回事。

本书最重要的附录是一组项目(project),可供你通过设计、测试和实现自己的代码,来了解真实系统的工作原理。所有项目(以及上面提到的代码示例)都是使用C编程语言(Cprogramminglanguage)[KR88]编写的。C是一种简单而强大的语言,是大多数操作系统的基础,因此值得添加到你的工具库中。附录中含有两种类型的项目(请参阅在线附录中的想法)。第一类是系统编程(system programming)项日。这些项目非常适合那些不熟悉C和UNIX,并希望学习如何进行底层C编程的人。第二类基于在麻省理工学院开发的实际操作系统内核,称为xv6 [CK+08]。这些项目非常适合已经有一些C的经验并希望深入研究操作系统的学生。在威斯康星大学,我们以3种不同的方式开课:系统编程、xv6编程,或两者兼而有之。

在本书的各个部分,我们提供了一些作业(homework),确保你进一步理解书中的内容。其中许多作业都是对操作系统的一些模拟(simulation)程序。你应该下载作业,并运行它们,以此来测验自己。作业模拟程序具有以下特征:通过给它们提供不同的随机种子,你可以产生几乎无限的问题,也可以让模拟程序为你解决问题。因此,你可以一次又一次地自测,直至很好地理解了这些知识。

更多推荐

1、鸟哥的Linux私房菜 基础学习篇(第四版)

全书分为五部分:第一部分着重说明计算机的基础知识、Linux的学习方法,如何规划和安装Linux主机以及CentOS 7.x的安装、登录与求助方法;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理、磁盘配额、高级文件系统管理、计划任务以及进程管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。

本书内容丰富全面,基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析。本书是初学者学习Linux不可多得的一本入门好书。

2、Linux命令行大全 第2版

是一本全面讲述Linux命令行用法的图书。本书从更广泛的意义上向你传授如何使用CLI、CLI工作原理、CLI都有哪些功能,以及最佳实践是什么。

这不是一本有关Linux操作系统管理的图书。任何关于命令行的严肃讨论都会不可避免地转向操作系统管理方面的话题,本书仅触及少数管理问题。为了让你能开展后续的学习,本书提供了坚实的命令行基础知识,这可是完成重要的系统管理任务必不可少的工具。

本书以Linux为中心,只讨论当前的Linux发行版。尽管本书95%的内容对其他类UNIX系统用户也有帮助,但本书主要还是面向目前的Linux命令行用户。

3、Linux就该这么学(第2版)

《Linux就该这么学(第2版)》在上一版的基础上进行了大量的更新,基于红帽RHEL 8系统编写,且内容适用于CentOS、Fedora等系统。本书共分为20章,内容涵盖了部署Linux系统,常用的Linux命令,与文件读写操作有关的技术,使用Vim编辑器编写和修改配置文件,用户身份与文件权限的设置,硬盘设备分区、格式化以及挂载等操作,部署RAID磁盘阵列和LVM,firewalld防火墙与iptables防火墙的区别和配置,使用ssh服务管理远程主机,使用Apache服务部署静态网站,使用vsftpd服务传输文件,使用Samba或NFS实现文件共享,使用BIND提供域名解析服务,使用DHCP动态管理主机地址,使用Postfix与Dovecot部署邮件系统,使用Ansible服务实现自动化运维,使用iSCSI服务部署网络存储,使用MariaDB数据库管理系统,使用PXE+Kickstart无人值守安装服务,使用LNMP架构部署动态网站环境等。此外,本书的配套站点还深度点评了红帽RHCSA、RHCE、RHCA认证,方便读者备考。

《Linux就该这么学(第2版)》适合打算系统、全面学习Linux技术的零基础读者阅读,具有一定Linux使用经验的读者也可以通过本书来巩固自己的Linux知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Collection与数据结构] 位图与布隆过滤器

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

微信小程序横屏页面跳转后,自定义navbar样式跑了?

文章目录 问题原因:解决方案: 今天刚遇到的问题,横屏的页面完成操作后跳转页面后,自定义的tabbar样式乱了,跑到最顶了,真机调试后发现navbar跑到手机状态栏了,它正常应该跟右边胶囊一行。 知道问…

Vivado ILA数据导出MATLAB分析

目录 ILA数据导出 分析方式一 分析方式二 有时候在系统调试时,数据在VIVADO窗口获取的信息有限,可结合MATLAB对已捕获的数据进行分析处理 ILA数据导出 选择信号,单击右键后,会有export ILA DATA选项,将其保存成CS…

《探索形象克隆:科技与未来的奇妙融合》

目录 一、什么是形象克隆 二、形象克隆的技术原理 三、形象克隆的发展现状 四、形象克隆的未来趋势 五、形象克隆的应用场景 六、形象克隆简单代码案例 Python 实现数字人形象克隆 Scratch 实现角色克隆效果(以猫为例) JavaScript 实现 Scratc…

MATLAB深度学习(七)——ResNet残差网络

一、ResNet网络 ResNet是深度残差网络的简称。其核心思想就是在,每两个网络层之间加入一个残差连接,缓解深层网络中的梯度消失问题 二、残差结构 在多层神经网络模型里,设想一个包含诺干层自网络,子网络的函数用H(x)来表示&#x…

前端入门之VUE--vue组件化编程

前言 VUE是前端用的最多的框架;这篇文章是本人大一上学习前端的笔记;欢迎点赞 收藏 关注,本人将会持续更新。 文章目录 2、Vue组件化编程2.1、组件2.2、基本使用2.2.1、VueComponent 2、Vue组件化编程 2.1、组件 组件:用来实现…

设计模式-装饰器模式(结构型)与责任链模式(行为型)对比,以及链式设计

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.装饰器模式1.1概念1.2作用1.3应用场景1.4特点1.5类与对象关系1.6实现 2责任链模式2.1概念2.2作用2.3应用场景2.4特点2.5类与对象关系2.6实现 3.对比总结 前言…

操作系统:死锁与饥饿

目录 死锁概念 饥饿与饿死概念 饥饿和死锁对比 死锁类型 死锁条件(Coffman条件) 死锁恢复方法 死锁避免 安全状态与安全进程序列: 银行家算法: 死锁检测时机(了解): 死锁检测 死锁案…

RPO: Read-only Prompt Optimization for Vision-Language Few-shot Learning

文章汇总 想解决的问题对CoOp的改进CoCoOp尽管提升了性能,但却增加了方差(模型的准确率波动性较大)。 模型的框架一眼看去,跟maple很像(maple跟这篇文章都是2023年发表的),但maple的视觉提示是由文本提示经过全连接转换而来的,而这里是文本提示和视觉提示是独立的。另外m…

『MySQL 实战 45 讲』24 - MySQL是怎么保证主备一致的?

MySQL是怎么保证主备一致的? MySQL 主备的基本原理 基本的主备切换流程 状态 1:客户端的读写都直接访问节点 A,而节点 B 是 A 的备库状态 2:切换时,读写访问的都是节点 B,而节点 A 是 B 的备库注意&…

自荐一部IT方案架构师回忆录

作者本人毕业于一个不知名大专院校,所读专业计算机科学技术。2009年开始IT职业生涯,至今工作15年。擅长TSQL/Shell/linux等技术,曾经就职于超万人大型集团、国内顶级云厂商、央国企公司。参与过运营商大数据平台、大型智慧城市ICT、云计算、人…

python数据分析之爬虫基础:selenium详细讲解

目录 1、selenium介绍 2、selenium的作用: 3、配置浏览器驱动环境及selenium安装 4、selenium基本语法 4.1、selenium元素的定位 4.2、selenium元素的信息 4.3、selenium元素的交互 5、Phantomjs介绍 6、chrome handless模式 1、selenium介绍 (1…

【数据结构——查找】顺序查找(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 测试说明 我的通关代码: 测试结果: 任务描述 本关任务:实现顺序查找的算法。 相关知识 为了完成本关任务,你需要掌握:1.根据输入数据建立顺序表,2.顺序表的输出,…

create-react-app react19 搭建项目报错

报错截图 此时运行会报错: 解决方法: 1.根据提示安装依赖法 执行npm i web-vitals然后重新允许 2.删除文件法 在index.js中删除对报错文件的引入,删除报错文件

Scratch 消灭字母小游戏

背景 最近尝试一边自学Scratch,一边尝试教给小孩,看他打字时在键盘上乱打一气,想起来自己小时候玩过的学习机打字母游戏,就想给他下载一个。结果网上看到的代码,要么质量太差(有26个字母就要写 26 个判断&…

python调用matlab函数(内置 + 自定义) —— 安装matlab.engine

文章目录 一、简介二、安装matlab.engine2.1、基于 CMD 安装2.2、基于 MATLAB 安装(不建议) 三、python调用matlab函数(内置 自定义) 一、简介 matlab.engine(MATLAB Engine API for Python):…

pytroch环境安装-pycharm

环境介绍 安装pycharm 官网下载即可,我这里已经安装,就不演示了 安装anaconda 【官网链接】点击下载 注意这一步选择just me 这一步全部勾上 打开 anaconda Prompt 输入conda create -n pytorch python3.8 命令解释:创建一个叫pytorch&…

Photoshop提示错误弹窗dll缺失是什么原因?要怎么解决?

Photoshop提示错误弹窗“DLL缺失”:原因分析与解决方案 在创意设计与图像处理领域,Photoshop无疑是众多专业人士和爱好者的首选工具。然而,在使用Photoshop的过程中,有时会遇到一些令人头疼的问题,比如突然弹出的错误…

上海亚商投顾:创业板指震荡调整 机器人概念股再度爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日冲高回落,深成指、创业板指盘中跌超1%,尾盘跌幅有所收窄。机器人概念股逆势爆…

(Linux)CentOS7离线安装MinIO(超详细)

目录 前言1. 下载2. 安装VMware3. 安装CentOS4. 离线安装MinIO4.1. ssh工具连接CentOS4.2. 上传MinIO离线包4.2.1 创建data目录4.2.2 上传RPM包到data目录4.2.3 安装RPM包4.2.4 创建MinIO数据目录4.2.5 配置 MinIO 服务4.2.6 启动 MinIO4.2.7 开放端口 4.2.8 访问MinIO 创作不易…