[請益] 豬屎屋工作,求書單

作者: PeeHighTW (台灣尿高人)   2023-01-07 17:36:19
Hi all
目前正在豬屎屋工作,仍處在讀書的階段,
每次在讀前輩們的 Code ,心裡都會想“這種 Code 我大概寫不出來” QQ,或者是硬體相關知識不太明白,
比方說為什麼要設 memory barrier 這些,
甚至是 Linux 的 READ_ONCE 也是我工作之後才知道
如何讀 Register、cache 的操作等等
還有上層設定 HAL 層的函式、設 callback 等等。
因為不同的平台可能用到的 hardware 不一樣,而程式碼要去能夠去編譯給不同的平台
因此上層跟 HAL 層要切的很開,而目前讀的程式碼確實辦到了
要是我來寫肯定只會用 define 去包QQ
大概看得懂是用函式指標去包跟傳 callback,但真的要我寫可能有困難
想問版友有沒有推薦的書籍?
簡單來說,就是硬體知識 + 如何寫出好 C code。
目前有兩本在我的名單內:
1. 21世紀 C 語言
2. 程序員的自我修養
2. 我看一下目錄,我大概都懂,不曉得還需不需要買來看;
前者感覺偏向 C 語言的部分,讀了應該對我有幫助,但關於硬體部分我還是沒頭緒(控 register、cache、CMOS)
再請大大推薦書籍了,謝謝
作者: noahleft (NoahLeft)   2023-01-07 17:45:00
很多東西只看書也很難學會,通常是剛好碰到這種情況然後才去找對應的資訊程序員的自我修養我有,但很多細節真的是遇到了才會理解
作者: e12518166339 (耐綸)   2023-01-07 18:18:00
如果單純的想應徵一般新人的韌體開發,應該可以不用這麼焦慮,你問的這個很多人即便已經工作三年可能也不懂,如果真的那麼焦慮,那就好好寫學校作業,有多餘的時間就把csapp的lab拿來做做看
作者: OriginStar   2023-01-07 18:38:00
Intel® 64 and IA-32 Architectures SoftwareDeveloper Manual,到Intel網站就可以下載了。我早期大概國高中時有買本Intel 8086指令集的書,簡單說就是講解電腦是如何運作,然後可以透過什麼指令讓電腦做什事,例如透果某中斷讓電腦發出逼聲,當然早期電腦是比較簡單的
作者: undersky (undersky)   2023-01-07 19:19:00
演員的自我修養(X
作者: enthos (影斯作業系統)   2023-01-07 19:23:00
ARM有一本超好的舊書是這本嗎? Arm System DevelopersGuide: Designing And Optimizing System Software 2004
作者: RouterHsieh (醉臥美人膝,醒掌天下權)   2023-01-07 20:04:00
不介意看英文的話我覺得CSAPP應該蠻有用的XD
作者: loadingN (sarsaparilla)   2023-01-07 20:48:00
白嫖LWN.net
作者: menesn (迷思)   2023-01-07 22:14:00
Design Pattern
作者: Gaogaigar   2023-01-07 22:53:00
csapp 其實介意英文也有簡體版
作者: Hsins (翔)   2023-01-07 23:08:00
CSAPP 的本體是作業
作者: Lipraxde (Lipraxde)   2023-01-07 23:15:00
硬體知識喔...在學校學到的如果能應用到工作中,配合內部的文件,應該就很夠用了吧?
作者: deflife (無極而生)   2023-01-08 00:32:00
jserv的課
作者: leoloveivy (cried)   2023-01-08 00:54:00
看書不如在可接受的時間多包一些issue來解也可以提升又有錢好像有一本簡體嵌入式還行啦
作者: twicm (WhyMe)   2023-01-08 01:04:00
Memory barrier 需要讀一下 ISA 關於MMU 的部分和指令集裡barrier 相關的指令,再配合應用的場景
作者: OriginStar   2023-01-08 10:27:00
https://imgur.com/sRT1HBZhttps://imgur.com/G6lq5NJ貼圖是Volume 3A: System Programming Guide與Volume 1: Basic Architecture 一部分內容如果原PO的疑問是為何要使用某個指令,可以去K一些CPU發展的書籍或文章
作者: jj0321 (JJ與你倒數唷)   2023-01-08 11:09:00
作者: bnd0327 (阿噗噗)   2023-01-08 11:40:00
已經進去了就不用自己嚇自己,都是人寫出來的扣
作者: hackfox (自家朘仔歪,嫌人尿桶漏)   2023-01-08 12:18:00
你這症頭多code review幾遍就好了,你要的不是學習,而是經驗
作者: GoalBased (Artificail Intelligence)   2023-01-08 12:50:00
你學數學的時候 問題就不出來是多看幾本書 還是多寫幾次
作者: dmeiki (熊麻吉)   2023-01-08 13:30:00
Jserv的課。
作者: jasonwung (路人JJ)   2023-01-08 22:15:00
memory barrier可以參考這個#1WzRShDV (C_and_CPP)
作者: a27417332 (等號卡比)   2023-01-09 02:39:00
推樓上,其實那些東西基本原理就是學校教過的忘記的話可以去找一些計算機結構的課程來補
作者: brightest (fff)   2023-01-09 07:52:00
Arm architecture reference manual
作者: leolarrel (真.粽子無雙)   2023-01-09 09:52:00
為什麼這樣程度的人可以在豬屎屋工作?
作者: gR7P4zXH (tpn7gpdx)   2023-01-09 11:07:00
樓上粗暴
作者: newking761 (J三小)   2023-01-09 12:16:00
因為現在沒得挑人啊
作者: pacino (carry me)   2023-01-09 12:18:00
好奇,有人在學校學的可以無縫接軌?
作者: NCTUFAIWEN (交大廢文王子)   2023-01-09 12:19:00
callback寫法就只是經驗而言,直接複製貼上也可以動cache知識如果薄弱成這樣的話...應該回去K計組吧==
作者: labbat (labbat)   2023-01-10 00:31:00
怎麼沒有人提risc-v
作者: snaketsai (さいでんし)   2023-01-10 22:00:00
xv6 RISC-V book
作者: lovebridget (= =")   2023-01-10 23:49:00
不重要 都是by case 就照那包code寫法寫就對工作大部分都改值而已 不應該也不可以大改你去問寫的前輩 假設還沒離職 多半也照著寫而已
作者: labbat (labbat)   2023-01-11 00:45:00
連編譯工具都傳10年同版本沒有變,變革是應該的
作者: OnlyRD (里巷人)   2023-01-11 21:15:00
不就基本的Linux kernel development & LDD3 看一遍概念就都有了?細節的部分你就google一下就好啦,網路上一堆論壇跟分享。剩下硬體相關要深入,spec拿出來k,都有寫,懶一點至少application or development guide要看啊。
作者: askacis (ASKA)   2023-01-20 12:38:00
Linux kernel 是你最好的老師

Links booklink

Contact Us: admin [ a t ] ucptt.com