蘇嵌嵌入式第二天Linux實訓

2021-10-07 17:31:10 字數 4747 閱讀 9804

2020–7–3上午開始了第二天的實訓內容,今天開始了真正的學習,老師講解了linux開發相關的基礎知識,其中介紹了許多和c語言有關知識,這讓我認識到了之前學的c語言的重要性,並且打算趁著週末好好複習鞏固一下c語言。以下為老師布置的隨堂作業,站內資料**鏈結統一放在文章最後。

1.嵌入式底層開發為什麼選擇c語言?

c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。c語言可以作為應用程式設計語言,編寫過程中不會依賴計算機硬體的應用程式,應用範圍特別廣,不僅體現在軟體開發上,而且各類科研專案都會用到c語言。在c語言中,我們可以通過指標控制記憶體以及暫存器。c語言具有很高的執行效率,c語言可以直接編譯生成硬體識別的機器碼檔案,而其他的高階語言需要相應的語言直譯器做解釋後,再編譯。

2.什麼是軟實時?什麼是硬實時?

硬實時系統有乙個剛性的、不可改變的時間限制,它不允許任何超出時限的錯誤。超時錯誤會帶來損害甚至導致系統失敗、或者導致系統不能實現它的預期目標。

軟實時系統的時限是乙個柔性靈活的,它可以容忍偶然的超時錯誤。失敗造成的後果並不嚴重,僅僅是輕微的降低了系統的吞吐量。

二者之間最關鍵的差別在於,軟實時只能提供統計意義上的實時。

3.linux和unix的關係

linux是linus torvalds對教學用的unix,也就是minix的改進而來的,也就是說linux**於unix。

二者也有兩個大的區別:

unix 系統大多是與硬體配套的,也就是說,大多數 unix 系統如 aix、hp-ux 等是無法安裝在 x86 伺服器和個人計算機上的,而 linux 則可以執行在多種硬體平台上;

unix 是商業軟體,而 linux 是開源軟體,是免費、公開源**的。

4.linux主流發行版及其特點

debian

debian執行起來極其穩定,這使得它非常適合用於伺服器。debian平時維護三套正式的軟體庫和一套非免費軟體庫,這給另外幾款發行版(比如ubuntu和kali等)帶來了靈感。debian這款作業系統派生出了多個linux發行版。它有37500多個軟體包,這方面唯一勝過debian的其他發行版只有gentoo。debian使用apt或aptitude來安裝和更新軟體。

debian這款作業系統無疑並不適合新手使用者,而是適合系統管理員和高階使用者。debian支援如今的大多數架構(處理器)。

gentoo

與debian一樣,gentoo這款作業系統也包含數量眾多的軟體包。gentoo並非以預編譯的形式出現,而是每次需要針對每個系統進行編譯。連gentoo社群都覺得gentoo安裝和使用起來很困難;不過它被認為是最佳學習物件,可以進而了解linux作業系統的內部運作原理。提到gentoo總有人這麼說:"如果你要學用linux發行版,那就學用該發行版吧;如果你學會了gentoo,也就學會了linux。"gentoo使用portage來安裝和更新軟體。

gentoo這款作業系統適合對linux已經完全駕輕就熟的那些使用者。

ubuntu

ubuntu是debian的一款衍生版,也是當今最受歡迎的免費作業系統。ubuntu側重於它在這個市場的應用,在伺服器、雲計算、甚至一些執行ubuntu linux的移動裝置上很常見。作為debian gnu linux的一款衍生版,ubuntu的程序、外觀和感覺大多數仍然與debian一樣。它使用apt軟體管理工具來安裝和更新軟體。它也是如今市面上用起來最容易的發行版之一。ubuntu使用基於apt的程式包管理器。

ubuntu是新手使用者肯定愛不釋手的一款作業系統。

damn vulnerable linux

當然,大多數人可能對這款發行版前所未聞,不過該發行版在本文中還是占有一席之地。那麼,它有何過人之處呢? damn vulnerable linux恰如其名:其字面意思就是"該死的易受攻擊的linux"。vulnerable linux(dvl)根本不是一般意義上的優秀的linux發行版。它有意**了壞的、配置不當的、過時的、很容易被不法分子攻擊的軟體。

它的目的在於藉機訓練linux管理員。還有什麼比給linux管理員一款壞的發行版去排解問題來得更管用的嗎?面對apache、mysql、php、ftp和ssh等比較舊或破的版本,接受訓練的管理員夠有得忙了。

damn vulnerable linux堪稱旨在訓練管理員的實驗室。

centos

centos是一款企業級linux發行版,它使用紅帽企業級linux中的免費源**重新構建而成。這款重構版完全去掉了註冊商標以及binary程式包方面乙個非常細微的變化。有些人不想支付一大筆錢,又能領略紅帽企業級linux;對他們來說,centos值得一試。此外,centos的外觀和行為似乎與母發行版紅帽企業級linux如出一轍。 centos使用yum來管理軟體包。

非常穩定的程式包;誰要是想在桌面端測試一下伺服器的運作原理,都應該試試這款作業系統。

fedora

小巧的fedora適合那些人:想嘗試最先進的技術,等不及程式的穩定版出來。其實,fedora就是紅帽公司的乙個測試平台;產品在成為企業級發行版之前,在該平台上進行開發和測試。fedora是一款非常好的發行版,有龐大的使用者論壇,軟體庫中還有為數不少的軟體包。fedora同樣使用yum來管理軟體包。

kali linux

