導航:首頁 > 編程系統 > linux系統快照概述

linux系統快照概述

發布時間:2023-08-20 16:11:31

『壹』 linux系統做的快照會存放在哪

Btrfs 又被稱為 Butter FS、Better FS 或 B-Tree FS,是由 Oracle 於 2007 年開始設計、開發的一個現代文件系統,它於 2009 年開始便被合並入 Linux 2.6.29 內核。Btrfs 基於 GPL 許可,由於不是十分穩定,雖然許多 Linux 發行版都對其進行了集成,但並不作為默認文件系統進行使用。Btrfs 之所以被廣泛集成,因其支持磁碟快照、支持遞歸快照、對 RAID 的支持,支持子卷(Subvolumes),以及允許在線調整文件系統大小等優秀特性。雖然目前大多 Linux 發行版都在用 Ext4 作為主要文件系統,但將來隨時有可能被 Btrfs 所取代。 Btrfs 主要被設計用於解決當前 Linux 文件系統各種「弱點」的 COW(-on-write)文件系統, 有望提供更好的可擴展性和可靠性,其主要開發焦點都放在了容錯、修復和易於管理等方面。 接下來我將主要向大家介紹如何使用 apt-btrfs-snapshot 將 Linux 中的 btrfs 文件系統快照回滾到之前的系統狀態。使用 apt-btrfs-snapshot 創建和管理文件系統快照就像其它 APT 操作一樣簡單,使用它我們可以輕松地恢復 btrfs 文件系統的狀態。 先決條件 為了創建並使用 btrfs 恢復你的 Linux 文件系統,當然需要使用的是 btrfs 文件系統,還需要沒有使用 Ext 文件系統的單獨 /boot分區,不然就沒法玩了。 安裝Btrfs包 條件滿足之後,就使用如下命令安裝 apt-btrfs-snapshot 包: apt-get install apt-btrfs-snapshot 安裝完成之後使用如下 apt-btrfs-snapshot 命令檢查是否支持 btrfs 快照的創建: apt-btrfs-snapshot supported 如果滿足 btrfs 文件系統的先決條件,會輸出 Supported,否則會輸出: Sorry, your system lacks support for the snapshot feature 你可以使用如下命令檢查 Ubuntu 上的 btrfs 子卷的默認布局: btrfs subvolume list 使用ATP操作創建快照 為了測試回滾操作,我們先在當前系統中執行一些 apt 操作,例如 apt-get。 apt-get update && apt-get upgrade 按 Y 繼續執行系統升級,你會看到 apt-btrfs-snapshot 已經自動為升級之前的系統狀態創建了快照。 你也可以使用如下命令查看當前系統中的快照列表: btrfs subvolume list / apt-btrfs-snapshot list 還原Btrfs快照 例如在系統升級過程中遇到了問題,我們需要恢復升級之前的系統狀態,可以將 btrfs 文件系統 mount 到一個單獨的位置,例如/mnt 下進行操作。 mount /dev/sda1 /mnt 查看 /mnt 目錄會輸出子卷: ls -l /mnt/ 其中的 @apt-snapshot-2016-05-24_02:18:31 是之前 apt 操作時的 root 文件系統快照。將當前子卷重命名為 @ 開頭,再將 @apt-snapshot-2016-05-24_02:18:31 重命名為為當前子卷後重啟系統,即對快照進行了恢復操作。 刪除Btrfs快照 當快照恢復後,或需要騰出部分磁碟空間時,可以使用如下命令來刪除快照: mount /dev/sda1 /mnt/ btrfs subvolume delete /mnt/@_latest-root/ umount /mnt 說得直白一點,Btrfs 快照實際上就是與其它子卷進行數據共享的子卷,其使用 Btrfs 的 -on-write 能力共享數據和對快照進行修改,原始子卷並不可見。一旦快照創建完成,它就被視為原始文件系統的可替換版本

『貳』 Linux命令

快照功能:記錄當前的硬碟的狀態。剛建快照時快照佔用內存為0,標記了當前硬碟的存儲狀態。當虛擬機對快照標記的內容改寫時,會將改寫的內容存儲進快照,與未改寫的部分整合得到完整的快照。當快照標記的部分被完全改寫,那麼快照存儲空間完整記錄了當時拍攝時的內存狀態。

參數形式

第一種:參數用一橫的說明後面的參數是字元形式。

第二種:參數用兩橫的說明後面的參數是單詞形式。

第三種:參數前有橫的老鏈頃是 System V風格。

第四種:參數前沒有橫的是 BSD風格。

cat、more、less、head、tail命令的比較:

cat命令可以一次顯示整個文件,如果文件比較大,使用不是很方便;

more命令可以讓屏幕在顯示滿一屏幕時暫停,按空格往前翻頁,按b往後翻頁。

less命令也可以分頁顯示文件,和more命令的區別就在於: 支持上下鍵卷動屏幕、查找;不需要在一開始就讀取整個文件,打開大文件時比more、vim更快。

head命令用於查看文件的前n行。

tail命令用於查看文件的後n行,加上-f命令,查看在線日誌非常方便,可以列印最新增加的日誌。

一般模式:

編輯模式:

命令模式:

編碼

