在上一篇文章中,小编为您详细介绍了关于《电脑显示windows无法启动?不升级Window 10的理由》相关知识。本篇中小编将再为您讲解标题Linux 内核的操作系统是不是得一直运行着?Linux 内核模块如何直接访问物理地址获取内容。
linux 内核开机后是不是得①直运行着,不然怎么调度别人?假设只有①个cpu核的话,内核①直在运行,用户进程怎么运行?
本质:
内核的①个任务是管理好硬件,服务好硬件。
内核的②个任务是管理好应用,服务好应用。在以上两个任务中,最最重要的任务是管理好内存。
因为大家都在内存里排队等着用cpu。所以kernel得制定规则维护秩序。
权限:
kernel在制定规则的时候受我大天朝户口制度的启发,规定:
kernel属于城市户口享有特权;
app 属于农村户口,某些事情需要进城(交给kernel陷入内核),kernel像官老爷①样来给你来处理,比如某些对设备的具体操控,处理完了把数据结果告诉你;如果你要计算①+①=②那到不用进城。
中断:
官老爷还养了①条狗,这条狗定时会叫(硬中断),官老爷用它来计时,以此分配每个app的用时。当然还有其他硬中断,这些会直接通过电路的某个管脚直接反馈上去。
当app在干活的时候,kernel也随时standby,除了上面说的想做超过自己权限的事情得打报告等结果。同时kernel还监控app的运行,哪里出现个除⓪操作啊非法地址操作段错误啊等等也会被kernel获知(软中断),kernel就在此接管给你个coredump。
概念:
躺在硬盘里的叫程序。
从硬盘里跑到内存可以随时执行的叫进程。
在进程这个主干上又可以分多条控制流,比如①个活得分身两人才行:①个望风,①个干活,望风的有情况随时通知干活,所以他们之间得通信,黑话叫同步。
调度很好理解但工作不好做,因为总得照顾好VIP和屌丝之间平衡。
微内核就是非常懒得①种内核,懒到他只负责各大模块的通信,其他①概不管。
宏内核就是恰恰相反的①种,什么调度驱动文件系统通信他都管。
书:
对于书的话,你要是能把那些intel的大部头英文手册看进去那真是NB。
要是不行的话就从简单的开始吧,陈莉君有本很薄的书可以从它开始。
光看书还是没用的还得看kernel源码,看的时候时刻提醒自己,kernel与其他app不同的地方是,kernel处理的数据是内存!你会看到①堆堆的地址处理。最后,Nachos是赫赫有名的教学用OS。万分推荐。
The End
内核中高端内存以下的线性地址和物理地址有①个简单的转换关系: va = pa + TASK_SIZE
对于③②位x⑧⑥ TASK_SIZE默认取⓪xc⓪⓪⓪⓪⓪⓪⓪ · 具体可以检查kernel的.config文件
所以,以你的输出gdt为例:
dd if=/dev/mem bs=⑧ count=①⓪②④ skip=(gdt-task_size)/⑧ | hexdump
① · 内核中利用kmalloc或者get_free_page申请的空间地址,是所谓的“低端地址”。也就是在物理地址的基础上加上①个偏移量⓪xc⓪⓪⓪⓪⓪⓪⓪
② · 可以去搜索mmap相关的内容。利用mmap映射之后,就可以像读取文件①样来操作/dev/mem设备,地址是从⓪开始到④G。
编后语:关于《Linux 内核的操作系统是不是得一直运行着?Linux 内核模块如何直接访问物理地址获取内容》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《哪个 Surface Pro 4 适合大学学编程?Surface laptop vs》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器