问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...的主要特点,概述LINUX内核的特点 2.简述嵌入式产品的平台化设计方...

发布网友 发布时间:2023-12-23 00:54

我来回答

1个回答

热心网友 时间:2024-04-11 12:36

Unix
unix 已有40历史,但计算机科学家仍认为其是现存操作系统中最大和最优秀的系统,它已成为一种传奇的存在,历经时间的考验却依然声名不坠。
1973 年,在用 C 语言重写了 Unix 系统后,大量的Unix衍生版本开始出现,许多公司把 unix 移植到新的机型上,开发者们都按照自己的方式不断增强系统的功能。Unix 系统设计简洁并在发布时提供源代码,所以许多团体都对其进行了进一步的开发。加州大学伯克利分校便是其中影响最大的一个。在BSD基础上,很多厂商也推出了自己的unix ,如 SunOS、HP-UX 等。1991 年,linus 在Internet 上发布了它的 Unix 。从此 linux 便起航了,Linux很快吸引了众多开发者、黑客对其代码进行修改和完善,由于其开源性,Linux 迅速成为多人合作的开源项目。
操作系统与内核
操作系统包括内核、设备驱动程序、启动引导程序、命令行shell、基本系统工具等部分。内核是操作系统的真正核心,负责硬件设备管理、分配系统资源等任务。内核一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限,这种系统态和被保护起来的空间统称为内核空间。应用程序在用户空间只能看到允许它们访问的部分系统资源、只能使用某些特定的系统功能,无法直接访问硬件、也不能访问内核划给别人的内存范围,还有一些其他的限制。应用程序通过 系统调用 与内核通信,让内核代其完成不同的任务。
内核还负责管理系统的硬件设备。当硬件设备想要和系统通信的时候,它会发出一个异步的中断信号以打断处理器执行,继而打断内核执行。中断通常对应着一个中断号,内核通过中断号查找相应的中断服务程序,并调用这个程序响应和处理中断。中断服务程序在一个与所有进程都无关的、专门处理中断的上下文中运行,以保证中断服务程序能在第一时间响应和处理中断请求并快速退出。
单内核与微内核
操作系统的内核可分为两大阵营:单内核和微内核。单内核就是把它从整体上作为一个大的过程来实现,同时也运行在一个单独的地址空间上,其特点是高性能。微内核并不作为一个单独的大过程来实现,其根据功能不同划分成多个独立的过程,其特点是各过程独立运行,避免了一个模块出现问题后祸及另一个。其相比单内核设计多了模块间的通信机制等环节,而单内核却没有这些消息传递的开销。所以,大部分基于微内核的系统都让大部分或全部功能过程全部运行在内核,如此便可以直接调用函数,消除频繁的上下文切换。windowNT、Mach就是微内核的典型实例。Linux 是单内核,但是其汲取了微内核的精华部分。Linux是模块化的、多线程的以及内核本身可调度的操作系统。
内核版本号
主版本号.副版本号.修订版本号
副版本号反映了该内核是一个稳定版本还是一个处于开发中的版本:如果该数字是偶数,那么此版本就是稳定版;如果是奇数,那么他就是开发版。
获取源码
官网地址:www.kernel.org
仓库地址:git.kernel.org
编译内核
由于从未配置过内核,所以使用缺省配置编译内核,据说这个默认配置是 Linus 本人的配置。
$make defconfig

如果要减少编译过程中的输出信息,可以使用下列命令
$make > .. /detritus

如此一来,如果你要查看编译信息,可查看该文件。当然你也可以直接 $make > /dev/null 把无用信息重定向。
安装内核
% make modules_install

