16 | 时间初始化time_init:操作系统怎么获取当前时间?
闪客
你好,我是闪客。
上一讲咱们说到,通过初始化控制台的 tty_init 操作,内核代码已经可以很方便地在控制台输出字符啦!
用户也可以通过敲击键盘,或调用诸如 printf 这样的库函数,在屏幕上输出信息,或使用换行和滚屏等功能。这些都得益于 tty_init 这个初始化方法和它对外封装的小功能函数在底层的支撑。
时间初始化 time_init
我们继续看下一个初始化的倒霉鬼,time_init。
曾经我很好奇,操作系统是怎么获取到当前时间的呢?
当然,现在都联网了,它可以从网络上实时同步时间。但没有网络时,为什么操作系统启动之后可以显示出当前的时间呢?难道操作系统在电脑关机后,依然不停地在某处运行着,勤勤恳恳地数着秒表么?
当然不是,我们今天就打开这个 time_init 函数一探究竟。
打开这个函数后我又是很开心,因为它很短,且没有更深入的方法调用。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了操作系统中时间初始化time_init的过程,通过与CMOS端口进行读写交互,获取年月日时分秒等数据,并计算出开机时间startup_time变量。文章通过解释CMOS_READ和BCD_TO_BIN的实现方式,展示了操作系统与外设交互的基本玩法。作者强调了操作系统设计的繁琐性,需要读取硬件手册获取信息并进行设置。总结来看,本文突出了操作系统中与外设交互的重要性,展示了操作系统设计的基础知识。
该试读文章来自《Linux0.11 源码趣读》,如需阅读全部文章,
请先通过赠一得一解锁课程
请先通过赠一得一解锁课程
赠一得一
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- IT蜗壳-Tango打卡留念2023-02-15归属地:江苏1
- Y~龙。!精彩2023-08-06归属地:广东
收起评论