Re: [請益] 關於bios工程師這份工作
引用上篇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)