利用外部程序对存储BIOS设置参数的CMOS RAM进行读取操作的可行性分析

8 篇文章 4 订阅
2 篇文章 0 订阅

电脑的启动过程如下:

机后主动执行BIOS程序,可以通过BIOS去设置CMOS,也可以不设置;

然后BOIS会去识别操作系统引导设备的引导分区,一般也就是电脑里的硬盘中的第一个扇区;

这个扇区中有分区表和主引导分区MBR,我们找到了MBR;

MBR中存放的是引导加载程序(Boot loader),其可以读取内核文件;

内核文件:开始操作系统的功能了。

 

BIOS和CMOS:

 

     

BIOS实际就是ROM里面的一段小程序(芯片总容量大概就是几M),在主板通电时候会硬件加载执行。基本功能就是进行硬件检测,检查没问题就引导bootloader和系统。

首先主板通电,硬件自动加载bios程序。bios程序检查硬件,初始化和设置硬件,然后加载磁盘(启动盘)的MBR扇区到0x7c00,然后跳到0x7c00执行。为什么是0x7c00?可以看【http://www.ruanyifeng.com/blog/2015/09/0x7c00.html】。主要是兼容历史的原因。
 

我们看一下GOOGLE上面的一个问题。

Q:What is CMOS and its function?

ANS:The CMOS is a physical part of the motherboard: it is a memory chip that houses setting configurations and is powered by the onboard battery. The CMOS is reset and loses all custom settings in case the battery runs out of energy, Additionally, thesystem clock resets when the CMOS loses power.

Q:What's the diffrence between BIOS and CMOS RAM?

ANS:Nonvolatile BIOS memory refers to a small memory on PC motherboards that is used to store BIOS settings. It is traditionally called CMOS RAM because it uses a volatile, low-power complementary metal-oxide-semiconductor (CMOS) SRAM (such as the Motorola MC146818 or similar) powered by a small "CMOS" battery when system and standby power is off. It is referred to as non-volatile memory or NVRAM because, after the system loses power, it does retain state by virtue of the CMOS battery. The typical NVRAM capacity is 256 bytes.The CMOS RAM and the real-time clock have been integrated as a part of the southbridge chipset and it may not be a standalone chip on modern motherboards.

 

BIOS界面,我们配置的参数是放在一块可读写的CMOS RAM芯片中的,它保存着系统CPU、软硬盘驱动器、显示器、键盘等部件的信息。关机后,系统通过一块后备电池向CMOS供电以保持其中的信息。如果CMOS中关于微机的配置信息不正确,会导致系统性能降 低、零部件不能识别,并由此引发一系列的软硬件故障。在BIOS ROM芯片中装有一个程序称为"系统设置程序",就是用来 设置CMOS RAM中的参数的。这个程序一般在开机时按下一个或一组键即可进入,它提供了良好的界面供用户使用。这个设置 CMOS参数的过程,习惯上也称为"BIOS设置"。新购的微机或新增了部件的系统,都需进行BIOS设置。

CMOS RAM 各字节含义

CMOS RAM(Complementary Metal Oxide Semiconductor)是采用互补金属氧化物半导体工艺的随机存取存储器 ,是微机主板上的一块可读写的RAM芯 片,用来保存当前系统的硬件配置和用户对某些参数的设定。CMOS可由主板的电池供电,即使系统掉电,信息也不会丢失。 CMOS RAM本身只是一块存储器,只有数据保存功能,而对CMOS中各项参数的设定要通过专门的程序。 早期的CMOS设置程序驻留 在软盘上的(如IBM的PC/AT机型),使用很不方便。现在多数厂家将CMOS设置程序做到了BIOS芯片中,在开机时通过特定的按键 就可进……
+ 查看全文
Complementary Metal Oxide SemiconductorCMOS(本意是指互补金属氧化物半导体——一种大规模应用于集成电路芯片制造的原料)是微机主板上的一块可读写的RAM芯 片,用来保存当前系统的硬件配置和用户对某些参数的设定。CMOS可由主板的电池供电,即使系统掉电,信息也不会丢失。 CMOS RAM本身只是一块存储器,只有数据保存功能,而对CMOS中各项参数的设定要通过专门的程序。 

早期的CMOS设置程序驻留 在软盘上的(如IBM的PC/AT机型),使用很不方便。现在多数厂家将CMOS设置程序做到了BIOS芯片中,在开机时通过特定的按键 就可进入CMOS设置程序方便地对系统进行设置,因此CMOS设置又被叫做BIOS设置。 早期的CMOS是一块单独的芯片MC146818A(DIP封装),共有64个字节存放系统信息,见CMOS配置数据表。386以后的微机一般将 MC146818A芯片集成到其它的IC芯片中(如82C206,PQFP封装),最新的一些586主板上更是将CMOS与系统实时时钟和后备电池集 成到一块叫做DALLDA DS1287的芯片中。随着微机的发展、可设置参数的增多,现在的CMOS RAM一般都有128字节及至256字节 的容量。 

