操作系统面经-什么是操作系统?

news2024/11/15 19:47:01

通过以下四点可以概括操作系统到底是什么:

  1. 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。
  2. 操作系统本质上是一个运行在计算机上的软件程序 ,主要用于管理计算机硬件和软件资源。 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。
  3. 操作系统存在屏蔽了硬件层的复杂性。 操作系统就像是硬件使用的负责人,统筹着各种相关事项。
  4. 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。

很多人容易把操作系统的内核(Kernel)和中央处理器(CPU,Central Processing Unit)弄混。你可以简单从下面两点来区别:

  1. 操作系统的内核(Kernel)属于操作系统层面,而 CPU 属于硬件。
  2. CPU 主要提供运算,处理各种指令的能力。内核(Kernel)主要负责系统管理比如内存管理,它屏蔽了对硬件的操作。

下图清晰说明了应用程序、内核、CPU 这三者的关系。

Kernel_Layout

首先让我们从对操作系统的需求开始讲起。

最早的计算机是没有操作系统的,一切的一切都需要工程师们手动操作,手动调整。大概是种什么感觉呢?Charles Petzold所著的《编码》中有一幅这样的图:

这是作者假想出来的一个对64KB随机存储器的控制面板,第一排的16个开关用来控制地址位,下面一排左边的8个开关用来控制要输入的八比特数据,右边的两个开关分别控制读写操作的执行与否。

看起来很头疼对不对,如果计算机没有操作系统,可能每一个使用计算机的人都要直接面对这种反人类的控制面板。而且这还只是一个假想的简单的原型,实际上以前的计算机是什么样子呢?请看下图:

图中遍布整个房间的大机器就是著名的埃尼阿克(ENIAC),通常被认为是世界上第一台通用计算机。从照片中我们可以看到一名工程师正在手动调整一个旋钮,像这样的旋钮,在他的身前有几百个,在照片中没有拍到的地方,可能还有几千几万个,更不要说还有那么多密密麻麻的线路和插口。

计算机没有操作系统的后果就是,人们要想使用计算机,必须直接面向硬件进行操作。而要想完成这样的操作,什么数字电路、计算机组成原理请您学好先。: )

这就引出了操作系统最主要的功能之一:

对硬件资源进行管理、分配、调度。

有了操作系统之后,这个程序需要占多少内存,今天具体把哪一块内存空间分给它,使用者无需关心,操作系统帮你打理;这个文件存在硬盘的哪个磁道哪个扇区,使用者无需关心,操作系统帮你打理;电脑里只有一个CPU,为什么可以同时运行多个程序,使用者无需关心,操作系统帮你打理。

有了操作系统,普通的使用者就不需要去学习那些艰深晦涩的专业知识,因为相关的工作已经交由操作系统来做了。

接下来我们再来思考一个问题,同样是操作系统,为什么DOS逐渐被淘汰了,而Windows成为了主流呢?

因为大部分人都更愿意使用图形界面(GUI),而不愿意使用命令行界面(CLI),以前的DOS大概长这样:

注意,是整个屏幕都是这样,而不是说某一个对话框里面是这样。

诚然,通过键盘输入命令这样的操作方式已经比我们手动去调整旋钮、连接线路要方便得多,但是对于普通人来说门槛还是有点高,这也是为什么在DOS时代计算机很难大面积地流行开来的一个原因。

相比之下,主要通过鼠标点击进行操作的图形操作系统显然要受欢迎得多。

Windows XP

由此可见,一个操作系统的操作方式、操作界面的好坏在对整个操作系统的评价中要占到很大的比重。

这就引出了操作系统的第二个主要功能:

向用户提供操作界面(专业的叫法是shell。)

这样的界面可能是命令行式的,也可能是图形化的,但是不管怎么说,这个shell需要给用户提供一种可能,使得用户可以通过shell执行所有该操作系统所提供的功能。对于命令行来说,需要提供足够多数量的命令;对于图形界面来说,需要提供足够多数量的按钮。

打个比方,对于一家银行来说,业务窗口以及窗口里的业务员就共同组成了一个shell,顾客通过走到窗口前,与业务员进行交流,进行业务的办理。至于业务员在电脑上进行了什么操作,业务员从哪里取钱给用户,业务员将用户存进去的钱放到哪里,这就不是用户应该关心的了。如果这个银行今天所有的业务员都请假了,那么进去的顾客就无法办理任何业务。

所以,最后总结一下,操作系统的所有功能大致可以分为两部分,一部分是管理其下层的硬件资源,一部分是向其上层的用户提供操作接口,即

操作系统是一种介于硬件和用户之间的特殊的软件。

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

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

相关文章

DP:路径规划模型

