操作系统和内核有什么区别?_Mr.Winter`的博客-程序员秘密

技术标签: linux  操作系统  内核  计算机体系结构  

1 什么是内核

内核是操作系统的核心。内核是操作系统执行的第一道程序,被率先加载到内存中开始系统行为。内核始终保持在主内存中直到系统被关闭。内核将用户输入的命令转换成计算机硬件能理解的机器语言。

内核是系统应用软件和硬件的桥梁。内核直接与硬件联系,并告之它由应用软件发起的请求。操作系统不能脱离内核工作,内核是系统正常运行最重要的程序。

内核的主要职责是:进程管理、磁盘管理、任务调度、内存管理等,具体如下:

  • 文件管理

为了更有效地搜索和使用文件,内核使用文件系统(file system)来组织文件,并通过文件系统保持对文件数据存储、文件状态、访问设置的监视。

  • 进程管理

在多进程环境下,内核决定哪一道进程被CPU优先运行,以及分配的运行时间片长度是多少,称为进程调度。当进程不再被需要的时候,将被内核自动销毁。

  • 内存管理
    内核检测内存空间——生成或销毁内存,以确保应用程序被正确执行。

内核分为单核(Monolithic Kernel)和微核(Microkernel)两种。对于单核,所有操作系统服务运行在单核的主线程中,单核提供了对系统硬件的广泛访问。对于微核,其提供的是硬件抽象,意味着操作系统必须在系统调用(system calls)和原语(primitives)的帮助下工作。

在这里插入图片描述

2 什么是操作系统?

操作系统(operating system)是用来管理计算机系统资源的软件,内核是用户和系统硬件的桥梁。操作系统提供的接口允许用户直接看到其输入命令的响应结果,例如Window的命令行cmd和Linux的Shell终端。没有操作系统,系统就不可能运行,部分嵌入式系统看似没有操作系统,但仍然对硬件作了一层简单封装,也可理解为Tiny OS。操作系统的主要职责是创建应用软件可以运行的环境。

在这里插入图片描述
操作系统同样是运行在计算机系统中的持久化程序,直至系统关闭。它是计算机系统运行的第一道程序,一旦操作系统被加载到内存,计算机就做好了执行用户程序的准备。

在操作系统中,内核是最重要的程序。除了内核的职责外,操作系统额外负责安全性与隐私、中断与挂起等服务,具体如下:

  • 安全性

为了保护用户数据安全,操作系统对计算机进行了密码保护,保护程序不被非法途径泄露。

  • 工作分析

操作系统跟踪资源的使用情况,这些分析数据可以用来监视、反映资源对特定用户或用户群体的利用率,便于系统调整。

  • 与用户和其他软件合作

操作系统也向用户分配解释器、汇编、编译器和其他系统级软件,便于用户和其他应用调用接口。

  • 控制系统性能

为控制系统性能,操作系统时刻监视其运行状态,最主要是测量应用发起服务接口请求,和系统返回响应之间的时间。在操作系统的帮助下,通过提供解决问题的关键性信息可以提供系统性能。

  • 错误自检

操作系统密切监测系统漏洞来防止运行崩溃。

  • 设备管理

操作系统保持对所有接入计算机的硬件设备的监视和跟踪,决定了每个外设是否可以访问计算机资源以及访问的允许时长是多少。

3 操作系统和内核的区别?

在这里插入图片描述

序号 内核 操作系统
1 系统级软件,操作系统的一部分 系统级软件
2 应用软件和硬件的接口 用户和硬件的接口
3 运行操作系统必须具有内核 运行计算机系统必须有操作系统
4 分为单核和微核两种 分为分布式OS、实时OS、单核OS、微核OS、多处理OS
5 是操作系统执行的第一道程序 是计算机系统执行的第一道程序
6 主要负责进程管理、磁盘管理、任务调度、内存管理等核心任务 主要负责安全性与隐私、中断与挂起等其他任务

4 Linux内核

20世纪80年代,受限于Unix 版权,赫尔辛基大学Andrew S. Tanenbaum教授仿UNIX开发了MINIX操作系统,并开放全部源代码给大学教学和研究工作。Linus Torvalds在该学校读书时也使用了MINIX系统,但由于无法忍受MINIX带来的不便,决定自行开发操作系统,并于1991年9月发布了第一版Linux操作系统内核

Linux内核发布时,市面上已有许多GNU组件,唯独缺少底层内核。由于Linus本人是GNU计划的忠实拥护者,因此他将内核开源到GNU计划中完善GNU生态。基于Linux内核,并使用GNU各种工具和应用程序打造的操作系统称为GNU/Linux。将Linux内核与其他应用工具打包形成的操作系统称为Linux发行版,其中包含开源的GNU/Linux,也有商业闭源的操作系统。


更多精彩专栏


源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/FRIGIDWINTER/article/details/121588089

智能推荐

PTA:歌唱比赛打分(c)_速溶咖啡味道很中意丶的博客-程序员秘密

某歌唱比赛计分规则是:对于评委给出的分数,去掉一个最高分,去掉一个最低分,剩余分数求算术平均值并保留2位小数,作为选手最终得分。本题要求实现这样一个计分函数。评委给出的分数存在数组中,分数均为0100之间的整数,并且保证评委人数在320之间。函数接口定义:double getScore(int *score, int total);其中score和total是传入的参数,score是评委打分数组的首地址,total是评委人数;函数将选手的得分以double类型返回,注意:函数返回的分数只需保证小

DQN:Playing Atari with Deep Reinfocement Learning_DarrenXf的博客-程序员秘密

Playing Atari with Deep Reinfocement Learning论文地址https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf个人翻译,并不权威深度强化学习玩Atari摘要我们提出了第一个成功通过强化学习直接从高维感官输入中学习控制策略的深度学习模型。该模型是一个卷积神经网络,用Q-learing的变种训练,输入为原始像素,输出为估计未来reward的值函数。我们将我们的方法应用于七个来自街机学习环境的Atari 2600游戏

I2C(smbus pmbus)和SPI分析_weixin_34416649的博客-程序员秘密

2C和SPI作为两种非常常用的低速外部总线I2CI2C是以前的飞利浦半导体制定的标准,也就是如今的NXP。I2C总线由一条数据线(SDA)和一条时钟线(SCL)组成。设备分主从,主设备提供时钟,并发起操作。SMBUSSMBUS是一种基于I2C而扩展出来的协议。有一些更为复杂的操作,但是原理都还是基于I2C的。PMBUSPMBUS是基于SMBUS,定义了很多...

Band in a Box 2019+RealTracks+RealDrums 智能编曲软件免安装版含音色库_Cloudmidi.net的博客-程序员秘密

Band in a Box 2019+RealTracks+RealDrums | 156GB屡获殊荣的Band-in-a-Box程序非常易于使用!只需使用标准和弦符号(例如C,Fm7或C13b9)输入任何歌曲的和弦,选择所需的风格,其余将由Band-in-a-Box完成。Band-in-a-Box会自动用钢琴,低音提琴,打击乐器,吉他和琴弦以多种流行风格自动创建完整的专业品质编排,包括爵士,流行,乡村,布鲁斯,古典,拉丁美洲音乐,摇滚等。我们在B...

goto解码_Strugglin的博客-程序员秘密

解码地址:https://www.inmyjs.com/shop/decodeOrder

NPOI 操作Word_weixin_30521649的博客-程序员秘密

    /// <summary> /// 替换word中指定内容 /// </summary> /// <param name="wordPath">路径</param> /// <param name="keyName">被替换内容</param&gt...

随便推点

UE5 landscape 换算 Nanite 转换方式及不支持 配合 Lumen及Lumen开启 Dynamic Mesh 使用方法_Yuulily的博客-程序员秘密

Land scape 换算Nanite 导入方式及批量处理工具 Nanite tools建议配合Lumen 使用Nanite 暂时不支持的内容Dynamic Mesh 使用方法

编译ROS程序包(四)_走过_冬天的博客-程序员秘密

本教程介绍ROS程序包的编译方法内容编译程序包 使用 catkin_make 开始编译你的程序包编译程序包一旦安装了所需的系统依赖项,我们就可以开始编译刚才创建的程序包了。注意: 如果你是通过apt或者其它软件包管理工具来安装ROS的,那么系统已经默认安装好所有依赖项。记得事先source你的环境配置(setup)文件,在Ubuntu中的操作指令如下:$ source /opt/r

JBoss Seam 的前景_weixin_33852020的博客-程序员秘密

在JavaOne大会上,JBoss公司产品主管Pierre Fricke并没有谈与Red Hat公司合并一事。他谈到了支持新的JavaEE5的第一版JBoss JBoss Seam,并且他还谈到了JBoss Seam与Ajax的前景以及JBoss将加入NetBeans社区。你能对JBoss Seam做一个明确的定位吗?它是否是轻量级的Web开发框架?Pierre Fricke:...

DSPF28335学习笔记之(1)CMD文件说明_.esysmem_叶之彦cotton的博客-程序员秘密

目录1.MEMORY伪指令2.SECTIONS伪指令3.链接代码与存储单元的3个步骤: CCS中CMD文件用于指定存储区域的划分,在使用中可根据系统给定的.cmd进行修改,建立适合自己使用的CMD文件。CMD文件中主要有两个常用的伪指令MEMORY和SECTIONS。 1.MEMORY伪指令 MEMORY伪指令用来表示实际存在目标系统中的可以使用的存储器范围,在这里每...

Android TextView设置部分字体的颜色和大小+Html_textview 显示html字体大小_彬sir哥的博客-程序员秘密

1.设置字体颜色,color TextView tv = (TextView) findViewById(R.id.tv); String s1="身份证号码"; String s2 = "点击"+"<font color=red>"+s1+"</font>"; tv.setText(Html.fromHtml(s2));2.设置字体大小,big2.1 一个<big>

Spring Cloud 中文文档_springcloud中文_萧曵 丶的博客-程序员秘密

Spring Cloud 官方文档Spring Cloud为开发人员提供了用于快速构建分布式系统中某些常见模式的工具(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调产生了样板模式,并且使用Spring云开发人员可以快速支持实现这些模式的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心和受管理的平台,例如Cloud Foundry。版本:Greenwich.SR51.特点Spring Cloud专注于为典型的用例和扩展机

推荐文章

热门文章

相关标签