需要弥补的是内核,是什么意思?(内核是什么意思 有什么用)
内核是什么意思 有什么用
内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。
中文名
内核
外文名
kernel
类 别
软件
发源时间
1991年10月
种 类
单内核,双内核,微内核
目录
1基本简介
2历史发展
3内核分类
▪ 单内核
▪ 微内核
▪ 混合内核
▪ 外内核
▪ 单内核与微内核的比较
4优点
▪ 抽象隐藏
▪ 源代码管理
▪ 并行开发
▪ 代码覆盖分析
▪ 大量信息
5测试
▪ 应用测试
▪ 回归测试
▪ 可扩展测试
▪ 追踪缺陷
1基本简介
内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、
内核体系结构[1]
设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。[2]
现代操作系统设计中,为减少系统本身的开销,往往将一些与硬件紧密相关的(如中断处理程序、设备驱动程序等)、基本的、公共的、运行频率较高的模块(如时钟管理、进程调度等)以及关键性数据结构独立开来,使之常驻内存,并对他们进行保护。通常把这一部分称之为操作系统的内核。[3]
程序可以直接地被调入计算机中执行,这样的设计说明了设计者不希望提供任何硬件抽象和操作系统的支持,它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者固化在只读存储器里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。[4]
(概述图片来源:[5] )
2历史发展
Linux的第一个公开版本是1991年10月的0.02版本,两个月以后,在1991年12月,Linux发布了0.11版本,这是第一个可以不依赖于Minix就可以使用的独立内核。
0.12版本发布一个月以后,在3月,版本号跳到了0.95,反映出系统正变得成熟,不仅如此,直到两年后,也就是1994年3月,具有里程碑意义的1.0.0才完成。
大约从这时起开始使用两“路”编号方法标注内核的开发,偶数号的内核
理解linux内核[6]
(比如1.0、2.2、2.4、2.6)是稳定的,“产品”型号,同时,奇数号的内核版本(1.1、2.3)是前沿的或者“发展中的”内核。一个稳定的内核发布以后几个月就开始新内核的开发工作。然而,2.5的开发工作是在2.4完成后几十个月以后才开始的。[7]
post-halloween文档的大部分讨论内容是用户需要注意的主要改变,以及需要更新的系统工具(为了利用它们)。关心这一信息人的主要是那些期望提前了解2.6内核中有哪些内容的Linux发行商,还有终端用户,这可以让他们确定为了能利用新部件是否有需要升级的程序。
KernelJanitors项目保持了一个列表,内容是需要修复的较小缺陷和解决方法。这些缺陷解决方法中大部分是由于向内核打较大的补丁时需要改动很多部分代码而导致的,比如有些地方会影响设备驱动程序。那些新近从事内核开发的人开始时的工作可以选择列表中的条目,这样让他们可以通过小项目学习如何编写内核代码,同时有机会为社区做出贡献。
还有,在另一个预发布的项目中,JohnCherry追踪了在对每个已经发布的内核版本进行编译时发现的错误和警告。这些编译统计数字随着时间的流逝一直持续下降,而且,以系统的形式来发布这些结果使得所取得的进展一目了然。在很多情况下,可以像使用KernelJanitors列表一样来利用这些警告和错误消息中的一部分,因为编译错误通常是由小的缺陷引起的,需要一些努力去修复。
最后,还有AndrewMorton的“must-fix”列表。由于他已经被选定为2.6内核发布后的维护者,他运用他的特权概括地列出了那些他认为在最终的2.6内核发布前最迫切需要解决方案的问题。must-fix列表中包含了内核Bugzilla系统中的缺陷,需要完成的部件,以及其他已知的问题,这些问题如不解决将阻碍2.6发布。这一信息可以帮助指明在新内核发布前还需要哪些步骤;对那些关心这一万众期待的2.6内核发布何时能完成的人来说,它还可以提供有价值的信息。[8]
“内核”具体是什么意思?
内核是操作系统的内部核心程序,它向外部提供了对计算机设备的核心管理调用。我们将操作系统的代码分成2部分。内核所在的地址空间称作内核空间。而在内核以外的统称为外部管理程序,它们大部分是对外围设备的管理和界面操作。外部管理程序与用户进程所占据的地址空间称为外部空间。通常,一个程序会跨越两个空间。当执行到内河空间的一段代码时,我们称程序处于内核态,而当程序执行到外部空间代码时,我们称程序处于用户态。
从UNIX起,人们开始用高级语言(UNIX上最具有代表性的就是UNIX的系统级语言C语言)编写内核代码,使得内核具有良好的扩展性。单一内核(monolithic kernel)是当时操作系统的主流,操作系统中所有的系统相关功能都被封装在内核中,它们与外部程序处于不同的内存地址空间中,并通过各种方式(在Intel IA-32体系中采用386保护模式)防止 外部程序直接访问内核结构。程序只有通过一套称作系统调用(system call)的界面访问内核结构。近些年来,微内核(micro kernel)结构逐渐流行起来,成为操作系统的主要潮流。1986年,Tanenbaum提出Mach kernel,而后,他的minix和GNU的Hurd操作系统更是微内核系统的典范。
在微内核结构中,操作系统的内核只需要提供最基本、最核心的一部分操作(比如创建和删除任务、内存管理、中断管理等)即可,而其他的管理程序(如文件系统、网络协议栈等)则尽可能的放在内核之外。这些外部程序可以独立运行,并对外部用户程序提供操作系统服务,服务之间使用进程间通信机制(IPC)进行交互,只在需要内核的协助时,才通过一套接口对内核发出调用请求。
微内核系统的优点时操作系统具有良好的灵活性。它使得操作系统内部结构简单清晰。程序代码的维护非常之方便。但是也有不足之处。微内核系统由于核心态只实现了最基本的系统操作,这样内核以外的外部程序之间由于独立运行使得系统难以进行良好的整体优化。另外,进程间互相通信的开销也较单一内核系统要大许多。从整体上看,在当前的硬件条件下,微内核在效率上的损失小于其在结构上获得的收益,故而选取微内核成为操作系统的一大潮流。
然而,Linux系统却恰恰使用了单一内核结构。这是由于Linux是一个实用主义的操作系统。Linux Tovarlds以代码执行效率为自己操作系统的第一要务,并没有进行过一个系统的设计工作,而是任由Linux在使用中不断发展。在这样的发展过程中,参与Linux开发的程序员大多为世界各地的黑客们。比起结构的清晰,他们更加注重功能的强大和高效的代码。于是,他们将大量的精力放在优化代码上,而这样的全局性优化必然以丧失结构精简为代价,导致Linux中的每个部件都不能轻易被拆除。否则必然破坏整体效率。
虽然Linux是单一内核体系,但是它与传统的单一内核UNIX操作系统不同。在普通的单一内核系统中,所有的内核代码都是被静态编译联入的,而在Linux中,可以动态装入和卸载内河中的部分代码。Linux将这些代码段称为模块。(module),并对模块给予了强有力的支持。在Linux中,可以在需要时自动装入和卸载模块。
Linux不支持用户态线程。在用户态中,Linux认为线程就是共享上下文(Context)的进程。Linux通过LWP(light weight thread)的机制来实现用户态线程的概念。通过系统调用clone()创建新的线程。
Linux的内核为非抢占式的。即,Linux不能通过改变优先权来影响内核当前的执行流程。因此,Linux在实现实时操作时就有问题。Linux并不是一个“硬”实时操作系统。
在Linux内核中,包括了进程管理(process management)、定时器(timer)、中断管理(interrupt management)、内存管理(memory management)、模块管理(module management)、虚拟文件系统接口(VFS layer)、文件系统(file system)、设备驱动程序(device driver)、进程间通信(inter-process communication)、网络管理(network management)、系统启动(system init)等操作系统功能的实现。
刷机,刷内核是什么意思
有内核要求的rom就必须得对应。而有的只是建议你用某个内核,会更流畅些。
内核是一个操作系统的核心,它负责管理系统的进程,内存,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性。内核以独占的方式执行最底层任务,保证系统正常运行。协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等
刷内核风险很大的,如果出错直接真砖了就,强刷也救不了。字体库被烧坏。
安卓手机的内核是什么意思?详细点。
手机内核也是Linux内核,Android系统是基于Linux研发的,它负责管2113理系统的进程,内5261存4102,设备驱动程序,文件和网络系统,决定着系统的性能和稳定性,内核以独占的方式执1653行最底层任务,保证系统正常运行,协调多个并发进程,管理进程使用的内存,使它们相回互之间不产答生冲突,满足进程访问磁盘的请求等等.