1.1 操作系统的第一个功能——虚拟化硬件资源

问1:操作系统一般处于计算机系统的哪一个位置?

操作系统处于计算机硬件和软件层的交汇处,操作系统本身是一种软件,它负责管理所有在该计算机系统下的硬件资源,并且向上提供抽象接口。


问2:管理硬件资源为什么要单独交给操作系统?

  • 因为这个世界上有数万家硬件厂商,数百万种硬件设备(这些厂家根据各种行业协议和各种接口协议来制作有自己公司特色的硬件设备),我们的操作系统必须要适配它们所有
  • 此外管理硬件资源的很多逻辑(比如硬盘读写),都是反日常思维的,如果让普通程序员或者学生去编写,那恐怕是不可能的事情。
  • 最重要的是如果没有一个对硬件资源的统一管理者,那么每一个商业软件团队都要将大多数的硬件协议控制编写一遍,这在成本上是不可接受的

所以出现一个统一管理硬件资源的存在,是计算机技术发展的必然,这个存在就是操作系统的雏形。


问3:那操作系统如何管理硬件呢?

操作系统面对不同的硬件都会编写不同的管理访问方式。对于新的硬件形式,当操作系统内部没有内置新硬件设备的访问协议,我们必须安装驱动才可以使用(很多免驱设备是因为它会自动安装驱动,不是没有驱动)。

但是无论下层的硬件形式如何,操作系统对上层提供的软件接口一定是一致的,保持不变的。


问4:操作系统负责将下层硬件资源同化为同样的软件资源?

对,操作系统将各种硬件资源协调为同一种逻辑层的软件资源,比如机器上插着的各种拼盘内存和硬盘,操作系统会对上协调为统一的内存空间和存储空间。让运行在操作系统上的软件能够通过文件地址的方式,访问到存在于不同硬件上的数据。

这种很方便的能力被叫做虚拟化


问5:操作系统会将所有硬件都进行虚拟化吗?

是的,所有的硬件资源都必须在操作系统层面被虚拟化,这包括计算机的核心CPU和存储器,以及各种辅助外设音响键盘之类。

但是对于计算机没有内置访问协议的硬件,自身又没有带驱动,操作系统是无法虚拟化的,无法虚拟化的硬件资源,所有软件都是无法访问的。虚拟化是强制性的。


问6:虚拟化除了将硬件资源逻辑化,还有什么功能?

虚拟化技术在硬件资源逻辑化的基础上,提供了分时复用和共享内存的功能。这两种技术使我们现在既可以上网又可以听歌。


问7:Java的虚拟机技术是一种虚拟化吗?

是的,Java的虚拟机是一种虚拟化技术,它是将各种操作系统资源进行了虚拟化,统一为Java虚拟机资源,这样Java程序就可以很方便地移植到别的计算机上,不用担心兼容性。

欢迎访问:个人博客-zobolの计算机操作系统学习札记

