1. windows怎么进入内核模式
内核模式操作的一种高特权模式,其中的程序代码能直接访问所有内存(包括所有的用户模式进程和应用程序的地址空间)和硬件。也称为“管理员模式”、“保护模式”或“Ring 0”。 如果再细致地对此进行分类:它又可以被分为单内核模式和微内核模式两种。单内核模式代码结构紧凑、执行速度快,但是缺乏层次;微内核正好相反。单内核模式的代表如Linux;微内核模式的代表如Windows用户模式与内核模式是如何交互的呢 当用户模式程序需要读取设备数据时,它就调用Win32 API函数,如ReadFile。Win32子系统模块(如KERNEL32.DLL)通过调用平台相关的系统服务接口实现该API,而平台相关的系统服务将调用内核模式支持例程。在ReadFile调用中,调用首先到达系统DLL(NTDLL.DLL)中的一个入口点,NtReadFile函数。然后这个用户模式的NtReadFile函数接着调用系统服务接口,最后由系统服务接口调用内核模式中的服务例程,该例程同样名为NtReadFile。系统中还有许多与NtReadFile相似的服务例程,它们同样运行在内核模式中,为应用程序请求提供服务,并以某种方式与设备交互。它们首先检查传递给它们的参数以保护系统安全或防止用户模式程序非法存取数据,然后创建一个称为“I/O请求包(IRP)”的数据结构,并把这个数据结构送到某个驱动程序的入口点。在刚才的ReadFile调用中,NtReadFile将创建一个主功能代码为IRP_MJ_READ(DDK头文件中的一个常量)的IRP。实际的处理细节可能会有不同,但对于NtReadFile例程,可能的结果是,用户模式调用者得到一个返回值,表明该IRP代表的操作还没有完成。用户模式程序也许会继续其它工作然后等待操作完成,或者立即进入等待状态。不论哪种方式,设备驱动程序对该IRP的处理都与应用程序无关。驱动程序完成一个I/O操作后,通过调用一个特殊的内核模式服务例程来完成该IRP。完成操作是处理IRP的最后动作,它使等待的应用程序恢复运行。
2. 写一个操作系统内核有多难大概的内容,步骤是什么
“一个好一点儿的计算机硕士毕业的学生。写一个操作系统的内核绝对是应该办到而且肯定可以办到的事儿。” ------这句话我们可以理解为”一个好的计算机硕士掌握的理论知识足够他搭建起一个简单的操作系统框架“。
我上操作系统课(大二)的第一天就问我的老师,学完了这门课可以自己实现一个操作系统了吗?老师说:”你可以基本掌握操作系统中要处理的主要问题,但是即使实现最简单的五脏俱全的操作系统还需要掌握很多很多东西,而且前提是你已经有很不错的代码能力。“
回到题目上来,我们要实现一个简单的操作系统,最先需要解决的是哪些问题?这个问题我相信翻开任何一本操作系统书都可以得到答案,一般都是操作系统书的前五,六章内容(第一章基本是操作系统概念及发展历史)。
包括:
进程管理
存储管理
文件系统
输入/输出
这些大部分是讨论理论类的书,比如我们上课用的书是西电汤子瀛老师的《计算机操作系统》,后来自己为了深入学习买了Andrew S. Tanenbaum的《Modern Operating Systems》。
如果想写个操作系统,除了理论知识外,动手之前最好先看看操作系统源代码,Linux的代码都是开源的,可以先学习学习。不过对于我们这种初学者千万不要看最新的Linux内核代码,因为那是很多人的杰作,可能一辈子都看不完。最好先看看国内同济大学赵炯基于0.11的《Linux完全注释》,即使只看懂30%也至会让自己懂很多之前不知道的东西。
理论类的书很少有提到Bootload问题的,就是加电之后从哪里开始执行的部分。仅仅是这个步骤也需要花不少时间去了解CPU知识,汇编语言知识等,相当不容易。不话说回来,这部分如果能处理好之后会发现组成原理,汇编语言,微机原理的知识被自己运用到了,成就感巨大。这部分内容,可以参看MIT的课程6.828 Operating System Engineering的课程,Google一下就能搜到不少大牛关于这门课的博客。如果英语不太好我记得华中科技大学有一个叫32位操作系统实践的课,资料都放到网上了,看起来很不错。
过了这一关,用《深入理解计算机系统》加上《现代操作系统》看一下虚拟存储器的内容,这两本书这部分说得都很棒。虚拟存储器的概念贯穿所有,如果能弄懂,对很多方面都有很大的帮助,不仅仅是操作系统这块。有了虚拟存储器概念之后对于链接,加载等知识理解就会深刻许多。 不过,这部分内容也需要对硬件部分有所了解,又是一坑。
之后回到进程上来之后,终于可以把工作重心从硬件部分转移过来了。但是我们又将面对进程创建,进程调度,进程通信三大问题,既然是简单实现,就先不考虑线程的事。算法书中会给很多,不过这些算法都是有一定的局限性,比如调度算法,对应的调度算法优劣差异很大,至于如何抉择就看个人需求。不过话说回来,操作系统里的”算法“和ACM里的算法在难度上差很多,还是比较容易实现的。
内容太多了,就不完全展开了,后面就看自己“耐力”了,写操作系统是需要坚持很长实践+大量知识积累的。有些问题还涉及到哲学的观点,这里推荐上海交大邹恒明教授的《操作系统之哲学原理》。除了理论方面的书,现在市面上也有直接教如何实现一个操作系统的,比如《Orange'S:一个操作系统的实现》和《30天自制操作系统》(仅有的几本“XX天XX”而不是烂书的书),起步阶段跟着这些书来还是很不错的。
总之,实现最最基本的功能也许可以做到。实现功能强大,鲁棒性强的操作系统极难。
3. 写一个操作系统内核有多难大概的内容,步骤是什么
项目概述和开发环境配置
计算机启动过程、GRUB 以及 multiboot 标准
裸机上运行的 Hello OS Kernel
字符模式下的显卡驱动
相关库函数和调试打印函数
添加全局段描述符表
添加中断描述符表
完成中断请求和定时器中断
物理内存管理的实现
虚拟内存管理的实现
内核堆管理的实现
内核线程的创建与切换
接下来如何继续学习
------------------------------------------
这个东西很难被称为“内核”,甚至说它是“玩具内核”都是缪赞了。这只是一个看起来能运行的原理示范性质的小程序。不过不可否认,按照文档来,你可以写出一个看起来挺好玩的东西并学到一些基础知识。
虽然一个真正的内核很难很复杂,但是一个简单的Demo并不是遥不可及。即使有兴趣,学习的过程中也需要乐趣和不断获得的成就感,不是吗?
网络搜索“系统城”会有更多更新的电脑系统下载、电脑教程为您解决电脑相关问题。
4. 如何自己制作一个操作系统
你是一个真正的强人,也许我可以帮你。首先,你需要一个引导扇区(用汇编写),接下来你需要一个与引导扇区相对应的引导器(比如ntldr、bootmgr、grldr、ieldr,当然这里要你自己写,可以用汇编或C)。现在你的程序是这样的:开机通电,BIOS读取硬盘引导扇区数据,引导扇区加载引导器。接下来你要编写你的操作系统内核(用汇编或C)并让你的引导器加载你的系统内核或内核的一个加载模块。在编写操作系统内核时,你要考虑清楚如下问题:内存如何管理?是多进程还是单进程?处理器是在实模式还是在保护模式(保护模式要求自己编写外设驱动)?然后你要编写你的系统所需的文件系统。总之,问题多多。
更多内容,建议你读《Orange's一个操作系统的实现》。
5. 什么是电脑系统 内核
首先要将C盘重要文件拷出来,如自己的文档、图片等文件夹,系统文件不需要拷,需要一张系统安装盘,然后就可以重装系统了。
以XP为例步骤如下:
第一步,设置光启:
所谓光启,意思就是计算机在启动的时候首先读光驱,这样的话如果光驱中有具有光启功能的光盘就可以赶在硬盘启动之前读取出来(比如从光盘安装系统的时候)。
设置方法:
1.启动计算机,并按住DEL键不放,直到出现BIOS设置窗口(通常为蓝色背景,黄色英文字)。
2.选择并进入第二项,“BIOS SETUP”(BIOS设置)。在里面找到包含BOOT文字的项或组,并找到依次排列的“FIRST”“SECEND”“THIRD”三项,分别代表“第一项启动”“第二项启动”和“第三项启动”。这里我们按顺序依次设置为“光驱”“软驱”“硬盘”即可。(如在这一页没有见到这三项E文,通常BOOT右边的选项菜单为“SETUP”,这时按回车进入即可看到了)应该选择“FIRST”敲回车键,在出来的子菜单选择CD-ROM。再按回车键
3.选择好启动方式后,按F10键,出现E文对话框,按“Y”键(可省略),并回车,计算机自动重启,证明更改的设置生效了。
第二步,从光盘安装XP系统
在重启之前放入XP安装光盘,在看到屏幕底部出现CD字样的时候,按回车键。才能实现光启,否则计算机开始读取硬盘,也就是跳过光启从硬盘启动了。
XP系统盘光启之后便是蓝色背景的安装界面,这时系统会自动分析计算机信息,不需要任何操作,直到显示器屏幕变黑一下,随后出现蓝色背景的中文界面。
这时首先出现的是XP系统的协议,按F8键(代表同意此协议),之后可以见到硬盘所有分区的信息列表,并且有中文的操作说明。选择C盘,按D键删除分区(之前记得先将C盘的有用文件做好备份),C盘的位置变成“未分区”,再在原C盘位置(即“未分区”位置)按C键创建分区,分区大小不需要调整。之后原C盘位置变成了“新的未使用”字样,按回车键继续。
接下来有可能出现格式化分区选项页面,推荐选择“用FAT32格式化分区(快)”。按回车键继续。
系统开始格式化C盘,速度很快。格式化之后是分析硬盘和以前的WINDOWS操作系统,速度同样很快,随后是复制文件,大约需要8到13分钟不等(根据机器的配置决定)。
复制文件完成(100%)后,系统会自动重新启动,这时当再次见到CD-ROM.....的时候,不需要按任何键,让系统从硬盘启动,因为安装文件的一部分已经复制到硬盘里了(注:此时光盘不可以取出)。
出现蓝色背景的彩色XP安装界面,左侧有安装进度条和剩余时间显示,起始值为39分钟,也是根据机器的配置决定,通常P4,2.4的机器的安装时间大约是15到20分钟。
此时直到安装结束,计算机自动重启之前,除了输入序列号和计算机信息(随意填写),以及敲2到3次回车之外,不需要做任何其它操作。系统会自动完成安装。
第三步,驱动的安装
1.重启之后,将光盘取出,让计算机从硬盘启动,进入XP的设置窗口。
2.依次按“下一步”,“跳过”,选择“不注册”,“完成”。
3.进入XP系统桌面。
4.在桌面上单击鼠标右键,选择“属性”,选择“显示”选项卡,点击“自定义桌面”项,勾选“我的电脑”,选择“确定”退出。
5.返回桌面,右键单击“我的电脑”,选择“属性”,选择“硬件”选项卡,选择“设备管理器”,里面是计算机所有硬件的管理窗口,此中所有前面出现黄色问号+叹号的选项代表未安装驱动程序的硬件,双击打开其属性,选择“重新安装驱动程序”,放入相应当驱动光盘,选择“自动安装”,系统会自动识别对应当驱动程序并安装完成。(AUDIO为声卡,VGA为显卡,SM为主板,需要首先安装主板驱动,如没有SM项则代表不用安装)。安装好所有驱动之后重新启动计算机。至此驱动程序安装完成。
6. 如何自己做以UNIX为内核的操作系统
可以参考lfs,这个基本上就是给了你一个纯内核,在此基础上搭建出一个定制化极高的linux操作系统,这需要对linux有个比较深的理解才能做,如果你还没从源码包编译过软件并安装使用,建议先不要这样。。。如果想挑战极限,那么关键在于毅力,一般人弄个3-5天一看啥也没整明白,系统也根本装不上就烦了,最后不了了之,但是如果你有信心坚持3-4个月的弄lfs,那么你肯定没问题的。YLMFOS具体怎么弄得我不太清楚,但是通过修改ubuntu的部分代码就可以达到那样的效果。
7. 写一个操作系统内核有多难大概的内容,步骤是什么
太难了,我国科学院也在开发国产操作系统,但内核自己写不出来,用的内核是Linux系统的内核,谷歌开发安卓系统也用的是Linux内核,可见操作系统内核不容易写,windows内核就更不要说了,人家系统不是开源的,只有微软能写!
8. 什么是电脑系统 内核
内核是计算机的核心,只有一些基本的功能和驱动,向一个计算机该是框架模块结构的,方便扩展,核心可以为其他接入的硬件提供驱动,给某种设备供电,刘向发动机提供电源为核心计算机供电,核心计算机带动雷达,预警设备等正常工作。