有些朋友是已經(jīng)深耕存儲多年,有的朋友是剛剛?cè)腴T、或者說有興趣但是遲遲不得入門。以下從筆者的經(jīng)驗(yàn)出發(fā),向大家推薦幾本書,可以比較系統(tǒng)的補(bǔ)充一些編程的內(nèi)功和存儲的基礎(chǔ)知識,向你展示一條存儲通關(guān)之路。
語言
語言是第一個(gè)要度過的關(guān),就跟你學(xué)習(xí)語文一樣,你要學(xué)習(xí)優(yōu)美的文章,首先你得認(rèn)字,以下就簡要推薦幾部語言入門的書籍,推薦兩本 C 的入門書籍,兩本 Go 的書籍。(市面上的好書非常之多,各有長短,大家可以自己斟酌,各取所需)
為什么選擇 C 和 Go 各推薦兩部?
-
C 語言無論是做哪個(gè)方面的,只要是你想和操作系統(tǒng)的一些底層原理打交道,這個(gè) C 語言是逃不過的(比如想像看 Linux 源碼,那么就要能讀懂 C );
-
得益于云原生的火爆,Go 水漲船高,K8S,minio,etcd 等眾多 Go 優(yōu)秀的項(xiàng)目。且筆者當(dāng)前也是使用 Go 技術(shù)棧在做存儲;
《C Primer Plus》
C 語言的語法本身非常簡單,所以入門者走馬觀花的讀完語法,會感覺自己啥都懂,一寫代碼啥都錯(cuò)。這本書除了詳盡的語法內(nèi)容,還搭配大量的代碼示例和代碼講解,這對入門者來說,是非常重要的。
往往入門的時(shí)候,就是進(jìn)門最難,無從下手的感覺最難受。所以,入門一項(xiàng)新技術(shù)的時(shí)候,最好的辦法是先把姿勢用起來,然后逐步配合理解,這樣學(xué)習(xí)更容易理解。
《C 專家編程》
如果你感覺自己入門了,但是理解還不深刻,特別是對 C 語言的指針,內(nèi)存分配還一知半解,經(jīng)常忘記(因?yàn)橹恢淙?,不知其所以然),那么這本書可能可以幫助到你。
這本書能把 C 語言的概念講透,某些特性可能你想破腦袋也想不出來原因,這部書可能一下就跟你講明白了,因?yàn)檫@些特性可能是有歷史原因的。本書從 C 的歷史、語言特性、循序漸進(jìn)的把問題給你講明白,非常值得推薦。
《Go語言編程》
Go語言編程(圖靈出品)
市面上 Go 的書籍還挺多的,也是非常優(yōu)秀的,在此推薦兩部可以用來入門的。第一部就是許世偉大佬撰寫的《Go 語言編程》,這本書是國內(nèi)最早一批 Go 的書籍,非常值得推薦。
本書從 Go 語言的誕生和發(fā)展歷程開始,介紹 Go 語言的基礎(chǔ)用法,再介紹面向?qū)ο缶幊烫匦院筒l(fā)編程姿勢,最后還介紹了 Go 語言標(biāo)準(zhǔn)庫和配套工具的用法,包括安全編程、網(wǎng)絡(luò)編程、工程管理工具等。
總體來說,本書是一本適合入門,且實(shí)用性很強(qiáng)的書。
《Go語言并發(fā)之道》
該書是難得的佳作,眾所周知 Go 以并發(fā)見長,但并發(fā)也常常是最難使用的,這本書就是詳細(xì)的闡述了 Go 并發(fā)的特點(diǎn),包括 Go 的并發(fā)設(shè)計(jì)哲學(xué),是難得的佳作。這本書能教會你 Go 并發(fā)的十八般姿勢。
存儲入門
好,到這里,現(xiàn)在你已經(jīng)會一兩門基礎(chǔ)語言了,能夠看懂源碼了,是時(shí)候做點(diǎn)跟存儲相關(guān)的啥了。首先要補(bǔ)充的是一些基礎(chǔ)知識,Linux 基礎(chǔ),系統(tǒng) IO 接口使用等。
《鳥哥的 Linux 私房菜》
如果連 Linux 都不知道是啥?那就太尷尬了,做服務(wù)端開發(fā)的小伙伴 Linux 是你繞不過的坎,但也不要怕,有很好的入門書籍,趕緊了解起來。
推薦:《鳥哥的Linux私房菜 基礎(chǔ)學(xué)習(xí)篇 第四版》
這本書可以說是入門 Linux 的最好書籍,入門最重要的就是讓學(xué)生保持興趣,并且逐步掌握姿勢,這本書做到了這點(diǎn)。
想當(dāng)初,學(xué)完 C 語言之后,感覺自己掌握了倚天屠龍寶劍,后來發(fā)現(xiàn)連個(gè)文件的概念(屬性、權(quán)限)都理解不了,尷尬。
筆者也是從這本書逐步入門 Linux 的,輕松的學(xué)習(xí)過程中才發(fā)現(xiàn),哦,原來這就是 Linux 呀,這就是文件呀,原來文件要執(zhí)行權(quán)限才能執(zhí)行,軟鏈?zhǔn)沁@樣創(chuàng)建的,原來文件的格式跟后綴沒啥關(guān)系呀(跟 Windows 不同)。
那么下面重點(diǎn)推薦幾個(gè)章節(jié):第二部分 Linux文件、目錄與磁盤格式
-
第5章 Linux的文件權(quán)限與目錄配置
-
第6章 Linux文件與目錄管理
-
第7章 Linux磁盤與文件系統(tǒng)管理
-
第8章 文件與文件系統(tǒng)的壓縮
學(xué)習(xí)完這部分,你至少知道文件系統(tǒng)是個(gè)啥東西,文件是個(gè)啥東西,咋用這東西。
再次稱贊這部書,真的是入門寶典。
《UNIX 環(huán)境高級編程》
現(xiàn)在你可能知道文件是啥了,但是你的程序怎么才能讀寫這個(gè)文件呢?
推薦:《Unix 環(huán)境高級編程》
說實(shí)話,這本書再怎么推薦都不為過(這是一本要流傳后世的書籍),這本書是推薦作為存儲后端開發(fā)的入門書的。云存儲本質(zhì)上也是由一個(gè)個(gè)本地存儲節(jié)點(diǎn)通過網(wǎng)絡(luò)連接起來的,所以你必須得了解本地存儲的一個(gè)使用形式和形態(tài)。
《UNIX 環(huán)境高級編程》自然不是只講解存儲的書,但是這本書是存儲入門的必修課。
推薦幾個(gè)必讀章節(jié):
-
第三章 文件 I/O :系統(tǒng)的介紹了最核心的文件相關(guān)的系統(tǒng) I/O 調(diào)用接口;
-
第四章 文件和目錄 :介紹了文件和目錄的相關(guān)接口,通過這樣你會系統(tǒng)的了解文件和目錄究竟有哪些操作;
-
第五章 標(biāo)準(zhǔn) I/O 庫 :講解了封裝的帶 buffer 的標(biāo)準(zhǔn)庫使用姿勢,通過這個(gè)章節(jié),你能了解系統(tǒng)調(diào)用和標(biāo)準(zhǔn)庫 I/O 的區(qū)別;
其他的章節(jié)也是非常有用的,比如和網(wǎng)絡(luò) I/O 相關(guān)的章節(jié)。我挑選出來以上的章節(jié),你讀完至少對文件的操作不再陌生。
《大話存儲》
到這,你可能掌握了文件 IO 的方法,但是對于存儲的各種形態(tài)可能還不知所云。比如,什么是 Raid?什么是 DAS,NAS,SAN?什么塊存儲、對象存儲、文件存儲?
國內(nèi)闡述存儲的書籍很少,很少有一本書能系統(tǒng)的介紹存儲的各種形態(tài)和知識,初學(xué)者很難理解各種各樣的存儲的到底是個(gè)啥?
大話存儲系列從比較高的層次來拆解傳統(tǒng)存儲到云存儲的原理,是一個(gè)比較好的入門系列,這本書可以當(dāng)作存儲科普書來學(xué)習(xí),里面基本涵蓋了所有存儲相關(guān)的知識點(diǎn)、術(shù)語,和常用的套路(注意,本書沒有什么源碼分析,里面主要是理論和存儲形態(tài),主要是加深你的存儲理解)。
所以,我認(rèn)為這本書的風(fēng)格很適合入門、自學(xué)存儲知識,作者是站在比較高的一個(gè)層次,用很通俗的話來解釋各種存儲的,筆者第一本存儲的書就是《大話存儲》。
《程序員的自我修養(yǎng)》
全名《程序員的自我修養(yǎng):鏈接、裝載與庫》,是博文視點(diǎn)出品。這是一本國內(nèi)大牛寫的書,為什么推薦這本書?
程序員寫出代碼,編譯成二進(jìn)制,運(yùn)行在操作系統(tǒng)之上。如果你對二進(jìn)制程序都不了解,都不知道二進(jìn)制居然還有格式(ELF),那就太尷尬了。這本書能補(bǔ)足你的程序員的內(nèi)功,對編譯、鏈接、運(yùn)行 的過程不再陌生。
這本書能夠給你新的視角,讀了這本書,你應(yīng)該能知道代碼如果變成二進(jìn)制在系統(tǒng)中運(yùn)行的。系統(tǒng)軟件底層的組成機(jī)制是什么?可執(zhí)行文件(二進(jìn)制)竟然還有格式?
舉個(gè)例子,你是否有思考過一下問題:
-
為什么程序從 main 開始執(zhí)行?
-
二進(jìn)制文件里面竟然還有格式?
-
目標(biāo)文件是什么,靜態(tài)鏈接,動態(tài)鏈接又是怎么回事?
-
編譯階段總報(bào)錯(cuò),鏈接階段總報(bào)錯(cuò),你能快速定位嗎?
-
句柄是什么?
這本書能解答上面的問題,如果說你一直對進(jìn)程運(yùn)行和庫裝載、編譯鏈接等問題一知半解,那么這本書可能對你是有用的。該書的風(fēng)格我也很喜歡,明明你之前覺得很復(fù)雜的概念,作者能以非常通俗簡單的方式讓你理解,這個(gè)需要很高的功底。
書本太厚,讀起來非常費(fèi)時(shí)間,有沒有更快速的入門與進(jìn)階方式,當(dāng)然是有的,來看看零聲教育這套存儲開發(fā)架構(gòu)體系課程,絕對能打破你對培訓(xùn)的認(rèn)知,從底層原理到實(shí)戰(zhàn)技巧,快速掌握存儲開發(fā)所需要的技術(shù)。
試聽內(nèi)容
最新C/C++存儲開發(fā)實(shí)戰(zhàn)教程,分布式存儲,linux內(nèi)核文件系統(tǒng),分布式文件系統(tǒng),TiDB,RocksDB,SPDK,fuse,ceph,NVMehttps://www.bilibili.com/video/BV1gZ4y1n7F6/存儲開發(fā)完整的學(xué)習(xí)知識圖譜:
自下而上-存儲全棧(TiDB/RockDB/SPDK/fuse/ceph/NVMe/ext4) v1.4
存儲進(jìn)階
你已經(jīng)對怎么使用存儲有了初步了解,這個(gè)時(shí)候你可能會產(chǎn)生更多的疑問,你想了解計(jì)算機(jī)內(nèi)部存儲層次的正金字塔和倒金字塔的區(qū)別,你想了解操作系統(tǒng)內(nèi)部文件的實(shí)現(xiàn)形式,那么下面的書籍可能可以解答你的問題。
《深入理解計(jì)算機(jī)系統(tǒng)》
哇,這本書我只能用哇來形容了,是一本修煉內(nèi)功的書,是一本枕頭書,這本書為什么是最值得推薦的?
知識框架!??!零碎的知識最可怕,我們前期學(xué)習(xí)的時(shí)候,東一下西一下,學(xué)到了很多,但是總感覺遇到問題的時(shí)候不能舉一反三,或者總感覺對自己學(xué)的有一層模糊的感覺。
這個(gè)很大的原因是因?yàn)橹R體系不系統(tǒng)。程序員無非就是和計(jì)算機(jī)打交道,所以深入的理解計(jì)算機(jī)無比重要。編程語言只是你和計(jì)算機(jī)打交道的一個(gè)工具而已,語言是最簡單的一部分,舉個(gè)例子,你會寫字,你就能寫出文章嗎?文章是有結(jié)構(gòu)的,是有套路的,是有體系的。
《深入理解計(jì)算機(jī)系統(tǒng)》這本書最重要的就是幫你構(gòu)建計(jì)算機(jī)系統(tǒng)的知識體系。
第一部分:程序結(jié)構(gòu)和執(zhí)行:告訴你程序的靜態(tài)結(jié)構(gòu),存儲分層的原理,讓你對計(jì)算機(jī)系統(tǒng)的靜態(tài)結(jié)構(gòu)有個(gè)認(rèn)識;第二部分:在系統(tǒng)上運(yùn)行程序:告訴你程序是怎么編譯和鏈接的,程序是怎么加載的,程序運(yùn)行的時(shí)候是怎么分配內(nèi)存的,讓你對程序的動態(tài)運(yùn)行有個(gè)認(rèn)識;第三部分:程序的交互和通信:這部分介紹了 IO 的接口和基礎(chǔ)知識,包括存儲 IO 和網(wǎng)絡(luò) IO,多路 IO 復(fù)用等并發(fā)知識;
這本書內(nèi)容其實(shí)并沒有特別難,但這本書是真的厚,需要你大量的時(shí)間,這個(gè)時(shí)間很值得。
《存儲技術(shù)原理分析》
《UNIX 環(huán)境高級編程》你學(xué)完之后,至少是大概知道了 IO 是怎么一回事,這個(gè)時(shí)候你會對操作系統(tǒng),文件系統(tǒng)這些核心的邏輯感興趣,你可能會想知道 VFS 是什么東西, Linux 里面一切皆文件是什么意思?文件系統(tǒng),塊設(shè)備,驅(qū)動有都是什么作用?
那么你可以看這本書,敖青云的存儲技術(shù)原理分析。該書按照三大塊講述:
-
存儲技術(shù)概論
-
設(shè)備驅(qū)動
-
存儲 I/O
讀完這本書,你肯定能知道 VFS 是什么,塊設(shè)備是什么,文件系統(tǒng)是什么。書比較厚,啃起來可能比較費(fèi)勁,但是還是推薦把第一章概述,第八章文件系統(tǒng)讀完。你會對 系統(tǒng)調(diào)用,vfs,ext具體文件系統(tǒng)有個(gè)質(zhì)的變化。
這本書是一本源碼級別的書,是一本真正對你工程編碼有直接幫助的書。
《分布式對象存儲:原理、架構(gòu)及Go語言實(shí)現(xiàn)》
這本書比較簡單,但是也非常值得學(xué)習(xí)。本書首先從一個(gè)最簡單的對象存儲服務(wù)原型開始,討論在原型中存在的問題并介紹對象存儲服務(wù)中一些常見的概念以及設(shè)計(jì)理念,然后通過改變架構(gòu)或添加功能的方式解決這些問題。這一迭代步驟將發(fā)生多次,最終我們會收獲一個(gè)足夠完善的對象存儲服務(wù)。
如果你想自己用 Go 編寫一個(gè)對象存儲,那么這本書可以幫助到你。
對象存儲文檔
最后推薦一個(gè)了解云存儲的非常好的方式:公有云文檔。以對象存儲來講,公有云會有非常詳盡的文檔解釋,包括對象存儲是什么?快速入門,SDK 使用示例,各種接口示例等等。
總結(jié)
-
對于一個(gè)新的領(lǐng)域,筆者認(rèn)為學(xué)習(xí)的路徑應(yīng)該是從使用姿勢開始,先用起來,先知其然。保持興趣,保持自己的信心最重要;文章來源:http://www.zghlxwxcb.cn/news/detail-821627.html
-
等你各種姿勢使用都體驗(yàn)了個(gè)遍,不出意外你肯定對其內(nèi)部原理會很感興趣,這個(gè)時(shí)候可以從一個(gè)很小的點(diǎn)切入,把這個(gè)點(diǎn)分析個(gè)透徹,會給你帶來不一樣的感受,這個(gè)時(shí)候知其所以然也;文章來源地址http://www.zghlxwxcb.cn/news/detail-821627.html
到了這里,關(guān)于存儲開發(fā)入門到進(jìn)階,這幾本書一定要看!!的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!