1.1 操作系统的第一个功能——虚拟化硬件资源 -《zobolの操作系统学习札记》的更多相关文章

  1. 1.4 操作系统的其余功能 -《zobolの操作系统学习札记》

    1.4 操作系统的其余功能 操作系统除了虚拟化.并发.存储管理三个主要功能,还有许多子功能,我主要介绍几种常见的功能比如 目录 1.4 操作系统的其余功能 稳定性 高性能 隔离保护 易用性(可视化) ...

  2. 1.2 操作系统的第二个功能——并发功能 -《zobolの操作系统学习札记》

    1.2 操作系统的第二个功能--并发功能 目录 1.2 操作系统的第二个功能--并发功能 问1:什么是并发功能?并发功能是必要的吗? 问2:并发功能必须要求拥有多核CPU吗? 问3:多核CPU和单核C ...

  3. 1.3 操作系统的第三个功能——存储管理功能 -《zobolの操作系统学习札记》

    1.3 操作系统的第三个功能--存储管理功能 作者zobol:关于操作系统概论-存储管理功能,我给出下列问题: 目录 1.3 操作系统的第三个功能--存储管理功能 问1:操作系统的文件管理系统主要是负 ...

  4. 网络功能虚拟化(NFV)

    你造什么是网络功能虚拟化(NFV)吗? NFV将网络功能整合到行业标准的服务器.交换机和存储硬件上,提供了优化的虚拟化数据平面,NFV通过服务器上运行的软件让管理员取代传统物理网络设备,并降低成本.能 ...

  5. 10天学会phpWeChat——第二天:hello world!我的第一个功能模块

    今天我们开始进入<10天学会phpWeChat>系列教程的第二天:创建我的第一个hello world! 功能模块. 1.登录后台,进入 系统设置--自定义模块,如图: 自定义模块参数说明 ...

  6. ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)

    ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS) 1. 网站资源: ROSwiki官网:http://wiki.ros.org/cn GitHub    ...

  7. 20172327 2018-2019-1 《第一行代码Android》第二章学习总结

    学号 2017-2018-2 <第一行代码Android>第二章学习总结 教材学习内容总结 - 活动是什么: 活动(Activity)是最容易吸引用户的地方,它是一种可以包含用户界面的组件 ...

  8. 【2】Asp.Net Core2.2第一个功能增加

    [前言] 上一篇完成了Asp.Net Core 2.2项目的建立,解释了一番项目结构,这一篇开始动手写个小功能,从Controller-Action-Model-View,完成前后端最基础的交互过程, ...

  9. NFV网络功能虚拟化 基本概念

    NFV基本概念 NFV则由运营商联盟提出,为了加速部署新的网络服务,运营商倾向于放弃笨重昂贵的专用网络设备,转而使用标准的IT虚拟化技术来拆分网络功能模块,如DNS.NAT.Firewall等.于是一 ...

随机推荐

  1. 机器学习---kmeans聚类的python实现

    """ Name: study_kmeans.py Author: KX-Lau Time: 2020/11/6 16:59 Desc: 实现kmeans聚类 " ...

  2. 三个步骤,从零开始快速部署LoRaServer

    2021年11月29日,ITU(国际电信联盟)标准化部门正式批准了LoRa联盟立项的"ITU-T Y.4480 Low power protocolfor wide area wireles ...

  3. rpm方式安装mysql

    一.系统标准化采样 1)查看centos系统版本 [root@fp-web-126 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 ...

  4. 帝国CMS模板$GLOBALS[navclassid]用法详解

    帝国CMS模板程序扩展变量说明:通过这些变量可实现各种更复杂的显示格式. 一.列表/封面模板变量说明:(栏目页或专题页中使用) (一).当前栏目ID或专题ID:$GLOBALS[navclassid] ...

  5. flex布局 一行4个元素 后面不够4个元素对齐

    html 父元素 .container { display: flex; flex-wrap: wrap;} 子元素.list { width: 24%; height: 100px; backgro ...

  6. 群晖下虚拟机编译部署WOW服务端TrinityCore

    前言 前几天突然想玩WOW了,但是我是一个特别轻度的玩家,以前点卡的时候,我就是上去一个人做做任务,跑跑地图,不怎么玩副本和PVP,现在让我花钱充月卡,不太现实,没那个时间玩,所以,就考虑玩个私服,但 ...

  7. python黑帽子(第五章)

    对开源CMS进行扫描 import os import queue import requests # 原书编写时间过于久远 现在有requests库对已经对原来的库进行封装 更容易调用 import ...

  8. [原创][开源]C# Winform DPI自适应方案,SunnyUI三步搞定

    SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...

  9. vulnhub DC:1渗透笔记

    DC:1渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/ kali ip地址 信息收集 首先扫描一下靶机ip地址 nmap -sP 192.168 ...

  10. 【题解】金牌导航-高斯消元/Luogu P3232 游走

    题目描述: 详细分析: 我们对于编号的分配,很明显可以发现如下的分配就是期望最小的:对经过的期望次数越大的边赋予更小的编号. 那么问题就转化为了怎么求一条边的经过的期望次数,我们发现边数非常大所以肯定 ...