《Linux内核设计与实现》笔记-1-linux内核简单介绍
一、Linux内核相对于传统的UNIX内核的比較:
(1):Linux支持动态内核模块。
虽然Linux内核也是总体式结构,但是同意在须要的时候动态哦卸除(rmmod xxx)和载入内核模块(insmod xxx.ko).
(2):Linux支持对称多处理(SMP)机制,虽然很多UNIX的变体也支持SMP。可是传统的UNIX并不支持这样的机制。
(3):Linux内核能够抢占(preemptive)。在Linux 2.4以及曾经的版本号都是不支持内核抢占的。在Linux 2.6以及以后就支持了。
(4):Linux内核不区分线程和进程的。对于内核,全部的进程都是一样的。仅仅只是当中的一些资源共享而已。
二、单内核和微内核的差别
单体内核:大内核。将OS的所有功能都做进内核中,包含调度、文件系统、网络、设备驱动器、存储管理。
比方设备驱动管理、资源分配、进程间通信、进程间切换管理、文件系统、存储管理、网络等。
单体内核是指在一大块代码中实际包含了所有操作系统功能,并作为一个单一进程执行。具有唯一地址空间。
大部分UNIX(包含Linxu)系统都採用的单体内核。
微内核:微内核与单体内核不同。微内核仅仅是将OS中最核心的功能增加内核,包含IPC通信、地址空间分配和主要的调度,这些东西处在内核态执行。如:WINCE系统。
而其它功能如设备驱动、文件系统、存储管理、网络等作为一个个处于用户态的进程而向外提供某种服务来实现。并且这些处于用户态的进程能够针对某些特定的应用和环境需求进行定制。有时,也称这些进程为server。
三、Linux内核版本号
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2h1bl8xOTU5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
四、Linux内核开发的特点
(1):内核编程时不能訪问C库。可是大部分C库函数在内核中都已经实现了。
(2):内核编程时必须使用GNU C。
(3):内核编程时缺乏像使用用户空间那样的保护机制
(4):内核编程时浮点数非常难使用
(5):内核仅仅有一个非常小的定长堆栈;内核栈非常小,长度固定,32位的内核栈是8KB,而64位的是16KB。
(6):因为内核支持异步中断、抢占和SMP,因此必须时刻注意同步和并发
(7):要注意可移植性的重要性
《Linux内核设计与实现》笔记-1-linux内核简单介绍的更多相关文章
- Linux内核设计与实现笔记_1_基本概念
Linux内核设计与实现笔记_1_基本概念 操作系统 系统这个词包含了操作系统和所有运行在它上面的应用程序.操作系统是指在整个系统中负责完成分最基本功能和系统管理的那些部分,这些部分应该包括: 内核, ...
- 算法笔记_071:SPFA算法简单介绍(Java)
目录 1 问题描述 2 解决方案 2.1 具体编码 1 问题描述 何为spfa(Shortest Path Faster Algorithm)算法? spfa算法功能:给定一个加权连通图,选取一个 ...
- 进程_Linux内核设计与实现笔记
进程 进程是处于执行期的程序以及相关资源的总称,是正在执行的代码的实时结果. 进程部分位于Kernel的PM层.进程是Unix操作系统的抽象概念中最基本的一种,操作系统的存在就是为了运行用户程序,所以 ...
- 嵌入式Linux下MP4视频录制库MP4V2移植和简单介绍
**************************************************************************************************** ...
- linux内核设计与实现笔记 进程调度
转载:http://blog.chinaunix.net/uid-24919665-id-3013590.html
- 把握linux内核设计思想(七):内核定时器和定时运行
[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 前面章节说到了把工作推后到除如今以外的时间运行的机制是下半部机 ...
- Linux内核设计第二周学习总结 完成一个简单的时间片轮转多道程序内核代码
陈巧然 原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.使用实验楼的虚拟机 ...
- 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令
Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...
- tcp ip协议笔记(1)——简单介绍
前言 本人记性不佳,看书健忘,以此笔记来记录看书后自己所知所想,已达到加深对tcp ip的理解.本笔记不过我看完书后自己所写的总结,权当是书后复习. 一.为什么会有tcp ip协议 ...
- 项目管理---git----快速使用git笔记(一)------git的简单介绍
最近svn代码管理服务器崩溃了,切换到git来运作. 经过几天的使用,感觉很不错. 尤其是代码合并到正式版本之前 可以对代码进行 code review. 这样能很好的保证团队的代码质量和一些重复代码 ...
随机推荐
- nio案例一:个简单的客户-服务的案例
<Java NIO文档>非阻塞式服务器 原文连接 原文作者:Jakob Jenkov 译者:higher 即使你知道Java NIO 非阻塞的工作特性(如Selector,Channel, ...
- js中ajax的异步性
最近项目里遇到ajax异步性的问题,简化后的代码如下: function ajaxGetEvents(calendarView, time) { var year = time.getFullYear ...
- [BZOJ 1901] Dynamic Rankings
Link: BZOJ 1901 传送门 Solution: 带修改主席树的模板题 对于静态区间第$k$大直接上主席树就行了 但加上修改后会发现修改时复杂度不满足要求了: 去掉/增加第$i$位上的值时要 ...
- [BZOJ3529]数表
假设$n\leq m$,我们先不考虑$\leq a$的限制 $\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sigma((i,j))=\sum\limits_{T=1} ...
- 【MySQL笔记】触发器,存储过程和函数
一.触发器 触发器(TRIGGER):是由事件来触发某个操作.当数据库系统执行这些事件时,就会激活触发器执行相应的操作.MySQL从5.0.2版本开始支持触发器. 触发事件:INSERT语句.UPDA ...
- Trie 图
时间限制:20000ms 单点时限:1000ms 内存限制:512MB 描述 前情回顾 上回说到,小Hi和小Ho接受到了河蟹先生伟大而光荣的任务:河蟹先生将要给与他们一篇从互联网上收集来的文章,和一本 ...
- Java之——redis并发读写锁,使用Redisson实现分布式锁
原文:http://blog.csdn.net/l1028386804/article/details/73523810 1. 可重入锁(Reentrant Lock) Redisson的分布式可重入 ...
- VMware8安装MacOS 10.8
前一篇博客,介绍了如何利用VMware安装MacOS系统,虽然可以安装成功,但也有不友好的地方,如: 1)MacOS系统文件需要是ISO格式,不是原生的dmg格式: 2)每次开机都需要借助HJMac工 ...
- appium+python自动化46-安装app三种方式
前言 adb安装 1.在app自动化之前,首先手机上有要被测试的app,如何把电脑本地上的app安装到手机上呢?可以在运行自动化代码前,在cmd输入adb指令,把电脑app安装到手机上 adb ins ...
- easyui-combobox绑定回车事件注意事项
回车事件的定义的位置必须是easyui-combobox数据加载的后面,才有效果. HTML文件: <select id="aucBrandNo" class="e ...