社区
汇编语言
帖子详情
内核究竟是什么?(新手)
guaiwei
2004-12-15 02:07:04
小弟正在开始学习操作系统的内核.有一些问题老是不明白,所谓的内核究竟是什么呢??
在minix 设计一书中说到内存管理器是在内核之外的,那么放在外面和放在里面的区别标志是什么呢?
如果我现在在linux下面编写了一段程序,操作系统帮我完成了一些什么功能呢??
还有就是我在linux下面写了一段向显存输入字符让显示器显式的汇编代码,不能运行,操作系统是怎么样控制不能运行这些程序的呢??
请大侠指点迷津,小弟先谢过了
...全文
297
7
打赏
收藏
内核究竟是什么?(新手)
小弟正在开始学习操作系统的内核.有一些问题老是不明白,所谓的内核究竟是什么呢?? 在minix 设计一书中说到内存管理器是在内核之外的,那么放在外面和放在里面的区别标志是什么呢? 如果我现在在linux下面编写了一段程序,操作系统帮我完成了一些什么功能呢?? 还有就是我在linux下面写了一段向显存输入字符让显示器显式的汇编代码,不能运行,操作系统是怎么样控制不能运行这些程序的呢?? 请大侠指点迷津,小弟先谢过了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
guaiwei
2004-12-16
打赏
举报
回复
谢谢大家的热心指教,小弟有所明白了。分级的方法就是说如果我现在在Linux下面去运行一个直接读写内存的汇编程序是肯定不行的,因为我的程序跑在linux这个想对底层的程序只上,由它负责我的行动的调入,它把我的cpu运行级别设在了3级,那么当cpu执行这些i/o读写指令的时候便会报错,如果我要进行i/o操作就只能调用操作系统提供的调用。是这样的把
jsblcg
2004-12-15
打赏
举报
回复
前面几位说的不错,我补充一下。
这要看你的设计思想了,除了中断管理、虚拟内存管理、设备管理等必须放在内核之外,有许多部分既可以放在内核,也可以放在内核之外。例如图形界面就是一个例子,Windows将其做在内核,而Unix使用一个服务器程序(就是著名的X Windows系统)实现,不属于系统内核。
目前的系统设计均遵循微内核机构,内核尽量小(容易移植调制安全稳定等),但出于性能考虑,也需要做些折中。Windows就是如此,它的内核是主要是HAL.DLL和ntoskrnl.dll等模块,很小,但出于图形性能考虑,图形部分也加入了内核。
xwdd129
2004-12-15
打赏
举报
回复
呵呵,问题简单,回答经典!!
kokblack
2004-12-15
打赏
举报
回复
转贴:
intel x86 架构的 CPU 分为好几个运行级别,从 0--3 , 0 为最高级别, 3 为最低级别
针对不同的级别,有很多的限制,比如说传统的 in ,out 指令,就是端口的输入输出指令,在 0 级下是可以用的,但在 3 级下就不能用,你用就产生陷井,告诉你出错了,当然限制还有很多了,不只是这一点
操作系统下是利用这个特点,当操作系统自己的代码运行时, CPU 就切成 0 级,当用户的程序运行是就只让它在 3 级运行,这样如果用户的程序想做什么破坏系统的事情的话,也没办法做到
当然,低级别的程序是没法把自己升到高级别的,也就是说 用户程序运行在 3 级,他想把自己变成 0 级自己是做不到的,除非是操作系统帮忙...... 打个比方,版主 可以删除你的贴子,你却不能删除 版主 的贴子 ,当然你也没法让自己变成 版主 ,除非 版主 把你升为 版主(或是系统有 bug ).....
利用这个特性,操作系统就可以控制所有的程序的运行,确保系统的安全了. 平时把操作系统运行时的级别就叫内核态(因为是操作系统内核运行时的状态),而且普通用户程序运行时的那个级别叫用户态...
当操作系统刚引导时, CPU 处于实模式,这时就相当于是 0 级,于是操作系统就自动得到最高权限,然后切到保护模式时就是 0 级,这时操作系统就占了先机,成为了最高级别的运行者,由于你的程序都是由操作系统来加载的,所以当它把你加载上来后,就把你的运行状态设为 3 级,即最低级,然后才让你运行,所以没办法,你只能在最低级运行了,因为没办法把自己从低级上升到高级~~~~~~~~ 打个比方, 这个论坛是由 版主 创立的,当时创立时就他一个用户,所以它就自然取得了最高权限了,即 版主 运行在 0 级(内核态),然后他再让我们注册自己的账号,但是设置的权限是普通用户,所以我们一注册就只能是普通用户,即我们只能运行在 3 级(用户级),我们没有更多的权限,所以我们只能任由 版主 "蹂躏" 了,看你不爽就删除你的贴子,踢你下线,加你进黑名单,永久封你的IP之类的,你除了发发牢骚之外也是无可奈何了, 这就是操作系统在 内核 态可以管理用户程序,杀死用户程序的原因了~~~~~
ljhcnljh
2004-12-15
打赏
举报
回复
学习,我喜欢
VxD1
2004-12-15
打赏
举报
回复
操作系统放在第0级,一般的程序放在第3级。
放在0级的代码能访问放在第3级的数据,放在第3级的不能访问第0级的数据。
如果你写一段程序,运行这个程序,操作系统就帮你的程序加载,然后设置一些环境,然后把控制转移到你的程序中。你的程序是怎么不能运行的?
xxiaoran
2004-12-15
打赏
举报
回复
ding...
Linux
内核
编程:入门篇
《Linux
内核
编程》将突破以往传统的学习方式,采取更有效和科学的学习方法,多角度地对
内核
进行多层次分析,不局限于形式,不拘泥细节,目的只有一个:更轻松、更高效地去理解
内核
、学习
内核
。 为了更好地让学员掌握...
GitHub怎么用?GitHub是什么?
新手
怎么用GitHub?图文并茂,不看都不行
GitHub是什么?
新手
怎么用GitHub?这些问题都不是问题了:英文10分【满分100分】水平的人来说:这个教程和小说很重要!这妮儿图文并茂,比我还幽默 汗!!!,我就直接转载过来,需要的同学赶紧马克走吧! 绝对
新手
...
什么是shell,用途是什么?
shell学习11、什么是shell2、什么是shell脚本3、shell的用途 1、什么是shell 1、shell是操作系统的最外层,是一个用户跟操作系统之间交互的命令解释器。 2、大多数linux默认的shell命令解释器是 bash(/bin/bash...
嵌入式硬件工程师是什么?
新手
学习需要了解什么?
在学习的道路上我们一直是
新手
,硬件行业显得更加如此。想成为高级嵌入式硬件工程师,你还缺少什么? 有很多朋友经常会问,成为高级嵌入式系统硬件工程师,需要做到哪些呢?这里的话你可以留下企鹅,相信我一定可以...
yocto编译linux
内核
,如何编译Linux的
内核
如何编译Linux的
内核
.
内核
,是一个操作系统的核心。它负责管理系统的进程、内存、 设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。... 对于linux
新手
来说,编译
内核
相对有一些难度,甚至不知道如...
汇编语言
21,458
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章