多行操作(列編輯模式)
插入:ctrl+v進入列編輯模式,上下移動游標選擇需要插入的位置,然後輸入大寫I,輸入需要文本,最後按esc鍵退出,就會發現文本會在選擇的多行中插入。
刪除:ctrl+v進入列編輯模式,上下移動游標選中需要刪除的部分,然後按d,就會刪除選中的內容。

①head:顯示文件頭部內容

②tail:輸出文件尾部內容

注意:用vim和vi修改內容會刪除源文件並生成新文件,所以tail -f會失效。需要用到

追加和覆蓋語句(>或>>),才能被tail -f監視到。

一般用於查看小文件

查看壓縮文件中的文本內容

例:

①more:文件內容分屏查看器

②less:分屏顯示文件內容,效率比more高

1、簡單讀取

運行腳本如下

測試結果為:

2、-p 參數,允許在 read 命令行中直接指定一個提示。

運行腳本如下

測試結果為:

echo [選項] [輸出內容] (輸出內容到控制台)

輸出給定文本的sha256加密後的內容

①顯示當前時間信息

②顯示當前時間年月日

③顯示當侍陸前時間年月日時分秒

④顯示昨天

⑤顯示明天時間

⑥顯示上個月時間

需要注意的是取下個月的命令存在bug,執行如下命令會得到21-10,但是正常應該得到21-09,需要注意
date -d "2021-08-31 +1 month" +%y-%m

⑦修改系統時間

⑧獲取當前時間戳
獲取秒時間戳: date +%s
獲喚襪取毫秒時間戳:$[ (date +%s%N) /1000000]

查看日歷

(1)查看當前月的日歷

(2)查看2017年的日歷

例:

對比gzip/gunzip,zip/unzip可以壓縮文件和目錄且保留源文件。

①zip:壓縮

②unzip:解壓縮

只能壓縮文件不能壓縮目錄,不保留原來的文件。

gzip 文件 (只能將文件壓縮為*.gz文件)

gunzip 文件.gz (解壓縮文件命令)

例: crontab -e

(1)進入crontab編輯界面。會打開vim編輯你的工作。

(2)每隔1分鍾,向/root/longma.txt文件中添加一個11的數字

*/1 * * * * /bin/echo 」11」 >> /root/longma.txt

(3)可以用tail -f 目標文件來實施監控追加的內容

查看日誌
可以用tail -f /var/log/cron.log觀察

Cron表達式見文章: https://www.jianshu.com/writer#/notebooks/46619194/notes/75177408

ls [選項] [目錄或是文件]

cd [參數]

例: cd -P $(dirname $p1) ; pwd 先跳轉到文件的所在目錄,再列印$p1文件的實際路徑

概述

①cp():只能在本機中復制

②scp(secure ):可以復制文件給遠程主機

scp -r test.sh hxr@hadoop102:/root

③rsync(remote sync):功能與scp相同,但是不會改文件屬性

rsync -av test.sh test.sh hxr@hadoop102:/root

④nc(netcat):監聽埠,可以實現機器之間傳輸文件。
nc -lk 7777 (-l表示listen,-k表示keep)

強制覆蓋不提示的方法:cp

例:scp -r test.sh hxr@bigdata1:/root

例:rsync -av test.sh hxr@bigdata1:/root

例:

nc -lp 10000 > nc_test.txt

nc -w 1 hadoop102 < nc_test.txt

遠程登錄時默認使用的私鑰為~/.ssh/id_rsa

生成密鑰對

將公鑰發送到本機

將密鑰發送到需要登錄到本機的伺服器上

修改密鑰的許可權

遠程登陸

如果有多個節點需要遠程登陸,可以在.ssh下創建config並輸入

再次登陸


①正向代理:



②反向代理:
所謂「反向代理」就是讓遠端啟動埠,把遠端埠數據轉發到本地。

HostA 將自己可以訪問的 HostB:PortB 暴露給外網伺服器 HostC:PortC,在 HostA 上運行:

那麼鏈接 HostC:PortC 就相當於鏈接 HostB:PortB。
使用時需修改 HostC 的 /etc/ssh/sshd_config 的一條配置如下,不然啟動的進程監聽的ip地址為127.0.0.1,即只有本機可以訪問該埠。

相當於內網穿透,比如 HostA 和 HostB 是同一個內網下的兩台可以互相訪問的機器,HostC是外網跳板機,HostC不能訪問 HostA,但是 HostA 可以訪問 HostC。
那麼通過在內網 HostA 上運行 ssh -R 告訴 HostC,創建 PortC 埠監聽,把該埠所有數據轉發給我(HostA),我會再轉發給同一個內網下的 HostB:PortB。
同內網下的 HostA/HostB 也可以是同一台機器,換句話說就是 內網 HostA 把自己可以訪問的埠暴露給了外網 HostC。

例: 比如在我的內網機192.168.32.244上有一個RabbitMQ的客戶端,埠號為15672。現在我希望在外網上訪問固定ip的雲伺服器chenjie.asia的6009埠,通過跳板機192.168.32.243來轉發請求到192.168.32.244:15672,從而實現在外網訪問內網服務的功能,即內網穿透。
①在192.168.32.244上啟動RabbitMQ服務

