筆記 第1章 Linux基礎

來源:互聯網
上載者:User

1. Android的底層任務管理及驅動都是基於Linux系統的;

2. Linux系統使用的檔案系統與Windows(儲存類檔案系統)差別很大,採用的是根檔案系統(rootfs),特點如下:

  1. Linux系統中所有的資源都是檔案,比如磁碟、隨身碟、記憶體、網路等硬體裝置,當然還有磁碟上的資料檔案;
  2. sys/proc/dev這三個目錄他們對應的不是儲存空間,而是裝置檔案,由核心及相應驅動程式維護;
  3. 儲存類檔案系統不能和rootfs並列存在,只能掛載到子目錄上,相應的命令為mount/umount;
  4. 與Windows對應的儲存類檔案系統包括ext2/ext3/ext4/yaffs;

3. Linux啟動過程

  1. 開機並執行bootloader程式:

    1. 給系統供電,硬體電路產生確定的複位時序,確保CPU最後被複位,不然當CPU工作時其他硬體(比如記憶體、硬碟等)的寄存器還沒準備好;
    2. 複位之後CPU執行第一條指令,該指令對應的記憶體位址應該是固定的,一般由CPU的製造者指定,這段固定地址儲存的程式就是所謂的“引導程式”Bootloader;
  2. 作業系統核心初始化,包括初始化各種硬體,包括記憶體、網路介面、輸入裝置等,然後建立各種內部資料結構用於多線程調度和記憶體管理等;
  3. 執行第一個應用程式,傳統的Linux就是一個Terminal;其實就是提供一個入口可以啟動其他應用程式;


4.  Android啟動過程

  1. Android系統大多都運行於ARM處理器中,當複位完畢之後,CPU執行的第一條指令一般是位於ROM(一般是Nand Flash)中的uboot/fastboot,就是對應Linux系統下的bootloader;作用就是初始化某些硬體介面(比如Nand Flash介面、USB口),並提供一些調試功能,比如像Nand Flash中寫入新資料,可用於開發過程中的核心燒寫、升級等;
  2. uboot被裝載之後一般會檢測使用者是否按下了某些特別按鍵(uboot在編譯時間就預先約定好的)進入偵錯模式;若沒有特別按鍵,則uboot直接從Nand Flash中裝載Linux核心並進行初始化;
  3. 執行第一個Android應用程式Home,或者叫Laucher;

5. 瞭解Make命令、MakeFile檔案,對於C/C++程式而言自動化編譯打包必備工具,和java中的ant功能類似;其基本文法為:
          目標(Target) : 條件(prerequest)
          (Tab鍵)命令

  1. 目標Target可以是任意的字串、或者某個檔案名稱;
  2. 條件prerequest可以是具體的檔案名稱,也可以是某個目標Target;
  3. 執行make指令碼時,Make解譯器會檢查目標與條件中包含的檔案時間戳記是否相同,若不同,則執行Tab鍵後面的命令,命令可以是任意的可執行程式;
  4. 一些常用到的make文法說明如下:

    1. $符號為函數調用符,函數可以分為三類(多個參數用,分割):

      1. $(fname param…) 此時調用的函數為Make解譯器內部定義好的函數,在指令碼中的任何地方都可直接調用
      2. $(call frame,param…) 此時調用的是使用者用define關鍵字生命的自訂、帶參數函數
      3. $(fname) 此時調用的是宏,即使用者自訂的無參數函數
    2. .PHONY關鍵字用於聲明一個目標,被聲明的目標將總是執行Tab鍵後的命令,而不管條件和目標中檔案的時間戳記是否相同;
    3. 命令前可以加@符號,表示在控制台不顯示該條命令;預設情況下是會自動列印的;
    4. 在使用define聲明自訂函數中可以用$(N)來擷取輸入參數,$(0)代表函數名稱,$(1)就代表第一個輸入參數,以此類推;
    5. Make解譯器內有很多內建符號,均以$打頭,比如$@就代表target目標名稱;
    6. --directory(-c) 可以指定要執行的MakeFile/MakeFile.mk的路徑;
    7. --file(-f) 可以指定要執行的MakeFile名稱,指定的名稱可以自訂,只要滿足make文法規則即可;
    8. --just-print(-n) 僅僅列印出要執行的命令,而不是真正執行目標對應的命令;該選項在後面的分析Android編譯系統時非常有用;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.