一、嵌入式技術分析
軟件應用層: 程序 = 接口 + 語法 + 邏輯 + 算法
硬件底層: 程序 = 硬件 + 內核 + 語法
1、嵌入式開發系統 --> linux
2、編程語言 --> C語言
3、嵌入式開發平臺:GEC6818 平臺
二、安裝嵌入式開發環境?
1、什麼是虛擬機vmware?
其實虛擬機就是物理主機內部新建一臺虛擬主機(基於物理機),虛擬機可以用於運行操作系統,虛擬機雖然是虛擬出來一臺主機,我們摸不着。但是虛擬機實際佔用物理內存空間。
2、爲什麼要安裝虛擬機vmware?
主機 --> windows
虛擬機 --> linux
因爲安裝了虛擬機就可以在熟悉的windows環境下使用不熟悉的linux。
三、什麼是Ubuntu系統?
ubuntu(標準教學系統).rar -> linux系統的鏡像
解壓 -> ubuntu -> Ubuntu-12.04.vmx -> 虛擬系統文件(可以使用虛擬機直接打開)
1、linux與ubuntu有什麼關係?
一個嵌入式系統由內核、界面、操作模式、交互等組成。
linux只是指內核而已,並不代表界面、操作模式、交互。
ubuntu指的是以linux內核爲內核,加上Ubuntu獨有的界面、操作模式、交互組成的一個完整系統。
結論:ubuntu就是以linux內核爲內核的其中的一個版本。
2、 如何使用虛擬機訪問ubuntu系統?
1)雙擊打開vmware
2)點擊第二個按鈕 -> “打開虛擬機”
3)選擇Ubuntu虛擬系統鏡像文件路徑 -> 打開
4)登陸界面
gec -> 普通用戶登陸 -> 需要密碼"123456"(小鍵盤)
Guest session -> 客人會話 -> 不需要密碼 -> 登陸沒有任何權限訪問系統
5)全屏顯示系統界面
虛擬機菜單欄 -> “查看” -> “立即適應客戶機”
3、分析ubuntu系統特點?
1)圖形簡陋 -> 開發效率高
2)交互操作模式 -> 命令行 -> 在linux中,所有行爲都是使用命令來進行控制!
3)內核源碼開源,免費。
四、linux命令行
在linux下,想操作linux系統,就必須使用命令,而命令就是寫在命令行。
1、命令行在哪裏?
終端terminal
2、如何打開終端?
方式一: 雙擊terminal圖標
方式二: ctrl + alt + T
3、如何調整字體大小?
放大: “ctrl” + “shift” + “+”
縮小: “ctrl” + “-”
4、 分析命令行,由什麼東西來組成?
gec@ubuntu:~$
gec -> 用戶名
@ -> 分隔符號,用於分開用戶名與主機名。 用戶名@主機名
- ubuntu -> 主機名
-
-> 分隔符號,用於分開主機名與當前的工作路徑 主機名:當前的工作路徑
-
-> 當前的工作路徑
$ -> 用戶申請 $->代表當前是普通用戶 #->代表當前是超級用戶
5、 命令寫在哪裏?
寫在命令行後面,例如:
gec@ubuntu:~$ asjdfgsadufgsdf
asjdfgsadufgsdf: command not found -> 命令沒有找不到!
五、linux系統目錄架構?
1、windows目錄架構與linux系統有什麼區別?
windows是一個容器,內層目錄永遠小於/等於外層目錄。
linux是一顆樹內存,內層目錄與外層目錄之間沒有大小包含關係,只有索引。
2、 研究linux目錄架構?
“/” -> 根目錄,在linux下所有目錄都是由根目錄引申出來的。
“~” -> 家/主目錄,等價於 “/home/gec/”
六、linux基本命令
1、 查看當前的工作路徑?
方式一: 通過命令行來查看。
gec@ubuntu:~$ -> 代表當前的工作路徑就是在家目錄
方式二: 使用linux命令來查看。
gec@ubuntu:~$ pwd
/home/gec 等價於 /home/gec/ 等價於 ~ -> 家目錄
2、 查看某個路徑下文件?
用法: ls + [路徑] + [參數]
gec@ubuntu:~$ ls -> 默認列出當前工作路徑下的全部文件,但是不包括隱藏文件。
Desktop Download examples.desktop
gec@ubuntu:~$ ls -a -> 列出所有的文件,包括隱藏文件。
Desktop Download examples.desktop
… -> 父目錄
. -> 當前目錄
結論: “ls” 等價於 “ls .”
gec@ubuntu:~$ ls … -> 列出上一級目錄的內容
gec
結論: “ls …” 等價於 “ls …/” 等價於 “ls ./…/” 等價於 “ls ./…”
ls/cd/pwd ->沒有修改系統資源,只是瀏覽linux系統,所以在任何的路徑下都可以使用,沒有受到權限限制。
例題: 假設當前在家目錄,輸入"ls ./…/…/ -a" 得到什麼東西?
根目錄的全部內容,包括隱藏文件。
3、 切換工作路徑
1)用法:cd + [路徑參數]
2)例子1: 假設當前在家目錄下,想切換到根目錄?
gec@ubuntu:~$ cd / -> 使用絕對路徑
gec@ubuntu:/$ pwd
/
gec@ubuntu:~$ cd …/…/ -> 使用相對路徑 -> 參照物: 當前目錄"." -> 可以省略!
gec@ubuntu:/$ pwd
/
3)問題: 假設當前在家目錄下,切換到home目錄下?
絕對路徑: cd /home
相對路徑: cd …
結論: 絕對路徑特徵開頭一定是"/",相對路徑特徵開頭一定是"."(可以省略)
4)幾個關於cd常用的特殊命令
切換到家目錄 cd ~ 等價於 cd /home/gec/ 等價於 cd (cd什麼參數都不加,默認切換到家目錄)
切換到剛剛去過的路徑 cd -(只能記住一次) 與環境變量有關
4、 創建普通文件? -> touch
用法: touch + [新文件的路徑] + … -> 既可以是絕對,又可以是相對。
例子1: 假設當前在家目錄,想在家目錄下創建一個新的文件,名字叫test.c。
相對: touch ./test.c 等價於 touch test.c
絕對: touch /home/gec/test.c
例子2: 假設當前在/home目錄,想在根目錄下創建一個新的文件,名字叫example.txt。
相對: touch …/example.txt
絕對: touch /example.txt
提示錯誤: touch: cannot touch `…/example.txt’: Permission denied -> 權限拒絕!
1)爲什麼會出現這個錯誤?
Permission denied -> 因爲權限不足導致執行失敗!
當前$,代表一個普通用戶,在家目錄擁有一切的權限,可以在家目錄下操作任何的東西都不會受到權限問題。
如果不在家目錄下,則如果修改了系統(增加/刪除),都會受到權限的拒絕!
2)如果真的需要在家目錄以外的路徑下創建/刪除文件?
方式一:臨時切換到超級用戶來執行這個命令。 sudo + 命令
gec@ubuntu:/home$ sudo touch …/example.txt
[sudo] password for gec: -> 在linux輸入密碼,不會回顯給用戶。
結果: 當前還是一個普通用戶。
方式二:切換到超級用戶,再執行命令。
gec@ubuntu:/home$ sudo su -> 切換到超級用戶
root@ubuntu:/home#
超級管理員名字: root
當前身份: #
root@ubuntu:/home# touch …/test.txt -> 直接執行命令,就不會受到權限干擾。
root@ubuntu:/home# exit -> 切換到普通用戶
exit
gec@ubuntu:/home$
5、 刪除普通文件? -> rm命令
用法: rm + [需要刪除的文件的路徑]
假設當前在家目錄
練習1: 刪除家目錄下test.c
rm ./test.c
練習2: 刪除根目錄下example.txt和test.txt
sudo rm ../../example.txt ../../test.txt -> 可以跟多個文件的路徑