②將chenjie.asia雲伺服器的私鑰復制到跳板機192.168.32.243的~/.ssh下,並重命名為id_rsa。通過如下命令看是否可以遠程登陸到雲服務,可以登陸則進行下一步。

③修改chenjie.asia伺服器的ssh配置文件 /etc/ssh/sshd_config ,允許其他節點訪問

然後重啟sshd服務

④在跳板機192.168.32.243啟動ssh反向代理

這個進程在關閉session時會停止,可以添加啟動參數 -CPfN

例:

以 root 身份執行的程序有了所有特權,這會帶來安全風險。Kernel 從 2.2 版本開始,提供了 Capabilities 功能,它把特權劃分成不同單元,可以只授權程序所需的許可權,而非所有特權。

例如:linux不允許非root賬號只用1024以下的埠,使用root啟動命令nginx,會導致nginx許可權過高太危險。所以用setcap命令

sudo setcap cap_net_bind_service=+eip /bigdata/nginx/sbin/nginx

正確的關機流程為 :sync > shutdown > reboot > halt

(1)sync (功能描述:將數據由內存同步到硬碟中)

(2)halt (功能描述:關閉系統,等同於shutdown -h now 和 poweroff)

(3)reboot (功能描述:就是重啟,等同於 shutdown -r now)

(4)shutdown [選項] [時間]

安裝
yum install -y telnet-server telnet

ls -i 顯示文件的節點號
find -inum 節點號 -delete 刪除指定的節點即可刪除對應的文件


啟動一個服務: systemctl start postfix.service
關閉一個服務: systemctl stop postfix.service
重啟一個服務: systemctl restart postfix.service
顯示一個服務的狀態: systemctl status postfix.service

在開機時啟用一個服務: systemctl enable postfix.service
在開機時禁用一個服務: systemctl disable postfix.service
註:在enable的時候會列印出來該啟動文件的位置

列出所有已經安裝的服務及狀態:
systemctl list-units
systemctl list-unit-files
查看服務列表狀態:
systemctl list-units --type=service

查看服務是否開機啟動: systemctl is-enabled postfix.service
查看已啟動的服務列表: systemctl list-unit-files | grep enabled
查看啟動失敗的服務列表: systemctl --failed

查看服務日誌: journalctl -u postfix -n 10 -f

命令類似systemctl,用於操作native service。

添加腳本為服務(需要指定啟動級別和優先順序): chkconfig --add [腳本]
刪除服務: chkconfig --del [腳本]
單獨查看某一服務是否開機啟動的命令 : chkconfig --list [服務名]
單獨開啟某一服務的命令 : chkconfig [服務名] on
單獨關閉某一服務的命令: chkconfig [服務名] off
查看某一服務的狀態: /etc/intd.d/[服務名] status

啟用服務就是在當前"runlevel"的配置文件目錄 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 裡面對應服務配置文件的軟鏈接;禁用服務就是刪除此軟鏈接,添加服務就是添加軟連接。

su 用戶名稱 (切換用戶,只能獲得用戶的執行許可權,不能獲得環境變數)

su - 用戶名稱 (切換到用戶並獲得該用戶的環境變數及執行許可權)

echo $PATH 列印環境變數

設置普通用戶具有root許可權

修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下 所示:

或者配置成採用sudo命令時,不需要輸入密碼

修改完畢,現在可以用hxr 帳號登錄,然後用命令 sudo ,即可獲得root許可權進行操作。

以azkaban用戶執行引號中的命令

gpasswd -d [username] [groupname] 將用戶從組中刪除
gpasswd -a [username] [groupname] 將用戶加入到組中

用戶組的管理涉及用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對 /etc/group文件的更新。

0首位表示類型 - 代表文件 d 代表目錄 l 鏈接文檔(link file)

三種特殊許可權suid、sgid、sticky

例子:



變更文件許可權方式一

例:chmod u-x,o+x houge.txt

變更文件許可權方式二

例:chmod -R 777 /mnt/ 修改整個文件夾的文件許可權


在linux中創建文件或者目錄會有一個默認許可權的,這個默認許可權是由umask決定的(默認為0022)。umask設置的是許可權的「補碼」,而我們常用chmod設置的是文件許可權碼。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中設置umask值。

umask計算
如root用戶的默認umask為0022(第一個0 代表特殊許可權位,這里先不考慮),創建的文件默認許可權是644(即默認666掩上umask的022),創建的目錄是755(即默認777掩上umask的022)。

對於root用戶的umask=022這個來說,777許可權二進制碼就是(111)(111)(111),022許可權二進制碼為(000)(010)(010)。

上面就是一個umask的正常計算過程,但是這樣實在是太麻煩了。我們使用如下的簡單的方法快速計算。

上面的這個方法計算是非常方便的, 為何得到奇數要+1呢?

文件的最大許可權是666,都是偶數,你得到奇數,說明你的umask有奇數啊,讀為4,寫為2,都是偶數,說明你有執行許可權的。

就按照上面的umask=023為例,在計算其他用戶許可權的時候6-3=3 ,6是讀寫,3是寫和執行,其實應該是讀寫許可權減去讀許可權的得到寫許可權的,相當於我們多減去了一個執行許可權。所以結果加1。



umask修改


如果想單獨修改某個文件夾的新建文件的許可權,可以使用setfacl命令。


