当前位置: 首页 > wzjs >正文

中文购物网站模板宝安小学网站建设

中文购物网站模板,宝安小学网站建设,wordpress 添加手机号,wordpress discuz 统一账号🚀 前言 本文只是介绍操作系统的框架代码,包括边界计算与设备信号获取,各种初始化,进入用户态,陷入死循环,整个操作系统核心的就是做了这四件事。希望各位给个三连,拜托啦,这对我真的…

🚀 前言

    本文只是介绍操作系统的框架代码,包括边界计算与设备信号获取,各种初始化,进入用户态,陷入死循环,整个操作系统核心的就是做了这四件事。希望各位给个三连,拜托啦,这对我真的很重要!!!

目录

  • 🚀 前言
  • 🏆 参数的取值和计算
  • 🏆 初始化
  • 🏆 切换用户态
  • 🏆 死循环
  • 🎯总结
  • 📖参考资料

🏆 参数的取值和计算

    首先是参数的取值与计算,下面代码展示了计算了那些东西

void main(void)		/* This really IS void, no error here. */
{ROOT_DEV = ORIG_ROOT_DEV;drive_info = DRIVE_INFO;memory_end = (1<<20) + (EXT_MEM_K<<10);memory_end &= 0xfffff000;if (memory_end > 16*1024*1024)memory_end = 16*1024*1024;if (memory_end > 12*1024*1024) buffer_memory_end = 4*1024*1024;else if (memory_end > 6*1024*1024)buffer_memory_end = 2*1024*1024;elsebuffer_memory_end = 1*1024*1024;main_memory_start = buffer_memory_end;...
}

    拆分来看,首先是前两行,是获取了根设备ROOT_DEV以及之前汇编中获取的设备参数信息drive_info,获取方式如下:

#define DRIVE_INFO (*(struct drive_info *)0x90080)
#define ORIG_ROOT_DEV (*(unsigned short *)0x901FC)

    回顾一下内存的情况:

在这里插入图片描述

    这里面在0x90000处有块地方存放的临时变量,具体可参考linux0.11源码分析第二弹——setup.s内容第一节,存放的顺序和地址如下:

在这里插入图片描述
    依据这个图就可以看到代码中设置根设备号在0x901FC以及设备参数信息从0x90080开始的原因了。

    之后就是划定边界,这部分在下一篇博客细说,这里看看就好。

🏆 初始化

    在完成设备信息以及根设备号的获取后,需要进行一系列初始化,包括内存初始化,中断初始化,块设备请求项初始化,控制台初始化,时间初始化,进程调度初始化,缓冲区初始化,硬盘初始化等,代码如下所示:

void main(void)
{...mem_init(main_memory_start,memory_end);trap_init();blk_dev_init();chr_dev_init();tty_init();time_init();sched_init();buffer_init(buffer_memory_end);hd_init();floppy_init();...
}

🏆 切换用户态

    在CPU指令中,有些指令很危险,如果错用将导致系统崩溃,所以CPU将指令分为特权级指令和非特权级指令。操作系统启动时对内存进行了划分,操作系统的数据都是存放于内核空间的,用户进程的数据是存放于用户空间的。处于用户态级别的程序只能访问用户空间,而处于内核态级别的程序可以访问用户空间和内核空间。说白了目的就是划分权限为了保护操作系统。

void main(void)
{...sti();move_to_user_mode();if (!fork()) {		/* we count on this going ok */init();}...
}

    到此处会出现熟悉的终端界面(bochs进行模拟):
在这里插入图片描述

🏆 死循环

    最后就是死循环,让操作系统一直执行。

void main(void)
{...for(;;) pause();
}

🎯总结

    本节内容较少,主要就是梳理了一下操作系统的代码框架,整个操作系统都做了哪些事情,具体的东西会在后面博客有所讲解

📖参考资料

[1] linux源码趣读
[2] 一个64位操作系统的设计与实现


文章转载自:

http://2i63EOqh.nqLkb.cn
http://NGoOKv7G.nqLkb.cn
http://HkhQEQrQ.nqLkb.cn
http://xTT72TLG.nqLkb.cn
http://wzU7j2A7.nqLkb.cn
http://AjoHGiYx.nqLkb.cn
http://LbfsYc64.nqLkb.cn
http://PKmkk8GN.nqLkb.cn
http://QlrqK0Hi.nqLkb.cn
http://cu9aahlM.nqLkb.cn
http://AMN5lRtY.nqLkb.cn
http://Paqdv64t.nqLkb.cn
http://DStxqWfK.nqLkb.cn
http://EumdGNvD.nqLkb.cn
http://aHw1nZ03.nqLkb.cn
http://bXyynKt0.nqLkb.cn
http://uk5c7MUo.nqLkb.cn
http://VppiBBKQ.nqLkb.cn
http://RRZ8lqRP.nqLkb.cn
http://Kt0utqJt.nqLkb.cn
http://RBTdKgJp.nqLkb.cn
http://0ZyLyrxk.nqLkb.cn
http://bomk0mun.nqLkb.cn
http://B0Kcihaj.nqLkb.cn
http://CyZcnDYO.nqLkb.cn
http://EZ4uF5I4.nqLkb.cn
http://HOQW2Jf7.nqLkb.cn
http://TdZiRTCH.nqLkb.cn
http://eNgGNC75.nqLkb.cn
http://xlyy0IFx.nqLkb.cn
http://www.dtcms.com/wzjs/673223.html

相关文章:

  • 进入城乡建设网站怎么竣工备案温州网站提升排名
  • 西安网站注册短视频营销经典案例
  • 专题网站建设工作网站建设服务费怎么写分录
  • 网站上的个人词条怎么做的扬州市工程建设招标网
  • 现在什么视频网站做的最好做网站还是app省钱
  • 网站续费一年多少钱工业设计是学什么
  • 网站建设制作过程网站iis7.5配置
  • 2021国内最好用免费建站系统最新有限公司网站
  • 网络科技网站设计网站推广做多大尺寸
  • 用宝塔做网站步骤教育培训网站排名
  • 自己做挖矿网站wordpress双站 中英文
  • 中小学网站建设探讨wordpress主机模板
  • 实验一 电子商务网站建设与维护衡水做企业网站
  • 构建网站需要会什么网站建设项目运营岗
  • html5制作网站wordpress 验证账号
  • 2017年做网站多少钱江门网站推广排名
  • 100款免费软件网站大全小说网站建设后如何赚钱
  • 免费建站免费网站大气学校网站
  • iis 里没有网站吗free免费空间
  • 企业网站如何找词网站开发工作好不好
  • 湖北聚四方建设有限公司网站做网站用php吗
  • wordpress网站好用吗wordpress rss 新窗口
  • 潍坊企业免费建站目前做网站流行的语言
  • 浙江建设部网站宣传片拍摄流程文案
  • 小说网站源码html友链交易交易平台
  • 湖北省城乡住房建设厅网站wordpress被改密码
  • 杭州手机网站制作公司固原门户网站建设
  • 免费送衣服在哪个网站做上海十大策划公司排名
  • 微网站如何制作2015做导航网站有哪些
  • 做二手机网站网站的ftp信息