BIOS入门之我见-开篇
2015-10-04 13:24
232 查看
断断续续作BIOS已经7年有余,过去在ODM厂商中BIOS工程师还算体面,时过境迁,现在风口浪尖上的是Android或其背后的Linux, 或会让N多工程师改行吧,但技术还是需要沉淀的,笔者斗胆班门弄斧,把知道的关于BIOS相关知识点拿来分享,或会有些理解存在偏颇,但聊胜于无,有缘步入BIOS这行的兄弟姐妹,切读切分析吧:)
本着对读者负责的态度,本文所著皆属原创,如有雷同,请参考CSDN博客kevinhugh163上的文章,此为第一手发布,别无他家.
先说说什么是BIOS,Basic Input Output System基本输入输出系统,
起源于IBM PC机诞生之日,那个时代,硬件是稀缺资源,有效地确保各部件正常运作再加在操作系统是极为重要的,IBM-PC兼容开放的理念,致使硬件软件合理分工,操作系统和硬件厂商各自专著自己的领域,而为了确保系统和硬件的有效沟通,以及各系统与硬件的兼容性问题,夹杂在其中的韧体部分(通常也称作固件)——BIOS迎刃而生。
1. 检测硬件,俗称开机自检-POST
2.初始化各硬件部件,确保开机后各部件进入一个稳定可用状态
3.启动Boot Loader 加载OS
4.驻留BIOS部分服务以便后续操作系统使用。
5.修复硬件缺陷:) 通常Workaround,搞个Reset什么的,修正一些硬件自身的隐患。
笔者认为做BIOS主要掌握的5大块(见下导图所示),其中最重要的是代码能力和各规范的理解熟悉,就像武林小说经常提到打通任督二脉,代码能力就是任脉,规范框架是督脉。而通常在学校里主攻的多半是任脉,督脉在学校期间很少有人关照。
BIOS You should to Know
上图左侧(SPEC,TOOLS,Code Capablity)是做BIOS需要掌握的基础,也是干这行功力深厚与否的客观体现。而右侧则是具体从事BIOS工作时需要了解熟悉的东东,由于涉及过于具体,且部分还是厂商的保密资料,这部分,本文将不作详细展开了。相信各厂商的提供的一手资料解读会更权威便捷(你得肯交学费)。
下面说一下关于BIOS入门之我见系列文章的想法, 从业BIOS这个行当,一些基础是免不了的,而许多应届生或刚刚从事BIOS的新人,多数没有参与过具体的项目开发,对工程中一些具体的语言技巧积累多数是靠一边干活一边学习积累的,本系列文章的想法是通过一个小软件项目,实现类似ru工具,即从零构建一个X86架构下的硬件资源访问软件,来强化BIOS入门新人的代码实战能力,同时熟悉了解到BIOS业界涉及到相关规范和常识,以便为后续深入从事底层软件开发工作做好铺垫。系列文章的脉络基本是按上面导图部署,代码从0开始写起,包括工具的选择环境搭建等,每篇先原理后实践,凡是涉及到代码的,都会附上,尽量让新人做到在手到擒来,知其然,亦知其所以然。
再次声明一下:
本文系一手原创(当然免不了会引用某些前辈的总结,但凡引用都会做出标注,良心奉献,敬请笑纳,文字有词不达意或理解错误请各位看官海涵指正,以免误人子弟哈)
本着对读者负责的态度,本文所著皆属原创,如有雷同,请参考CSDN博客kevinhugh163上的文章,此为第一手发布,别无他家.
先说说什么是BIOS,Basic Input Output System基本输入输出系统,
起源于IBM PC机诞生之日,那个时代,硬件是稀缺资源,有效地确保各部件正常运作再加在操作系统是极为重要的,IBM-PC兼容开放的理念,致使硬件软件合理分工,操作系统和硬件厂商各自专著自己的领域,而为了确保系统和硬件的有效沟通,以及各系统与硬件的兼容性问题,夹杂在其中的韧体部分(通常也称作固件)——BIOS迎刃而生。
1. 检测硬件,俗称开机自检-POST
2.初始化各硬件部件,确保开机后各部件进入一个稳定可用状态
3.启动Boot Loader 加载OS
4.驻留BIOS部分服务以便后续操作系统使用。
5.修复硬件缺陷:) 通常Workaround,搞个Reset什么的,修正一些硬件自身的隐患。
笔者认为做BIOS主要掌握的5大块(见下导图所示),其中最重要的是代码能力和各规范的理解熟悉,就像武林小说经常提到打通任督二脉,代码能力就是任脉,规范框架是督脉。而通常在学校里主攻的多半是任脉,督脉在学校期间很少有人关照。
BIOS You should to Know
上图左侧(SPEC,TOOLS,Code Capablity)是做BIOS需要掌握的基础,也是干这行功力深厚与否的客观体现。而右侧则是具体从事BIOS工作时需要了解熟悉的东东,由于涉及过于具体,且部分还是厂商的保密资料,这部分,本文将不作详细展开了。相信各厂商的提供的一手资料解读会更权威便捷(你得肯交学费)。
下面说一下关于BIOS入门之我见系列文章的想法, 从业BIOS这个行当,一些基础是免不了的,而许多应届生或刚刚从事BIOS的新人,多数没有参与过具体的项目开发,对工程中一些具体的语言技巧积累多数是靠一边干活一边学习积累的,本系列文章的想法是通过一个小软件项目,实现类似ru工具,即从零构建一个X86架构下的硬件资源访问软件,来强化BIOS入门新人的代码实战能力,同时熟悉了解到BIOS业界涉及到相关规范和常识,以便为后续深入从事底层软件开发工作做好铺垫。系列文章的脉络基本是按上面导图部署,代码从0开始写起,包括工具的选择环境搭建等,每篇先原理后实践,凡是涉及到代码的,都会附上,尽量让新人做到在手到擒来,知其然,亦知其所以然。
再次声明一下:
本文系一手原创(当然免不了会引用某些前辈的总结,但凡引用都会做出标注,良心奉献,敬请笑纳,文字有词不达意或理解错误请各位看官海涵指正,以免误人子弟哈)
相关文章推荐
- ios-技术总结
- iOS和OSX的核心
- IOS中的字典转模型
- iOS开发——性能优化的25个建议和技巧
- iOS 错误: [NSNull length]: unrecognized selector sent to instance 0x110504af0'
- iOS讲解迷惑深入浅出之block那点事
- iOS开发 —— MVVM设计模式
- iOS NSDateFormatter 日期的使用
- [置顶] iOS开发之导出ipa文件以及查看内容
- iOS几种界面跳转方式简介
- [置顶] iOS开发小技巧归纳
- iOS国际化
- 苹果最新 Mac OS X El Capitan 正式版系统 dmg 镜像下载 / 升级安装程序
- OS X升级到10.11后Xcode6.4界面无iOS device选择栏的解决办法
- OS X升级到10.11后Xcode6.4界面无iOS device选择栏的解决办法
- OS X升级到10.11后Xcode6.4界面无iOS device选择栏的解决办法
- 【IOS 开发学习总结-OC-30】★★OC之foundation 框架——集合(NSSet 与 NSMutableSet)
- iOS定位,地图详解
- 用CocoaPods做iOS程序的依赖管理
- iOS模拟器把键盘叫回去