例:遞歸改變文件所有者和所有組 chown -R hxr:hxr /mnt

例:

『叄』 LINUX系統介紹

嵌入式Linux系統的設計與應用
摘要:隨著嵌入式Linux系統的迅速發展,嵌入式Linux已發展成為嵌入式操作系統的一個重要分支。本文介紹了嵌入式Linux的設計和幾種流行的嵌入式Linux系統。

關鍵詞:嵌入式Linux

一、引言

嵌入式系統(Embedded Systems)是根據應用的要求,將操作系統和功能軟體集成於計算機硬體系統之中,從而實現軟體與硬體一體化的計算機系統。嵌入式系統出現於60年代晚期,它最初被用於控制機電電話交換機,如今已被廣泛的應用於工業製造、過程式控制制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等眾多領域。嵌入式系統在數量上遠遠超過了各種通用計算機系統:計算機系統核心CPU,每年在全球范圍內的產量大概在二十億顆左右,其中超過80%應用於各類專用性很強的嵌入式系統。

一般的說,凡是帶有微處理器的專用軟硬體系統都可以稱為嵌入式系統。和通用的計算平台相比,嵌入式系統往往具有功能單一、體積小、功耗低、可靠性高、剪裁性好、軟硬體集成度高、計算能力相對較低等特點。多年來,嵌入式設備中沒有操作系統,其主要原因有二:首先,諸如洗衣機、微波爐、電冰箱這樣的設備僅僅需要一道簡單的控製程序,以管理數量有限的按鈕和指示燈,沒有使用操作系統的必要;其次,它往往只具有有限的硬體資源,不足以支持一個操作系統。

然而,隨著硬體的發展,嵌入式系統變得越來越復雜,最初的控製程序中逐步的加入了許多功能,而這些功能中有很多可以由操作系統提供。於是,在70年代末期出現了嵌入式操作系統(Embedded Operating Systems),它的出現大大簡化了應用程序設計,並可以有效的保障軟體質量和縮短開發周期。簡單的ES一般並不使用操作系統,只包含一些控制流程,但是隨著嵌入式操作系統在復雜性上的增長,簡單的流程式控制制就不能滿足系統的要求,這是就必須考慮使用操作系統做系統軟體。因此,嵌入式操作系統就應運而生。

隨著EOS的廣泛應用,業界已推出一些應用比較成功的EOS產品。歸納起來EOS應該具有以下幾個特點:小巧、實時性、可裝卸、固化代碼、弱交互性、強穩定性和統一的介面。目前使用最多的EOS產品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、Hopen OS(國內凱思集團公司自主研製開發)等。其中,Vxwork使用最為廣泛、市場佔有率最高,其突出特點是實時性強(採用優先順序搶占和輪轉調度等機制),除此之外,其可靠性和可剪裁性也相當不錯。QNX是一種伸縮性極佳的系統,其核心加上實時POSIX環境和一個完整的窗口系統還不到一兆。相比之下,Microsoft WinCE的核心體積龐大,實時性能也差強人意,但由於Windows系列友好的用戶界面和為程序員所熟悉的API,並捆綁IE、Office等應用程序,正逐漸獲得更大的市場份額。而與這些商業化的操作系統相比,Linux已經越來越受到人們的注意。

二、嵌入式Linux概述

Linux是一個成熟而穩定的網路操作系統。將Linux植入嵌入式設備具有眾多的優點。首先,Linux的源代碼是開放的,任何人都可以獲取並修改,用之開發自己的產品。其次,Lirmx是可以定製的,其系統內核最小隻有約134kB。一個帶有中文系統和圖形用戶界面的核心程序也可以做到不足1MB,並且同樣穩定。另外,它和多數Unix系統兼容,應用程序的開發和移植相當容易。同時,由於具有良好的可移植性,人們已成功使Linux運行於數百種硬體平台之上。

然而,Linux並非專門為實時性應用而設計,因此如果想在對實時性要求較高的嵌入式系統中運行Linux,就必須為之添加實時軟體模塊。這些模塊運行的內核空間正是操作系統實現進程調度、中斷處理和程序執行的部分,因此錯誤的代碼可能會破壞操作系統,進而影響整個系統的可靠性和穩定性。Linux的眾多優點還是使它在嵌入式領域獲得了廣泛的應用,並出現了數量可觀的嵌入式Linux系統。其中有代表性的包括:uClinux、ETLinux、ThinLinux、LOAF等。ETLinux通常用於在小型工業計算機,尤其是PC/104模塊。ThinLinux面向專用的照相機伺服器、X-10控制器、MP3播放器和其它類似的嵌入式應用。LOAF是Linux On A Floppy的縮略語,它運行在386平台上。

三、Linux作為嵌入式操作系統的優勢

Linux作為嵌入式操作系統的優勢主要有以下幾點:

1、 可應用於多種硬體平台。Linux已經被移植到多種硬體平台,這對於經費,時間受限制的研究與開發項目是很有吸引力的。原型可以在標准平台上開發後移植到具體的硬體上,加快了軟體與硬體的開發過程。Linux採用一個統一的框架對硬體進行管理,從一個硬體平台到另一個硬體平台的改動與上層應用無關。Linux可以隨意地配置,不需要任何的許可證或商家的合作關系,源代碼可以免費得到。這使得採用Linux作為操作系統不會遇到任何關於版權的糾紛。毫無疑問,這會節省大量的開發費用。本身內置網路支持,而目前嵌入式系統對網路支持要求越來越高。Linux的高度模塊化使添加部件非常容易。