为保持兼容性,各BIOS厂商都将自己的BIOS中关于CMOS RAM的前64字节内容的设置统一与MC146818A的CMOS RAM格式 一致,而在扩展出来的部分加入自己的特殊设置,所以不同厂家的BIOS芯片一般不能互换,即使是能互换的,互换后也要对 CMOS信息重新设置以确保系统正常运行. 你认识主板上的BIOS芯片吗? 介绍常见的BIOS芯片的识别 ROM BIOS是主板上存放微机基本输入输出程序的只读存贮器,其功能是微机的上电自检、开机引导、基本外设I/O和系统CMOS 设置。 

主板上的ROM BIOS芯片是主板上唯一贴有标签的芯片,一般为双排直插式封装(DIP),上面印有“BIOS”字样。虽然有些BIOS 芯片没有明确印出“BIOS”,但凭借外贴的标签也能很容易地将它认出。 586以前的BIOS多为可重写EPROM芯片,上面的标签起着保护BIOS内容的作用(紫外线照射会使EPROM内容丢失),不能随便撕下。 586以后的ROM BIOS多采用EEPROM(电可擦写只读ROM),通过跳线开关和系统配带的驱动程序盘,可以对EEPROM进行重写,方便 地实现BIOS升级。 常见的BIOS芯片有AMI、Award、Phoenix等,在芯片上都能见到厂商的标记。

CMOS RAM 芯片的特征:

  • 包含一个时钟和一个有128个存储单元的RAM存储器。
  • 该芯片靠电池供电。所以,关机后其内部的时钟仍可正常工作,RAM中的信息不丢失。
  • 128个字节的RAM中,内部时钟占用 0~0dh  单元来保存时间信息,其余大部分单元用于保存系统配置信息,供系统启动时BIOS程序读取。
  • 该芯片内部有两个端口,端口地址为 70h 和 71h 。CPU 通过这两个端口来读写CMOS RAM。
  • 70h 为地址端口存放要访问的 CMOS RAM 单元的地址; 71h  为数据端口,存放从选定的 CMOS RAM 单元中读取的数据,或要写入到其中的数据。
  • 在CMOS RAM 中,存放着当前的时间:年、月、日、时、分、秒。这6个信息的长度都为1个字节,存放单元:且这些数据以 BCD 码的方式存放。

标准的(AT以后主板都兼容的)CMOS RAM只有64字节、128字节两种。
某些芯片组做了扩展,别说256字节,就是更多也有可能,比如AMD 645之后的芯片组,通过72h/73h、74h/75h端口可以访问512字节的CMOS RAM。

具体的每个字节的含义参考:https://blog.csdn.net/astrotycoon/article/details/8787524

进入BIOS系统设置硬件工作参数后,最终保存在哪里?

bios设置的参数保存在电脑主板上的cmos RAM芯片里,要保持这些设置,需要供电,因此主板上会有cmos电池,台式机电脑主板常用CR2032的一次性锂电池,寿命高达3到5年。

所以,如何找到CMOS里面保存的BIOS配置参数成为主要目标!

参考:https://blog.csdn.net/weixin_30481087/article/details/98769873

通过70h/71h读取基本的128个字节信息,通过72h/73h读取扩展的128个字节信息,一共256个字节信息。

 

 

 

参考:

https://en.wikipedia.org/wiki/Nonvolatile_BIOS_memory

https://www.jd.com/phb/zhishi/d1ee827243880fb9.html

http://www.xjishu.com/zhuanli/55/201810504000.html

https://max.book118.com/html/2017/0419/101134876.shtm

https://blog.csdn.net/qq_37232329/article/details/85852517

http://baike.eepw.com.cn/baike/show/word/CMOS%20RAM

https://www.cnblogs.com/TreeDream/p/7058921.html

https://bbs.csdn.net/topics/340137745

https://blog.csdn.net/linzhanglong/article/details/53947455

https://blog.csdn.net/astrotycoon/article/details/8787524

https://www.jianshu.com/p/b700a6c9964e

https://books.google.com.hk/books?id=tcUrXlJbRIgC&pg=PA44&lpg=PA44&dq=BIOS%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E4%BF%9D%E5%AD%98%E5%9C%A8%E5%93%AA%E9%87%8C&source=bl&ots=DPE2dwDqlr&sig=ACfU3U1Z6N2-OZwMhdZmJ_u9fDxuGjsx7w&hl=zh-CN&sa=X&ved=2ahUKEwiCoNH33pPlAhWGfXAKHfKvDSsQ6AEwBnoECAgQAQ#v=onepage&q=BIOS%E8%AE%BE%E7%BD%AE%E5%8F%82%E6%95%B0%E4%BF%9D%E5%AD%98%E5%9C%A8%E5%93%AA%E9%87%8C&f=false

https://jingyan.baidu.com/article/455a99505fe299a167277862.html

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值