UFS
傳輸協議的本質:兩個收發器件,對需要傳輸的數據,一層一層的封裝和解析,利用封裝增加的額外信息,做一些數據處理,完成源地址到目標地址的數據傳輸功能。
應用協議的本質:基于某種傳輸協議之上,完成一組業務,來對外提供一組服務。
UFS測試程序的本質:測試對外服務的可靠性,對UFS設備做一系列操作,來驗證設備功能是否正確。
UFS器件:提供各種描述符,標簽和屬性,用來控制器件的不同功能。
C++
1.new的深層底層原理?malloc?
學習鏈接1:深度剖析C++的new、delete和placement new
學習鏈接2:C++內存管理
內存四區:棧、堆、靜態區、常量區。
new是在堆上動態分配內存并初始化對象。
棧分配地址是從大到小,靜態區和常量區、堆是從小到大。
const變量的存儲位置主要分為靜態存儲區(全局const變量)、棧區(局部const變量)和常量存儲區(字符串常量)。
無論是全局靜態變量還是局部靜態變量,它們都在靜態存儲區中分配內存。
2.構造函數剖析?
學習鏈接1:C++構造函數實戰
學習鏈接2:拷貝構造函數和移動構造函數
拷貝構造函數(淺拷貝)
拷貝構造函數用于從另一個已存在的對象創建新對象。它通常用于復制另一個對象的屬性值,而不共享原始對象的數據。
移動構造函數(右值引用)
移動構造函數用于從即將銷毀的臨時對象轉移資源到新對象。它通常用于避免不必要的資源復制,并提高性能。
3.std::move的作用?
學習鏈接1:std::move
學習鏈接2:move詳解
移動語義是C++11引入的一個重要特性,允許資源的所有權從一個對象轉移到另一個對象,而不是進行深拷貝。std::move 是實現移動語義的關鍵。
4.c/c++代碼運行的4個階段?
預處理:#include、#define、#ifdef
編譯:編譯器將代碼轉換成匯編語言,并生成匯編代碼文件
匯編:匯編代碼轉換成機器語言
連接:鏈接器將一個或多個目標代碼文件以及所需的庫文件合并成一個可執行文件。
Linux
學習資料:鳥哥的Linux私房菜(基礎學習篇)第四版
1.CPU架構分為:RISC(精簡指令集,典型–ARM)、CISC(復雜指令集,典型–AMD、Intel)
2.32、64表示CPU一次數據讀取的最大量,能從內存中讀寫的最大數據量一般為4GB左右