2、 Linux是一個和Unix相似、以內核為基礎的、具有完全的內存訪問控制,支持大量硬體(包括X86,Alpha、ARM和Motorola等現有的大部分晶元)等特性的一種通用操作系統。其程序源碼全部公開,任何人可以修改並在GUN通用公共許可證(GNU General Public License)下發行。這樣,開發人員可以對操作系統進行定製,適應其特殊需要。

3、 Linux帶有Unix用戶熟悉的完善的開發工具,幾乎所有的Unix系統的應用軟體都已移植到了Linux上。Linux還提供了強大的網路功能,有多種可選擇窗口管理器(X Windows)。其強大的語言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。

四、嵌入式Linux的建立

完整的嵌入式Linux解決方案應包括嵌入式Linux操作系統內核、運行環境、圖形化界面和應用軟體等。由於嵌入式設備的特殊要求,嵌入式Linux解決方案中的內核、環境、GUI等都與標准Linux有很大不同,其主要挑戰是如何在狹小的FLASH、ROM和內存中實現高質量的任務實時調度、圖形化顯示、網路通信等功能。

1、 精簡內核

Linux內核有自己的結構體系,其中進程管理、內存管理和文件系統是其最基本的3個子系統。圖1簡單表示了它的框架。用戶進程可直接通過系統調用或者函數庫來訪問內核資源。正因為Linux內核具有這樣的結構,因此修改內核時必須注意各個子系統之間的協調。

嵌入式Linux內核一般由標准Linux內核裁剪而來。用戶可根據需求配置系統,剔除不需的服務功能、文件系統和設備驅動。經過裁剪、壓縮後的系統內核一般只有300k左右,十分適合嵌入式設備。同標准Linux不同的是嵌入式Linux必須要實現從FLASH或ROM的啟動。標准Linux啟動代碼實現了系統初始化和從軟盤、硬碟O盤區引導內核。嵌入式Linux一般保存在FLASH或ROM中,標准LILO無法引導。在支持直接從FLASH設備引導的系統中,如華恆公司的uClinux,引導程序主要完成對硬體系統的初始化工作和操作系統的解壓、移位工作。在不支持直接從FLASH引導的系統中,FLASH設備只能作為非引導磁碟使用。此時,可採用先從硬碟或軟盤載入一個小操作系統,如嵌入式DOS,然後再執行"Loadlin"載入程序從FLASH引導嵌入式Linux。

對標准Linux的修改主要是虛擬內存和調度程序部分的改動。因為標准Linux系統使用虛擬內存管理的目的是為了能同時運行多個進程,但是這樣每個待運行的進程所能分配的CPU時間片就受限制,資源的使用效率就低。這樣對於實時性要求較高的嵌入式系統來說,實時任務往往要求CPU具有很高的突發處理能力,即在有些時候需要極高的處理效率,因此需要屏蔽內核的虛擬內存管理機制。對於無硬碟設備的嵌入式系統,不必採用虛存管理。強實時需求的嵌入式應用可以通過修改任務調度模塊實現,主要是在內核和設備驅動程序中加入了許多切換點。在該點處,系統檢測是否存在未處理的緊急中斷,有則剝奪內核的運行,及時處理中斷。實現實時性服務的一個較好的方法是在標準的Linux內核上增加一個實時內核,標准Linux內核作為一個任務運行於實時內核上,強實時性任務也直接運行在實時內核上,如RT-Linux等。

文件系統是嵌入式Linux操作系統必不可少的。但標准Linux支持大量的文件系統,因此除了滿足系統的正常運行需要而保留一種外,其它的全部可以刪除,利用原有的設置選項可以移除。一般嵌入式設備文件系統主要使用RamDisk技術和網路文件系統技術。RamDisk可駐留於Flash,運行時載入到內存中。

2、 精簡運行環境

Linux通常的運行環境指用戶運行任何應用的基礎設施,主要包括函數庫和基本命令集等。標准Linux系統同時向用戶提供了靜態和動態函數庫。靜態函數庫在生成應用時直接鏈接到用戶應用中。動態庫在應用運行時才鏈接。由於嵌入式系統應用一般都是在開發平台上預先生成的,因此嵌入式系統只需向應用提供動態函數庫。Linux應用運行所需的函數庫主要有C庫、數學庫、線程庫、加密庫、網路通信庫等。其中最基本的是C語言的運行庫glib。這個庫主要完成基本的輸入輸出,內存訪問,文件處理。一個標準的glib庫大約要1200kB存儲空間,考慮到嵌入式Linux內核往往很小,這種運行庫實在太大,我們做了一些精簡的工作,方法有兩種:(1)、使用靜態連接的方法,完全不使用運行庫動態連接;(2)、對這個庫的函數進行精簡。