上面命令可以把所有已编译的模块安装到正确的主目录。编译时会在内核代码根目录生成一个 system.map 文件,这是一个符号对照表。
内核开发
内核开发对性能的要求非常高。内核开发不能访问 C 库,也不能访问标准的 C 头文件。内核开发必须使用 GNU C,对内核来说完整的 C 库(甚至是一个子集)太大且太低效了。但大部分常用的 C 库函数在内核中都已经得到了实现。Linux 的内核混合使用了 C 语言和汇编语言,在靠近底层或对执行时间要求严格的地方,一般使用的都是汇编语言。GCC 支持使用 asm() 指令在 C 中嵌入汇报代码。
条件分支优化
对于条件选择语句,在经常条件经常出现或极少出现的时候,编译前可根据分支声明语句对条件分支进行优化。示例:
/* 把一个条件标记成极少发生的分支。 */if (unlikely(err)){
...
}

这里一定要确保是否当前条件在绝大多数都会成立,如果你判断正确,那么程序性能将得到答复提升,否则,反而会降低性能。
没有内存保护机制
如果用户程序试图进行一次非法的内存访问,内核会发现这个错误,并结束这个进程。然而如果内核自己非法访问了内存,那后果就很难控制了,因为没有其他的任何东西可以对内核进行监控。还有一点,内核中的内存都不分页。
扩展
内核拥有整个系统的最高权限,关于内核开发的特别注意事项还有很多,可以到更专业一点的文章中了解。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
糖代谢增高会发展成糖尿病吗? 地毯怎么选购呢 酒店地毯定制 葡萄籽油可以炒菜吗 葡萄籽食用油炒菜好吃吗 ...道路的理论基础、时代背景、历史依据、现实依据 排骨怎么炖好吃又简单家常做法 家常炖排骨怎样做好吃 vivox9spius怎么设置指纹解锁屏幕呀求大神交 vivox9pius怎么解锁密码 手机,没了你会更好作文 金刚菩提 行家看看价位 别人做的按键小精灵 有提供试用码的 但是可以只可以试用5次 每次15分 ... PSP上的机密武装2蔓延 能不能在3.71M33-2的系统上玩? 在利益面前,朋友亲情,一文不值! 我为什么被《草原》吸引住了? 为什么说老舍先生在《草原》中抒发了深深的蒙汉两族情谊? ...有时候还梦见她跟我作对!我想问问我跟她有没有缘分?? 食虫草养殖方法 845的垃圾主板,带agp插槽,适合配哪一款独立显卡 约战精灵再临华为版安卓游戏官方下载 没到一年怎么申请改? 男仕内裤上有只豹子的标志是啥牌子 一年只能改一次怎么改第二次? 求推荐一款安卓系统的手机,2000以下,不超过2000。学生用,小巧一点... 请问谁知道在比较薄的的纸上印字用什么机器或是打印机,质量不要求高但... 梅林传奇会拍第六季吗? 外地在无锡打工的去无锡新区五洲医院治疗疾病能享受医保吗? 莱芜至辽宁盖县多少公里 聚享捕鱼来了老版本如何下载 夫妻专项附加扣除怎么填报比较好 盖州离万家岭多少公里 追求别人女朋友有错吗?(很喜欢的!) 我要去石景山游乐园,有些疑问 屏幕黑屏时间怎么调整 购买二手房需要哪些手续?注意事项有哪些? 怎么注销? 为什么我的IE浏览器老是默认连接到http://www.8749.com 逐个抽取放回 一个电话注册了二个,注销第二个,笫一个号能找回来? 怎么改第二次苹果手机 哪位朋友知道男士内裤裤头有一个A字的标志的是什么牌子,在哪可以买到... 一个手机号注册两个微信后怎么登录第一个 亲情,爱情,友情到底是社么,哪个重要,都会用心么,还是在利益面前... 我想换一个,怎么把原上的好友全都转移到新号上? ...劳动合同,约定了年薪,每月只发部分,剩下部分口头承诺满一年... 一个手机号在注册了一个微信后又注册了新的,旧的怎么找回? 苹果手机怎么修改第二次 深圳职业技术学院2023年在广东省最低录取分数分别为: 互联网+农业模式会带来哪些机遇? 花都荷塘居有什么好吃