蘇嵌實訓-嵌入式linux c 第 1 天
專案名稱
【蘇嵌實訓-嵌入式 linux c 第 1 天】
今日進度以及任務
今日課程上午主要講了嵌入式的一些基本概念和發展前景,稍微提了下linux安裝
下午主要講了一下linux基本命令
本日任務完成情況
(詳細說明本日任務是否按計畫完成,開發的**量)
1. 在 linux 虛擬機器上使用 linux 命令
2. 用 gedit 或者vim 編寫 c 源**,用 gcc 編譯產生可執行檔案
3. 自學 20 個 linux 命令和完成兩個c語言程式設計題
4. 完成老師留的作業
所有任務都已完成
本日開發**現的問題彙總
1. 如何解決無法刪除使用userdel刪除使用者的問題
2. centos7的vim配置優化
本日未解決問題 1.
還未將vim的縮排設定調整好
2.沒有將vim徹底掌握,還有模糊的地方
本日開發收穫 1.
學習了大部分linux的基礎命令,管理使用者,檔案、目錄操作相關的命令
2.學會了利用vim編輯器寫c語言程式並執行
3. 學會了
使用 gedit 和 vim 編寫** 其他
今後也要認真學習作業
1.嵌入式底層開發為什麼選擇c語言?
彙編明顯是效能(執行效率)方面最高的,但組合語言開發效率方面明顯是最低的。所以除非是要求極端高效能的嵌入式平台,使用組合語言的不多。我們一般進行初始化時會使用組合語言。而其它高階語言的執行效率一般比較低,源**和目標**也可能會比較長。這樣占用的記憶體也會比較大。嵌入式開發的程式設計是要在開發板上跑的,占用記憶體的增多必然會影響效能。這樣一來,c語言的優勢就會凸現出來啦。
2.什麼是實時性?軟實時和硬實時?
實時性是指系統能及時響應外部事件的請求,在規定時間內完成對該事件的處理。
硬實時是指系統必須滿足任務對截止時間的要求,否則可能出現難以**的後果。
軟實時是指也聯絡乙個截止時間,但並不嚴格若偶爾錯過了任務的截止時間,對系統產生的影響也不會太大。
3.linux和unix之間的聯絡或者關係?
unix:2023年,mit、bell實驗室、美國通用電氣****一起致力於開發 multics 專案。2023年,當時在開發multics專案的時候,實驗室中有乙個開發成員提議組織人員重新在multics專案之上重新的開發,也就出現了2023年的unix。當時unix作業系統是使用的組合語言(機器語言)開發的。2023年, 用c語言重寫unix,因為組合語言有乙個最大的侷限性:對於計算機硬體過於依賴。導致移植性不好。2023年 bell實驗室允許大學使用unix,但bell實驗室允許大學使用unix作業系統用於教學作用,而不允許用於商業用途。
兩者之間的關係:linux源自於unix,linux是開源的作業系統,有開放性、多使用者、多工、良好的使用者介面、優異的效能與穩定性的優點,但unix不是開源作業系統。
4.linux主流的發行版有哪些?有什麼特點?
(1) debian:debian執行起來極其穩定,這使得它非常適合用於伺服器。debian平時維護三套正式的軟體庫和一套非免費軟體庫。
(2) gentoo:與debian一樣,gentoo這款作業系統也包含數量眾多的軟體包。gentoo並非以預編譯的形式出現,而是每次需要針對每個系統進行編譯。
(3) 紅帽企業級linux:紅帽企業級linux是系統管理員的第一選擇,使用yum程式包管理器。是商業化產品,所以不是免費的。
(4) centos:centos是一款企業級linux發行版,它使用紅帽企業級linux中的免費源**重新構建而成。
(5) fedora:fedora就是紅帽公司的乙個測試平台;產品在成為企業級發行版之前,在該平台上進行開發和測試。fedora是一款非常好的發行版,有龐大的使用者論壇,軟體庫中還有為數不少的軟體包。
(6) kali linux:kali linux是debian的一款衍生版。kali旨在用於滲透測試。
(7) arch linux:arch linux的軟體包管理器是pacman。arch linux既支援x86處理器架構,又支援x86_64架構。arch旨在從開發者的角度而不是從使用者的角度做到力求簡單。
5.有哪些虛擬機器軟體?特點?
(1)vmware workstation,vmware公司的虛擬機器軟體,vmware公司是全球桌面到資料中心虛擬化解決方案的領導廠商,vmware workstation是最好用的虛擬機器軟體之一。
(2)virtual box,virtual box是oracle公司旗下的免費開源虛擬機器軟體。
(3)windows virtual pc,微軟公司旗下產品,windows virtual pc 是最新的 microsoft 虛擬化技術。您可以使用此技術在一台計算機上同時執行多個作業系統。
(4)vmware player,vmware推出的免費小巧的虛擬機器軟體,精簡版vmware workstation。
6.如何解決無法刪除使用userdel刪除使用者的問題(2種方法)
(1)使用vipw命令:
vipw 找到之前建立的使用者,刪除使用者資訊。
vipw -s 找到那個使用者所屬組,刪除使用者組資訊。
(2)用 ps 檢視該使用者所有程序的pid,再將程序都 kill
7.羅列根目錄中所有子目錄以及其存放的檔案型別
(1)bin:該目錄中儲存的都是一些二進位制檔案,檔案都是可以被執行的。
(2)dev:該目錄中主要存放的是外接裝置,例如盤、其他的光碟等。在其中的外接裝置是不能直接被使用的,需要掛載。
(3)etc:該目錄主要儲存一些配置檔案。
(4)home:表示除了root使用者以外其他使用者的家目錄,類似於windows下的user/使用者目錄。
(5)proc:process,表示程序,該目錄中儲存的是linux執行時候的程序。
(6)root:該目錄是root使用者自己的家目錄。
(7)sbin:全稱super binary,該目錄也是儲存一些可以被執行的二進位制檔案,但是必須得有super許可權的使用者才能執行。
(8)tmp:表示「臨時」的,當系統執行時候產生的臨時檔案會在這個目錄存著。
(9)usr:存放的是使用者自己安裝的軟體。類似於windows下的program files。
(10)var:存放的程式/系統的日誌檔案的目錄。
(11)mnt:當外接裝置需要掛載的時候,就需要掛載到mnt目錄下。
8.自學 20 個linux命令:
(1)df:檢視磁碟的空間
df -h //-h表示以可讀性較高的形式展示大小
(2)free:檢視記憶體使用情況
free -m //-m表示以mb為單位檢視
(3)head:檢視乙個檔案的前n行,如果不指定n,則預設顯示前10行。
head -n filepath
(4)tail指令:檢視乙個檔案的未n行,如果n不指定預設顯示後10行
tail -n filepath
less filepath
(6)wc:統計檔案內容資訊(包含行數、單詞數、位元組數)
wc -lwc filepath
-l:表示lines,行數
-w:表示words,單詞數 依照空格來判斷單詞數量
-c:表示bytes,位元組數
(7)date:表示操作時間日期(讀取、設定)
date 輸出的形式:2023年 3月 24日 星期六 15:54:28
date +%f (等價於#date 「+%y-%m-%d」 ) 輸出形式:2018-03-24
date 「+%f %t」 引號表示讓「年月日與時分秒」成為乙個不可分割的整體
date -d 「-1 day」 「+%y-%m-%d %h:%m:%s」
(8)hostname:操作伺服器的主機名(讀取、設定)
hostname 含義:表示輸出完整的主機名
hostname -f 含義:表示輸出當前主機名中的fqdn(全限定網域名稱)
(9)id:檢視乙個使用者的一些基本資訊(包含使用者id,使用者組id,附加組id…),該指令如果不指定使用者則預設當前使用者。
id 預設顯示當前執行該命令的使用者的基本資訊
id 使用者名稱 顯示指定使用者的基本資訊
(10)whoami:「我是誰?」顯示當前登入的使用者名稱,一般用於shell指令碼,用於獲取當前操作的使用者名稱方便記錄日誌。
(11)ps :主要是檢視伺服器的程序資訊
ps -ef
-e:等價於「-a」,表示列出全部的程序
-f:顯示全部的列(顯示全欄位)
(12)top:檢視伺服器的程序佔的資源
(13)du:檢視目錄的真實大小
du -sh 目錄路徑
-s:summaries,只顯示彙總的大小
-h:表示以高可讀性的形式進行顯示
(14)find:用於查詢檔案
find 路徑範圍 選項 選項的值
選項:-name:按照文件名稱進行搜尋(支援模糊搜尋)
-type:按照文件的型別進行搜尋
(15)service:用於控制一些軟體的服務啟動/停止/重啟
service 服務名 start/stop/restart
(16)kill:表示殺死程序
kill 程序pid
(18)reboot:重新啟動計算機
shutdown:關機
shutdown -h now 或 shutdown -h 15:25
uname -a 獲取全部的系統資訊(型別、全部主機名、核心版本、發布時間、開源計畫)
(21)netstat -tnlp:檢視網路連線狀態
netstat -tnlp
-t:表示只列出tcp協議的連線;
-l:表示過濾出「state(狀態)」列中其值為listen(監聽)的連線;
-p:表示顯示發起連線的程序pid和程序名稱。
蘇嵌實訓 嵌入式 linux C 第 1 天
專案名稱 蘇嵌實訓 嵌入式 linux c 第 1 天 今日進度以及任務嵌入式開發概述及嵌入式linux c專案演示 嵌入式環境安裝與使用 本日任務完成情況已完成課上布置的7個小題作業,並把課上的筆記做了相應整理。本日開發 現的問題彙總1 使用目錄指令的時候用 cd.不能返回上一級目錄並且報錯,查詢...
蘇嵌實訓 嵌入式 linux C 第 1 天
專案名稱 蘇嵌實訓 嵌入式 linux c 第 1 天 今日進度以及任務 嵌入式開發概述以及嵌入式linux c專案演示。還有嵌入式開發環境的安裝以及使用。本日任務完成情況 詳細說明本日任務是否按計畫完成,開發的 量 1 red hat enterprise linux 乙個強大的伺服器作業系統,擁...
蘇嵌實訓 嵌入式 linux C 第2天
專案名稱 蘇嵌實訓 嵌入式 linux c 第2天 今日進度以及任務 明白編譯過程,學會gcc和gbd的使用,會製作gcc靜態庫和動態庫,學會工程管理器make 本日任務完成情況 知道了工程編譯過程,學會了gcc和gbd,會製作gcc靜態庫和動態庫,不太懂工程管理器make 本日開發 現的問題彙總 ...