在一個桌面系統上,使用動態連接可以帶來許多好處。使用動態連接庫,可以讓應用程序跟函數庫的更新、升級分離,便於維護,可以讓同時運行的多個程序共享一段代碼。但是,在嵌入式系統中,很少有多個程序並行的可能,程序的維護,尤其是庫函數的維護更新是不常見的。這時,使用靜態連接的優勢就極為明顯。因為靜態連接可以只將庫中用到的部分連接進程序。在應用程序較少(小於5)的情況下,靜態連接可以達到較好的結果。為了便於將來擴充的需要,我們也採用第二種方法,針對我們的需要,對庫函數的內容進行精簡,只保留一些基本功能,還有一種方法是採用其它的C語言運行庫。但是這些庫對兼容性影響很大。

基本命令集同樣是運行用戶應用的基礎,主要包括初始化進程init,終端獲取getty、Shell和基本命令等。嵌入式系統的啟動過程可能與標准Linux不同,例如跳過登錄過程直接啟動GUI等。這就要求修改init,getty等。標准Linux命令集同樣由於體積問題無法直接應用於嵌入式環境。目前,小命令集的解決方法主要有集成方法和匯編方法兩種。集成方法採用集成公共部分減少命令集整體體積,用C實現,有較好的平台移植性;匯編方法則採用匯編編程減少每個命令的體積.這樣可使體積很小但其平台移植性較差。

3、 嵌入式Linux下的GUI

GUI在嵌入式系統或者實時系統中的地位越來越重要,比如PDA、DVD播放機、WAP手機等,都需要一個完整.漂亮的圖形用戶界面。這些系統對GUI的基本要求包括:(1)、輕型、佔用資源少;(2)、高性能;(3)、高可靠性;(4)、可配置。這些也成為評價嵌入式系統的重要指標。目前,嵌入式Linux上的GUI主要有winCE、Micro Window、緊縮的X Window、MiniGUI(國內做得較好的自由軟體之一)。標准Linux的Xfree86由於體積龐大,運行環境要求高,無法運行於嵌入式環境。嵌入式GUI主要通過削減功能,降低性能來實現體積小和佔用資源少。目前嵌入式Linux上的GUI環境主要有兩類:X類和win32類。X類GUI分為服務方和客戶方兩方。伺服器方提供滑鼠、鍵盤處理和顯示功能,客戶方是用戶應用,服務方和客戶方通過socket介面和X協議通信。採用該方式十分有利於遠程網路圖形化服務,客戶方和服務方可通過網路實現X協議和圖形顯示。典型的X類GUI有Micro Window、緊縮的X Window等。win32類的GUI不存在客戶方和服務方,每個任務都自成一體,任何任務間的切換、事件分發由專門的管理任務負責。如wiCE、MiniGUI就是類似於win32類的GUI。

五、當前流行的幾種嵌入式Linux系統

除了智能數字終端領域以外,Linux在移動計算平台、智能工業控制、金融業終端系統,甚至軍事領域都有著廣泛的應用前景。這些Linux被統稱為"嵌入式Linux"。

1、RT-Linux

這是由美國墨西哥理工學院開發的嵌入式Linux操作系統。到目前為止,RT-Linux已經成功地應用於太空梭的空間數據採集、科學儀器測控和電影特技圖像處理等廣泛領域。RT-Linux開發者並沒有針對實時操作系統的特性而重寫Linux的內核,因為這樣做的工作量非常大,而且要保證兼容性也非常困難。為此,RT-Linux提出了精巧的內核,並把標準的Linux核心作為實時核心的一個進程,同用戶的實時進程一起調度。這樣對Linux內核的改動非常小,並且充分利用了Linux下現有的豐富的軟體資源。

2、uClinux

uCLinux是Lineo公司的主打產品,同時也是開放源碼的嵌入式Linux的典範之作。uCLinux主要是針對目標處理器沒有存儲管理單元MMU(Memory Management Unit) 的嵌入式系統而設計的。它已經被成功地移植到了很多平台上。由於沒有MMU,其多任務的實現需要一定技巧。uCLinux是一種優秀的嵌入式Linux版本,是micro-Conrol-Linux的縮寫。它秉承了標准Linux的優良特性,經過各方面的小型化改造,形成了一個高度優化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,卻仍然保留了Linux的大多數的優點:穩定、良好的移植性、優秀的網路功能、對各種文件系統完備的支持和標准豐富的API。它專為嵌入式系統做了許多小型化的工作,目前已支持多款CPU。其編譯後目標文件可控制在幾百KB數量級,並已經被成功地移植到很多平台上。

3、Embedix

Embedix是由嵌入式Linux行業主要廠商之一Luneo推出的,是根據嵌入式應用系統的特點重新設計的Linux發行版本。Embedix提供了超過25種的Linux系統服務,包括Web伺服器等。系統需要最小8MB內存,3MB ROM或快速快閃記憶體。Embedix基於Linux 2.2內核,並已經成功地移植到了Intel x86和PowerPC處理器系列上。像其它的Linux版本一樣,Embedix可以免費獲得。Luneo還發布了另一個重要的軟體產品,它可以讓在Windows CE上運行的程序能夠在Embedix上運行。Luneo還將計劃推出Embedix的開發調試工具包、基於圖形界面的瀏覽器等。可以說,Embedix是一種完整的嵌入式Linux解決方案。

4、Xlinux

