linux後台開發應該具備技能
一、linux和os:
1、命令:netstat tcpdump ipcs ipcrm 這四個命令的熟練掌握程度基本上能體現實際開發和除錯程式的經驗
2、cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網路狀態檢視 各程序狀態 抓包相關等相關命令 必須熟練掌握
3、awk sed需掌握
4、共享記憶體的使用實現原理、然後共享記憶體段被對映程序式空間之後,存在於程序空間的什麼位置?共享記憶體段最大限制是多少?
5、c++程序記憶體空間分布(注意各部分的記憶體位址誰高誰低,注意棧從高道低分配,堆從低到高分配)
6、elf是什麼?其大小與程式中全域性變數的是否初始化有什麼關係(注意.bss段)
7、使用過哪些程序間通訊機制,並詳細說明
8、makefile編寫,雖然比較基礎,但是會被問到
9、gdb除錯相關的經驗,會被問到
10、如何定位記憶體洩露?
11、動態鏈結和靜態鏈結的區別
12、32位系統乙個程序最多多少堆記憶體
13、多執行緒和多程序的區別(重點 必須從cpu排程,上下文切換,資料共享,多核cup利用率,資源占用,等等各方面回答,然後有乙個問題必須會被問到:哪些東西是乙個執行緒私有的?答案中必須包含暫存器,否則悲催)
14、寫乙個c程式辨別系統是64位 or 32位
15、寫乙個c程式辨別系統是大端or小端位元組序
16、訊號:列出常見的訊號,訊號怎麼處理?
17、i++是否原子操作?並解釋為什麼???????
18、說出你所知道的各類linux系統的各類同步機制(重點),什麼是死鎖?如何避免死鎖(每個技術面試官必問)
19、列舉說明linux系統的各類非同步機制
20、exit() _exit()的區別?
21、如何實現守護程序?
22、linux的記憶體管理機制是什麼?
23、linux的任務排程機制是什麼?
24、標準庫函式和系統呼叫的區別?
25、補充乙個坑爹坑爹坑爹坑爹的問題:系統如何將乙個訊號通知到程序?
二、c語言:
1、巨集定義和展開(必須精通)
2、位操作(必須精通)
3、指標操作和計算(必須精通)
4、記憶體分配(必須精通)
5、各類庫函式必須非常熟練的實現
6、哪些庫函式屬於高危函式,為什麼?(strcpy等等)
三、c++:
1、乙個string類的完整實現必須很快速寫出來(注意:賦值構造,operator=是關鍵)
2、虛函式的作用和實現原理(必問必考,實現原理必須很熟)
3、sizeof乙個類求大小(注意成員變數,函式,虛函式,繼承等等對大小的影響)
4、指標和引用的區別(一般都會問到)
5、多重類構造和析構的順序
6、stl各容器的實現原理(必考)
7、extern c 是幹啥的,(必須將編譯器的函式名修飾的機制解答的很透徹)
8、volatile是幹啥用的,(必須將cpu的暫存器快取機制回答的很透徹)
9、static const等等的用法,(能說出越多越好)
四、資料結構或者演算法:
1、《離散數學》範圍內的一切問題皆由可能被深入問到(這個最坑爹,最重要,最體現功底,最能加分,特別是各類樹結構的實現和應用)
2、各類排序:大根堆的實現,快排(如何避免最糟糕的狀態?),bitmap的運用等等
3、hash, 任何乙個技術面試官必問(例如為什麼一般hashtable的桶數會取乙個素數?如何有效避免hash結果值的碰撞)
五、網路程式設計:
1、tcp與udp的區別(必問)
2、udp呼叫connect有什麼作用?
3、tcp連線中時序圖,狀態圖,必須非常非常熟練
4、socket服務端的實現,select和epoll的區別(必問)
5、epoll哪些觸發模式,有啥區別?(必須非常詳盡的解釋水平觸發和邊緣觸發的區別,以及邊緣觸發在程式設計中要做哪些更多的確認)
6、大規模連線上來,併發模型怎麼設計
7、tcp結束連線怎麼握手,time_wait狀態是什麼,為什麼會有time_wait狀態?哪一方會有time_wait狀態,如何避免time_wait狀態占用資源(必須回答的詳細)
8、tcp頭多少位元組?哪些字段?(必問)
9、什麼是滑動視窗(必問)
11、如果select返回可讀,結果唯讀到0位元組,什麼情況?
12、keepalive 是什麼東東?如何使用?
13、列舉你所知道的tcp選項,並說明其作用。
14、socket什麼情況下可讀?
六、db:
1、mysql,會考sql語言,伺服器資料庫大規模資料怎麼設計,db各種效能指標
最後2、:補充乙個最最重要,最最坑爹,最最有難度的乙個題目:乙個每秒百萬級訪問量的網際網路伺服器,每個訪問都有資料計算和i/o操作,如果讓你設計,你怎麼設計?
Linux後台開發應該具備技能
一 linux和os 1 命令 netstat tcpdump ipcs ipcrm 這四個命令的熟練掌握程度基本上能體現實際開發和除錯程式的經驗 2 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網路狀態檢視 各程序狀態 抓包相關等相關命令 必須熟練掌握 3...
Linux後台開發應該具備技能
linux後台開發應該具備技能 一 linux和os 1 命令 netstat tcpdump ipcs ipcrm 這四個命令的熟練掌握程度基本上能體現實際開發和除錯程式的經驗 2 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網路狀態檢視 各程序狀態 抓包...
linux後台開發必備技能
一 linux和os 1 命令 netstat tcpdump ipcs ipcrm 這四個命令的熟練掌握程度基本上能體現實際開發和除錯程式的經驗 2 cpu 記憶體 硬碟 等等與系統效能除錯相關的命令必須熟練掌握,設定修改許可權 tcp網路狀態檢視 各程序狀態 抓包相關等相關命令 必須熟練掌握 3...