kali linux是debian的一款衍生版。kali旨在用於滲透測試。它大概在三個月前才發行。kali的前身是backtrack。用於debian的所有binary軟體包都可以安裝到kali linux上,而kali的魅力或威力就來自於此。此外,支援debian的使用者論壇為kali加分不少。kali隨帶許多的滲透測試工具,無論是wifi、資料庫還是其他任何工具,都設計成立馬可以使用。kali使用apt來管理軟體包。

毫無疑問,kali linux是一款滲透測試工具,或者是文明黑客(我不想談論惡意黑客)青睞的作業系統。

arch linux

arch是一款採用滾動發行方式的作業系統:只要安裝一次就夠了;每當發行了某個新版本,就可以公升級發行版,不需要重新安裝。pacman是arch linux的軟體包管理器。arch linux既支援x86處理器架構,又支援x86_64架構,安裝程式可以從光碟或u盤來執行。arch旨在從開發者的角度而不是從使用者的角度做到力求簡單。arch配置和安裝起來超容易。它真是一款面向高手的發行版,讓你可以了解linux系統的每乙個細枝末節。

5.有哪些虛擬機器軟體?它們分別有什麼特點?

virtual pc

如果想做windows虛擬機器的話,virtual pc是最佳選擇了。幾乎所有找得到的windows作業系統,都可以在該虛擬機器中安裝。virtual pc作為ms自已的產品,在自己的平台下使用非常方便,占用記憶體小,啟動也快。聯網方面,即不用橋接也不用nat共享虛擬網絡卡,直接可以作為同一子網的一台普通電腦使用,不用進行任何網路設定即可上網。

vmware

這款虛擬機器軟體相容性不錯,vmware tools也很強大,快照功能很快捷,方便,允許你在任意開機時刻建立系統快照和恢復,主要用於除錯極易產生藍屏的軟體和工具,十分實用。有點不好的地方在於它安裝時會虛擬兩塊網絡卡,還可以在設定中虛擬更多的虛擬網絡卡,一般來說使用橋接bridge的方法就可以讓虛擬機器上網,基本沒有用過nat方式。vmware和virtualbox一樣都是會修改電腦本身的網絡卡設定的。

virtualbox

virtualbox最早是德國一家軟體公司innotek所開發的虛擬系統軟體,後來被sun收購,改名為sun virtualbox,效能有很大的提高zhi.因為他是開源的,不同於vm,而且功能強大,可以在 linux/mac 和 windows 主機中執行,並 支援在其中安裝 windows (nt 4.0、2000、xp、server 2003、vista)、dos/windows 3.x、linux (2.4 和 2.6)、openbsd 等系列的客戶作業系統。

6.如何解決使用userdel刪除使用者的問題

1.vi /etc/passwd

新增pipetest: x:506:506::/home/pipetest:/bin/bash(x前空格省去)

(不一定是506,而是在最好乙個行數目上加1)

2.vi /etc/shadow

新增pipetest:!!:15056:0:99999:7:::

(不一定所15056,而是在最後一行數目上加3)

3.mkdir /home/pipetest/

cp /etc/skel/.bash* /home/pipetest/

4.userdel pipetest

5.使用vipw刪除建立的使用者

使用vipw -s 刪除建立的使用者組

7.羅列根目錄中所有子目錄的功能及其存放的檔案型別還有幾個在linux當中非常重要的目錄:

/proc:該目錄是乙個虛擬檔案系統,只有在系統執行時才存在,該目錄下的資料存放在記憶體中,不佔硬碟空間,例如系統核心、程序、外部裝置的狀態及網路狀態等。通過訪問該目錄下的檔案,可以獲取系統的狀態資訊並且修改某些系統的配置資訊。

/sys:與/proc類似,也是乙個虛擬檔案系統,主要也是記錄與核心相關的資訊,包括目前已載入的核心模組與核心檢測到的硬體裝置資訊等。這個目錄同樣不佔硬碟空間。

/lost+found:當檔案系統發生錯誤時,存放一些丟失的片段。

注意:因為根目錄與開機有關,開機過程僅有根目錄會被掛載,所以根目錄下與開機過程有關的目錄不能與根目錄放到不同的分割槽去。有以下五個:

/etc:配置檔案

/bin:重要執行檔案

/dev:所需要的裝置檔案

/lib:執行檔案所需要的函式庫與核心所需的模組

/sbin:重要的系統執行檔案

蘇嵌嵌入式linux實訓 第 5 天

專案名稱 蘇嵌實訓 嵌入式 linux c 第 5 天 今日進度以及任務 學習使用linux開發工具gcc gdb make 本日任務完成情況 建立靜態庫和動態庫 本日開發 現的問題彙總 各種指令使用不熟練,錯誤修改難 本日未解決問題 gcc部分指令操作,makefile操作 本日開發收穫 可以操作...

蘇嵌嵌入式linux實訓 第 4 天

1.資料型別 什麼是資料型別 在資料結構中資料型別是乙個值的集合以及定義在這個值集上的一組操作。變數是用來儲存值的所在處,它們有名字和資料型別。資料型別有哪些 char 字元型,short 短整型,int 整型,long 長整型,float 單精度浮點型,double 雙精度浮點型 強制型別轉換 一...

蘇嵌嵌入式linux實訓 第 8 天

專案名稱 蘇嵌實訓 嵌入式 linux c 第 8 天 今日進度以及任務 記憶體管理,關鍵字,復合資料型別 本日任務完成情況 程式設計遍歷字串讀取特定字串間字元,函式三要素 本日開發 現的問題彙總 字元遍歷程式設計題依然使用的是陣列倒序輸出,並不熟練使用位運算 本日未解決問題 字元遍歷程式設計,多重...