XLinux是由美國網虎公司推出,主要開發者是陳盈豪。他在加盟網虎幾個月後便開發出了基於XLinux的、號稱是世界上最小的嵌入式Linux系統,內核只有143KB,而且還在不斷減小。XLinux核心採用了"超字元集"專利技術,讓Linux核心不僅可能與標准字元集相容,還含蓋了1 2個國家和地區的字元集。因此,XLinux在推廣Linux的國際應用方面有獨特的優勢。

5、PoketLinux

由Agenda公司採用、作為其新產品"VR3PDA"的嵌入式Linux操作系統。它可以提供跨操作系統構造統一的、標准化的和開放的信息通信基礎結構,在此結構上實現端到端方案的完整平台。PoketLinux資源框架開放,使普通的軟體結構可以為所有用戶提供一致的服務。PoketLinux平台使用戶的視線從設備、平台和網路上移開,由此引發了信息技術新時代的產生。在PoketLinux中,稱之為用戶化信息交換(CIE),也就是提供和訪問為每個用戶需求而定製的"主題"信息的能力,而不管正在使用的設備是什麼。

6、MidoriLinux

由Transmeta公司推出的MidoriLinux操作系統代碼開放,在GUN普通公共許可(GPL)下發布,可以在http://midori.transmeta.com上立即獲得。該公司有個名為"MidoriLinux計劃"。"MidoriLinux"這個名字來源於日本的"綠色"---Midori,用來反映其Linux操作系統的環保外觀。

7、紅旗嵌入式Linux

由北京中科院紅旗軟體公司推出的嵌入式Linux是國內做得較好的一款嵌入式操作系統。目前,中科院計算所自行開發的開放源碼的嵌入式操作系統---Easy Embedded OS(EEOS)也已經開始進入實用階段了。該款嵌入式操作系統重點支持p-Java。系統目標一方面是小型化,另一方面能重用Linux的驅動和其它模塊。由於有中科院計算所的強大科研力量做後盾,EEOS有望發展成為功能完善、穩定、可靠的國產嵌入式操作系統平台。

六、結束語

由於Linux是一個內核源代碼開放、具備一整套工具鏈、有強大的網路支持及成本低廉的操作系統,因此嵌入式Linux自誕生起就秉承了這眾多獨特優勢,這使它正在並越來越多地受到人們的關注。據Even Data數據顯示,期望使用嵌入式Linux的用戶從2001年的11%增到2002年27%,而同期Vxwork只是從16%到18%,Win CE從9%到14%。另外,在嵌入式Linux的各種應用市場中,通信(語音和數據)名列第一,2000年的銷售額是1300萬美元,而2005年預計將達到1.26億美元,可以預見,嵌入式Linux將在未來的通信用嵌入式操作系統中占據強有力的地位

Linux是目前十分火爆的操作系統。它是由芬蘭赫爾辛基大學的一個大學生Linus B. Torvolds在1991年首次編寫的。標志性圖標是一個可愛的小企鵝。

Linux是一種類Unix系統,Linus當時編寫它的目的是為了替代一種名叫Minix的操作系統。Minix是由一個名叫Andrew Tannebaum的計算機教授編寫的,當時由於Unix是一個商業軟體,其源代碼是不能拿來進行教學的,Andrew教授就自己編寫了一個系統用於教學。最
初的Minix用一張軟盤就能裝下,麻雀雖小、五臟俱全,Minix具有一般操作系統的特徵,它同時兼容Unix系統。

Linux是一個免費的操作系統,用戶可以免費獲得其源代碼,並能夠隨意修改。它是在共用許可證GPL(General Public License)保護下的自由軟體,也有好幾種版本,如Red Hat Linux、Slackware,以及國內的Xteam Linux等。

Linux具有許多Unix系統的功能和特點,能夠兼容Unix,但無需支付Unix高額的費用。比如一個Unix程序員在單位可以在Unix系統上進行工作,回到家裡在Linux系統上也能完成同樣的工作,而不必重新購買Unix。要知道Unix的價格比常見的Windows要高出若干倍,和Linux的低廉更是相距甚遠。

Linux的應用也十分廣泛。Sony最新的PS2游戲機就採用了Linux作為系統軟體,使PS2搖身一變,成為了一台Linux工作站。著名的電影《泰坦尼克號》的數字技術合成工作就是利用100多台Linux伺服器來完成的。

2001年8月17日,Linux發布了最新的Linux 2.4.9版,它也已經十歲了。

Linux的優點

Linux的流行是因為它具有許多誘人之處。

1、完全免費

Linux是一款免費的操作系統,用戶可以通過網路或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了Linux的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變。這讓Linux吸收了無數程序員的精華,不斷壯大。

2、完全兼容POSIX 1.0標准

這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。

3、多用戶、多任務

Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。

4、良好的界面

Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Windows系統,用戶可以使用滑鼠對其進行操作。在X-Windows環境中就和在Windows中相似,可以說是一個Linux版的Windows。

5、豐富的網路功能

互聯網是在Unix的基礎上繁榮起來的,Linux的網路功能當然不會遜色。它的網路功能和其內核緊密相連,在這方面Linux要優於其他操作系統。在Linux中,用戶可以輕松實現網頁瀏覽、文件傳輸、遠程登陸等網路工作。並且可以作為伺服器提供WWW、FTP、E-Mail等服務。