创作不易,感谢三连支持! 路径规划主要是让目标对象在规定范围内的区域内找到一条从起点到终点的无碰撞安全路径。大多需要用二维dp数组去实现 一、不同路径 . - 力扣(LeetCode)不同路径 class Solution { public:int uniquePath…

自动驾驶---Motion Planning之轨迹Path优化

1 背景 在之前的几篇文章中,不管是通过构建SL图《自动驾驶---Motion Planning之Path Boundary》,ST图《自动驾驶---Motion Planning之Speed Boundary》,又或者是构建SLT图《自动驾驶---Motion Planning之构建SLT Driving Corridor》,最终我们都是为了得到boundary的信息。 …

基于springboot的4S店车辆管理系统

基于springboot的4S店车辆管理系统 的设计和实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开…

算法-最短路径

图的最短路径问题是一个经典的计算机科学和运筹学问题,旨在找到图中两个顶点之间的最短路径。这种问题在多种场景中都有应用,如网络路由、地图导航等。 解决图的最短路径问题有多种算法,其中最著名的包括: 1.迪杰斯特拉算法 (1).…

抖音小店怎么定类目?分享几个爆单几率大,适合新手的细分类目!

大家好,我是电商糖果 做电商的应该经常听过这么一句话,类目大于一切! 好的类目可以让商家减少很多竞争和难题。 糖果做电商有很多年了,我一直认为做店前期最难的定类目,中期是选品,后期是维护店铺。 如…

物联网数据报表分析

随着物联网技术的迅猛发展,越来越多的企业开始将物联网解决方案应用于各个领域,从提高生产效率到优化用户体验,物联网都发挥着至关重要的作用。然而,如何有效地分析和管理物联网产生的海量数据,成为企业面临的挑战之一…

【Java开发过程中的流程图】

流程图由一系列的图形符号和箭头组成,每个符号代表一个特定的操作或决策。下面是一些常见的流程图符号及其含义: 开始/结束符号(圆形):表示程序的开始和结束点。 过程/操作符号(矩形)&#xff…

<Linux> 生产者消费者模型

目录 前言: 一、什么是生产者消费者模型 (一)概念 (二)生产者消费者之间的关系 (三)生产者消费者模型特点 (四)生产者消费者模型的优点 二、基于阻塞队列实现生产…

《定时执行专家》:Nircmd 的超级搭档,解锁自动化新境界

目录 Nircmd 简介 《定时执行专家》与 Nircmd 的结合 示例: 自动清理电脑垃圾: 定时发送邮件: 定时关闭电脑: 《定时执行专家》的优势: 总结: 以下是一些其他使用示例: 立即下载《定时执行专家》: Nircmd 官方网站: 更…

代码随想录阅读笔记-栈与队列【用队列实现栈】

题目 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言…

普发Pfeiffer镀膜机Classic580-500SP Spider600 全套资料包含操作使用说明

普发Pfeiffer镀膜机Classic580-500SP Spider600 全套资料包含操作使用说明

LeetCode---126双周赛

题目列表 3079. 求出加密整数的和 3080. 执行操作标记数组中的元素 3081. 替换字符串中的问号使分数最小 3082. 求出所有子序列的能量和 一、求出加密整数的和 按照题目要求,直接模拟即可,代码如下 class Solution { public:int sumOfEncryptedInt…

瑞芯微RK3576|触觉智能:开启科技新篇章

更多产品详情可关注深圳触觉智能官网! “瑞芯微,创新不止步!”——全新芯片RK3576即将震撼登场。指引科技风潮,创造未来无限可能!这款芯片在瑞芯微不断创新和突破的道路上,不仅是对过往成就的完美延续&…

ROS2从入门到精通0-3:VSCode 搭建 ROS2 工程环境

目录 0 专栏介绍1 Ubuntu下安装VSCode1.1 基本安装1.2 将VSCode添加到侧边栏 2 VSCode集成相关插件3 VSCode运行ROS2环境步骤3.1 安装编译依赖项3.2 创建工作空间和源码空间3.3 启动VSCode与配置 4 测试工程环境4.1 C版本4.2 Python版本 0 专栏介绍 本专栏旨在通过对ROS2的系统…

【机器学习入门 】逻辑斯蒂回归和分类

系列文章目录 第1章 专家系统 第2章 决策树 第3章 神经元和感知机 识别手写数字——感知机 第4章 线性回归 文章目录 系列文章目录前言一、分类问题的数学形式二、最大似然估计三、交叉熵损失函数四、多类别分类多类别逻辑斯蒂回归归一化指数函数交叉熵误差和均方误差的比较 五…

详解JavaScript中this指向

this 原理 this 是一个指针型变量,它指向当前函数的运行环境。 1.内存的数据结构 var obj { foo: 5 };2.函数 var obj { foo: function () {} };引擎会将函数单独保存在内存中,然后再将函数的地址赋值给foo属性的value属性。 由于函数是一个单独的…

目标检测——PP-YOLO算法解读

PP-YOLO系列,均是基于百度自研PaddlePaddle深度学习框架发布的算法,2020年基于YOLOv3改进发布PP-YOLO,2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet,2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列,所以放一起解…

聚酰亚胺PI材料难于粘接,用什么胶水粘接?那么让我们先一步步的从认识它开始(七): 聚酰亚胺PI薄膜的厚度

聚酰亚胺PI薄膜的厚度 聚酰亚胺(PI)薄膜的厚度可以根据具体的应用需求而有所不同,通常可以在几个微米(μm)到几十微米之间。下面是一些常见的聚酰亚胺PI薄膜的厚度范围及其应用: 1.超薄膜: 聚酰…

记录‘No module named ‘notebook.notebookapp‘’导致jupyter打不开的解决方法

最初是因为无法重命名文件的问题&#xff0c;更新了notebook&#xff0c;但是更新之后打不开了 在终端输入 jupyter notebook 报错 File "/Users/maclin/Library/Python/3.8/bin/jupyter-notebook", line 5, in <module> from notebook.notebookapp import ma…

#Linux(SSH软件安装及简单使用)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;终端键入&#xff08;root权限&#xff09;安装 apt-get install openssh-server 安装时遇到报错 E: Could not get lock /var/lib/dpkg/…