作者xjiang (X. Jiang)
看板Soft_Job
标题Re: [请益] 关於bios工程师这份工作
时间Sun Sep 28 21:48:59 2008
引用上篇cccgoblue写得蛮不错的,所以把它留着~~
hardware我没有经验,所以就不提它了~
bios 这份工作的范围真的很广、要全把一个bios的架构摸清楚也得花不少时间~
我想,新人接触bios这份工作不大可能在短时间内就把全部的东西摸熟~
所以,真的不用太担心这份工作难不难 、容不容易上手~
只要有心想学,录用的单位有心栽培的话,一定可以胜任愉快的~
就像ccgoblue提到的,在bios公司(核心、function)、OEM、系统厂中~
bios工程师所负责的部分都是不一样的~
而且拿到的code base完整程度也不同~
我觉得firmware最有挑战性的目标是去定一个新的架构~
定firmware架构这个工作在embedded system里头很常见~
看是要提供简单的boot loader、diagnosis、cpu/soc info…等~
依需求不同,难度也有所差异~
这边建议有心从事firmawre工作的新鲜人可以加强下面的东西~
- 了解所使用的硬体(cpu(x86, sparc, mips, arm, 8051), peripheral(...))
- 了解整个系统所用到的软体~
- 了解firmware的需求、功能、实务的切入点~
愈底层的因为没有太多的API/macro/funciton可以call,所以function都要自己写~
像是memory/bus/rtc/timer/wdt/mac/usb/dma/interrupt等controller的function~
所以要参考的datasheet一定少不了~
还有compiler, linker, loader, relocation等system programming的观念要有~
逻辑分析仪有机会学的话就学一学~ 有时自己动手做会比找hw工程师来得有效率
EVB的元件、layout有机会的话也可以看一看~
此外,包括device driver、h/w benchmark等能有些认知的话也不错~
以上这些不需要专精,若能稍微了解的话,在工作上更能够驾轻就熟~
--
※ 引述《ccgoblue (gnn hpj lby)》之铭言:
: 本来想推文而已
: 後来怕碎碎念又太多 我不是讨战的
: 不过我目前 BIOS 工作经验 4 年. 算是BIOS小老弟 野人献曝一下
: 首先 assembly 没那麽恐怖, 如果你程式逻辑有,
: 只是语法上面的差别而已, 写来写去,
: 不外乎 call sub-routine, macro, and 一些条件判断回圈
: 没那麽难懂, 也没有像高阶语言那麽方便,
: 只不过在写程式的时候, 或许需要仔细一点想看看,
: 如何不破坏掉 register 还有只有 jmp(jnz jc ja jb ..) 逻辑该怎麽写比较漂亮,
: 相信各种语言都有所要注意的事项, 要写漂亮也都要花一般功夫,
: 公司如果要你, 就不要花时间自己吓自己, 多花点时间看看 code 吧!
: 接下来, 过去有人说 BIOS code 几万行, 多麽OOXX所以很了不起,
: 但是简单来说, 哪个 BIOS engineer 全部看完弄得很熟,
: 这是历年来众人心血结晶,
: 哪里有 BUG, 找出"线头"来, 厘清问题, 看那些部份 code 就好,
: 慢慢的累积经验,
: 就像看过 spec 的人也知道,
: 有问题的时候, 是从头先看熟再解问题, (早就看到後面忘前面)
: 还是看需要的部份就好, 当然还有前提是对问题及 spec 有"基本的概念"
: (我不是写作文, 所以讲个基本而已)
: BIOS 工作"简单"分几种 工作性质些许差异, 这也是简单的差异
: 1. BIOS Vendor (AMI Award Phoenix Insyde)
: => 一般来说, 会比较深入某个部份, 例如会分做 USB, chipset porting,
: => IO code porting 等等, 以上是指所谓的 kernel team
: => 还有 OEM team 以及负责帮客户解问题的..etc 各家厂商又不一样,
: 2. Chipset 厂 (类似 VIA 之类的)
: => porting chipset code 给 vendor
: 3. System 厂 (板卡厂之类的)
: => 工作一半类似 BIOS FAE, 或许久久才需要写很多 code,
: => 大部分都在厘清问题解问题, 对於系统的了解比较通盘一些, 深入靠造化
: => 事情也比较杂, 这需要个人体会, 老样子毕竟各家公司也不一样
: 重点是..
: 你是做什麽样的工作, 请在面试时询问面试你的人
: 你要做什麽样的工作, 自己也要想清楚,
: 不是做 kernel 就很了不起, 但也不是系统厂的 BIOS 又什麽都懂,
: 不只 BIOS, 工作怎样, 在具有基本以上的能力来说, 端看你的运气你的态度,
: 能力怎麽培养, 看天份跟磨链了 ~
: 大家都是吃软饭的, 都差不到哪边去
: ※ 引述《killingjoke (Pettitte )》之铭言:
: : 请问如果要走这方面
: : 可是组合语言跟C语言完全没写过
: : 之前只写过php跟jsp而已
: : 目前有这一份工作
: : 我怕我进去完全不会会很惨
: : 我要答应这个工作吗?
: : 请给我的意见 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.8.48.1