6、可靠的安全、穩定性能

Linux採取了許多安全技術措施,其中有對讀、寫進行許可權控制、審計跟蹤、核心授權等技術,這些都為安全提供了保障。Linux由於需要應用到網路伺服器,這對穩定性也有比較高的要求,實際上Linux在這方面也十分出色。

7、支持多種平台

Linux可以運行在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的Linux 2.4版內核已經能夠完全支持Intel 64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。

Linux的不足

由於在現在的個人電腦操作系統行業中,微軟的Windows系統仍然佔有大部分的份額,絕大多數的軟體公司都支持Windows。這使得Windows上的應用軟體應有盡有,而其他的操作系統就要少一些。許多用戶在換操作系統的時候都會考慮以前的軟體能否繼續使用,換了操作系統後是否會不方便。雖然Linux具有DOS、Windows模擬器,可以運行一些Windows程序,但Windows系統極其復雜,模擬器所模擬的運行環境不可能完全與真實的Windows環境一模一樣,這就使得一些軟體無法正常運行。

許多硬體設備面對Linux的驅動程序也不足,不少硬體廠商是在推出Windows版本的驅動程序後才編寫Linux版的。但一些大硬體廠商在這方面做得還不錯,他們的Linux版驅動程序一般都推出得比較及時。

軟體支持的不足是Linux最大的缺憾,但隨著Linux的發展,越來越多的軟體廠商會支持Linux,它應用的范圍也越來越廣。這只小企鵝的前景是十分光明的。

『肆』 Linux操作系統概述

Linux操作系統概述

Linux是一套可以免費使用和自由傳播的,類似於UNIX風格的操作系統。Linux最早是由芬蘭人托瓦茲(Linus Torvalds)設計的。下面是關於Linux操作系統概述,希望大家認真閱讀!

Linux系統的起源與發展

由於UNIX的商業化,很遺憾,它一般只運行在昂貴的工作台上,普通人難得一見。後來Andrew Tannebaum教授開發了Minix操作系統,發布在網上,供人們免費使用,因為Minix具有UNIX的特點,但是由與UNIX不完全兼容,所以1991年10月托瓦茲自己動手寫了一個UNIX PC版本,同年11月,在很多熱新的支持者的幫助下開發和推出了第一個穩定的'Linux0.10工作版本。

後來1994年的3月,Linux1.0版本出現,在Linux設計過程中,借鑒了很多UNIX的思想,但是源代碼都是重寫的。 後面發展迅速並有很多的IT公司的加入開發,這時Linux迅速發展並普及並進入了商業領域。在1995年6月,發布了Linux 2.0版本,強大的它已經支持很多處理器,而且具有了強大的網路功能,並增強了系統的文件與虛擬內存的性能,同時可以為文件系統提供獨立的高速緩存設備。

如今它已經受到了更多企業用戶的重視,Linux正日益成為一個令人生畏的對手。

linux系統

Linux系統的組成

操作系統是一台計算機必不可少的系統軟體,是整個計算機系統的靈魂。Linux操作系統由內核(Kernel),外殼(shell)和應用程序三大部分組成。硬體平台是Linux操作系統運行的基礎。

linux系統的內核:內核是linux系統的心臟,是運行程序和管理硬體設備的 核心程序,負責控制硬體設備,管理文件系統,程序流程以及其他工作。

linux系統的外殼:外殼程序是系統的用戶界面,提供用戶與內核進行交互操作的一種介面。它接收用戶命令,傳達給內核處理,內核處理並把結果傳送到界面。

linux系統的應用程序:1.文本處理工具。2.X Window。3.編程語言和開發工具。4.Internet工具軟體。5.資料庫

linux系統的組成

Linux系統的特點

Linux操作系統以它的安全性,高效性和靈活性著稱,它能夠實現幾乎全部UNIX的特性,還具有多任務,多用戶的能力。

特點:

自由軟體,源碼公開多用戶多任務並發可靠的安全系統良好的可移植性豐富的網路功能設備的獨立性良好的用戶界面

;
閱讀全文

與linux系統快照概述相關的資料

熱點內容
找同行工作在哪個網站 瀏覽:254
linuxdirfd 瀏覽:290
電腦列印一張文件多少錢 瀏覽:212
斗戰神遊戲修復工具 瀏覽:736
系統更新網路無法鏈接不上電腦沒反應 瀏覽:851
什麼是二層網路架構 瀏覽:402
中醫看書好的app 瀏覽:516
win10紙牌變成英文 瀏覽:135
源碼文件圖片路徑怎麼形成的 瀏覽:432
ai變數寬度配置文件點不了 瀏覽:460
強制安裝app去哪裡舉報 瀏覽:719
微信登錄數據保存在哪裡 瀏覽:321
pic編程哪裡下載 瀏覽:549
蘋果ipad官方壁紙 瀏覽:154
華創網路信號怎麼樣 瀏覽:495
共享單車網站源碼 瀏覽:281
a班練琴app下載不了怎麼回事 瀏覽:349
數控中怎麼編程 瀏覽:409
vm如何安裝linux系統 瀏覽:423
歌手實績數據在哪裡看 瀏覽:691

友情鏈接