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. Servlet 标准下载地址

    Servlet 标准下载地址 java 技术标准开发社区 https://jcp.org/ 3.0 https://jcp.org/aboutJava/communityprocess/mrel/js ...

  2. Django中数据传输编码格式、ajax发送json数据、ajax发送文件、django序列化组件、ajax结合sweetalert做二次弹窗、批量增加数据

    前后端传输数据的编码格式(contentType) 提交post请求的两种方式: form表单 ajax请求 前后端传输数据的编码格式 urlencoded formdata(form表单里的) ja ...

  3. 7.Arrays类

    1. Arrays类 数组的工具类java.util.Arrays Arrays类中的方法都是static修饰的静态方法,使用的时候可以直接使用类名进行调用 (而不是使用对象)(是"不用&q ...

  4. VMware下ubuntu 20.04扩容/磁盘

    最近搞zabbix监控,发现搭建的监控server主机磁盘告警.提示/超过阈值80%. 有实在VMware软件下的虚拟机,首先我就是给虚机磁盘增加容量. 增加后发现没什么改变,看来还需要其他操作. 在 ...

  5. 牛客网 第十八届浙大城市学院程序设计竞赛(同步赛)J--万万没想到 啦啦啦啦啦

    我觉得我可以继续wa下去(手动魔鬼笑)--------------------------------------------   原题链接:https://ac.nowcoder.com/acm/c ...

  6. 记一次docker安装成功,启动失败的原因

    问题 按照错误提示,先查看docker的状态: systemctl status docker 可以看到,非常明显的一行大红字:Failed to start Docker Application C ...

  7. angular.js中 路由 用法及概念

    在开讲之前,首先谈谈APP应用.平时我们用的app总是多页面,如果用原生安卓或者苹果,那当然很流畅啦.但是当我们用一般的html页面做移动端,简单时候我们可以用<a href="&qu ...

  8. docker基础_Dockerfile

    Dockerfile []: https://docs.docker.com/language/python/build-images/ "docker官方文档" 以python为 ...

  9. CentOS8更换yum源后出现同步仓库缓存失败的问题

    1.错误情况更新yum时报错: 按照网上教程,更换阿里源.清华源都还是无法使用.可参考: centos8更换国内源(阿里源)_大山的博客-CSDN博客_centos8更换阿里源icon-default ...

  10. pandas子集选取的三种方法:[]、.loc[]、.iloc[]

    pandas读取Excel.csv文件中的数据时,得到的大多是表格型的二维数据,在pandas中对应的即为DataFrame数据结构.在处理这类数据时,往往要根据据需求先获取数据中的子集,如某些列.某 ...