虚拟机、真实机、docker容器的区别

虚拟机和真实机

虚拟机与真实机的区别为:性质不同、运行性能不同、操作系统种类不同。

一、性质不同

1、虚拟机:虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的虚拟计算机系统镜像。这是虚拟机的软件从电脑资源中分出一部分的CPU、内存、硬盘存储等,然后虚拟机软件把这些资源整合,组成了一台电脑,所以才称为虚拟机。
2、真实机:真实机是用真实的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

二、运行性能不同

1、虚拟机:虚拟机不会降低电脑的性能,启动虚拟机不需要像启动真实机系统那样耗费时间,运行程序更加方便快捷。
2、真实机:真实机运行程序越多,越容易降低电脑的性能,越耗费时间,运行其他程序更加缓慢。

三、操作系统种类不同

1、虚拟机:虚拟机可以模拟出其他种类的操作系统。
2、真实机:真实机只有固定的操作系统,需要其他种类的操作系统需要重装系统。

双系统和虚拟机

引导是基于硬盘的,虚拟机是基于软件的
引导来的系统可以使用全部的硬件资源,但是一次只能选择一个,切换不方便,而虚拟机是基于操作系统软件模拟出来的

Docker

docker属于操作系统层面的虚拟化技术。
Docker解决了运行环境和配置软件容器问题。Docker不是模拟了一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需的所有资源打包到一个隔离的容器中。
Docker的应用进程是直接运行于宿主机内核(可以在容器里装cuda不同于主机的版本就是因为docker是基于linux内核的),容器的核和宿主机版本一样,镜像和宿主机架构一样(x86上不能模拟arm)

镜像和容器

在这里插入图片描述
https://www.cnblogs.com/baizhanshi/p/9655102.html
Docker仓库和github很像。
Docker的镜像是一个只可读文件系统,一个镜像可以是一个完全的Ubuntu操作系统(这个系统基于宿主机操作系统内核就可以运行,就像我们电脑上的每一个进程其实也是要和内核进行通信的)
Docker容器是由docker镜像创建的运行实例,容器在启动时创建了一层可写层作最上层。

操作系统和操作系统内核

操作系统:

操作系统就是为用户(使用计算机的人)提供服务,使用户能在计算机上使用各种应用程序(QQ、浏览器)来操作计算机资源(如QQ需要使用显示器资源、用浏览器下载资料需要硬盘资源,同时所有这些应用程序都需要使用CPU这个最主要的资源)
操作系统让用户可以使用计算机资源

操作系统整合计算机资源分配给应用程序
处理器接受系统(计算机程序)的指令
可以从两方面理解上面这句话,一方面从操作系统本身来理解。
在每台计算机中都有一个操作系统,你运行的任何应用软件都离不开操作系统,为什么离不开操作系统呢?其实说白了,一台计算机就是一组资源,你运行在计算机上的应用程序本质上是离不开计算机的各种资源(如处理器、内存、I/O设备等),只是为了方便,人们就构造了操作系统这种东西,因为每一台计算机的各种资源都来自不同的厂家,它们有不同的标准,有不同的差别,所以你针对某一类的I/O设备开发的应用程序就不能在另一台装有不同I/O设备的计算机上运行,而操作系统就完美的消除了这种差别与无法扩展的缺点,所以从逻辑上来说,操作系统位于应用程序与计算机资源的中:
同时,作为中间层,必须要干好中间层的工作,所以总的来说,操作系统有两个基本功能:
(1)防止硬件被失控的应用程序滥用;
(2)向应用程序提供简单一致的机制来控制复杂而又通常大相径庭的低级硬件设备

另一方面,从**计算机CPU(处理器)**来看,操作系统实际上不过是一组计算机程序(可以理解成很多个应用程序的集合,而这些应用程序基本都是与硬件打交道的),与其他计算机程序类似(不管是你自己写的HelloWord小程序还是像QQ这样的应用程序,以及大型的服务器程序),它们都给处理器提供指令,然后处理器就执行这些指令,完成这些程序的功能,最大的区别在于操作系统和其他程序的意图不同:操作系统程序通过控制处理器使用其他计算机资源,并控制其他程序的执行时机,这促使处理器完成系统任务的调度。但是(刚刚也说明了,操作系统除了和其他程序的意图不同,其他都一样,所以)处理器为了做任何一件这样的事情(指的是执行另一个程序),都必须停止执行操作系统程序,转而去执行其他程序(这其实是进程切换),因为既然操作系统也是一个程序(进程),而任何处理器同时只能处理一个进程,所以操作系统同样和其他程序(进程)一样需要调度,只是操作系统是处于主动调度的位置,而其他程序是被动的由操作系统的控制来实现调度。

操作系统内核

操作系统包括操作系统内核,内核程序是操作系统所包含的一组计算机程序中的一个子集,所以内核程序也是一组计算机程序,内核程序是操作系统中最长使用的基本模块,直接与硬件打交道,
操作系统内核主要由用于管理存储器、文件、外设和系统资源的那些部门组成。
内核程序一直占据内存中的一段内存,这样处理器就可以随时调用这些内核程序。
操作系统包括内核、基本组件(文本编辑器、编译器、交互程序)
在系统中,应用程序通过调用接口与内核通信,
应用程序通过系统调用而陷入内核———是应用程序完成其工作的基本行为方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值