Linux基础 —— 操作系统简介
什么是操作系統
1.操作系統(Operation System,OS)
操作系統示意圖
沒有安裝操作系統的計算機,通常被稱為裸機。
· 如果想在裸機上運行自己所編寫的程序,就必須用機器語言書寫程序。
· 如果計算機上安裝了操作系統,就可以在操作系統上安裝支持的高級語言環境,用高級語言開發程序。
不同領域的主流操作系統
不同應用領域的主流操作系統
(1)桌面操作系統
· Windows系列 —— 用戶群體大
· macOS —— 適用于開發人員
· Linux —— 應用軟件少
(2)服務器操作系統
· Linux ——安全、穩定、免費、占有率高
· Windows server —— 付費、占有率低
(3)嵌入式操作系統
· Linux
(4)移動設備操作系統
· IOS
· Android (基于Linux)
虛擬機
虛擬機(Virtual Machine)指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。
· 虛擬系統通過生成現有操作系統的全新虛擬鏡像,具有真實操作系統完全一樣的功能。
· 進入虛擬系統后,所有操作都是在這個全新的獨立的虛擬系統里面進行,可以獨立安裝運行軟件,保存數據、擁有自己的獨立桌面、不會對真正的系統產生任何影響。
· 能夠在現有系統與虛擬鏡像之間靈活切換的一類操作系統。
操作系統的發展史
01.操作系統的發展簡史
1.1 Unix
1965年之前的時候,電腦并不像現在一樣普通,它可不是一般人能碰的起的,除非是軍事或者學院的研究機構,而且當時大型主機至多能提供30臺終端(30個鍵盤、顯示器),連接一臺電腦。
為了解決數量不夠用的問題
· 1965年左右由貝爾實驗室加入了MIT以及AT&T合作的計劃——該計劃要建立一套多使用者、多任務、多層次的MULTICS操作系統,想讓大型主機支持300臺終端。
· 1969年前后這個項目進度緩慢,資金短缺,貝爾實驗室退出了研究。
· 1969年從這個 項目退出的 K.T當時在實驗室無聊時,為了讓一臺空閑的電腦上能夠運行“星際旅行”游戲,在8月份左右趁著其妻子探親的時間,用了1個月的時間,使用匯編語言寫出了Unix操作系統的原型。
· 1970年,美國貝爾實驗室的K.T以BCPL原因為基礎,設計出很簡單且很接近硬件的B語言,并且他用B語言寫了第一個Unix操作系統。
· 1971年,同樣熱愛“星際旅行”的D.R為了能早點兒玩上游戲,加入了K.T的開發項目,合作開發了Unix,他的主要工作是改造B語言,因為B語言的跨平臺性較差。
· 1972年,D.R在B語言的基礎上 最終設計出了一種新的語言,這就是C語言。
· 1975年初,C語言的主體完成,K.T和D.R迫不及待地開始用它完全重寫了現在大名鼎鼎的Unix操作系統。
C語言
· 在把Unix移植到其他類型的計算機上使用時,C語言強大的移植性在此顯現
(機器語言和匯編語言都不具有移植性,為x86開發的程序,不可能在Alpha、SPARC和ARM等機器上運行。)
· 而C語言程序則可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的C語言編譯器和庫,然后C源代碼編譯、連接成目標二進制文件之后即可運行。
Unix家譜
1.2 Minix
· 因為AT&T(通用電氣)的政策改變,在Version 7Unix退出之后,發布新的使用條款,將Unix源代碼私有化,在大學中不在能使用Unix源代碼。
· A.T教授為了能在課堂上教授學生操作系統運作的細節,決定在不使用任何AT&T的源代碼前提下,自行開發與Unix兼容的操作系統,以避免版權上的爭議。
· 以小型Unix之意,命名為Minix。
1.3 Linux
· 1991年L就讀于赫爾辛基大學期間,對Unix產生濃厚興趣,嘗試著在Minix上做一些開發工作。
· 因為Minix只是教學使用,因此功能并不強,L經常要用他的終端仿真器去訪問大學主機上的新聞組和郵件,為了方便讀寫和下載文件,他自己編寫了磁盤驅動程序和文件系統,這些在后來成為了Unix第一個內核的雛形,當時,他年僅21歲。
· L利用GNU上的bash當做開發環境,gcc當做編譯工具,編寫了Linux內核,一開始Linux并不能兼容Unix。
(即Unix上跑的應用程序不能在Linux上跑,應用程序與內核之間的接口不一致;一開始Linux只適用于386,后來經過全世界的網友的幫助,最終能夠兼容多種硬件。)
02.Linux內核及發行版
2.1Linux內核版本
· 內核是系統的心臟,是運行程序和管理像磁盤和打印機等硬件設備的核心程序,它提供了一個在裸設備與應用程序間的抽象層。
· Linux內核版本又分為穩定版和發行版,兩種版本是相互關聯、相互循環。
(穩定版:具有工業級強度,可以廣泛地應用和部署,新的穩定版相對于較舊的只是修正一些bug或加入一些新的驅動程序。)
(發行版:由于要實驗各種解決方案,所以變化很快。)
2.2Linux發行版本
· Unix發行版通常包含了包括桌面環境、辦公軟件、媒體播放器、數據庫等應用軟件。
Linux系統下的文件目錄結構
01.單用戶操作系統和多用戶操作系統
· 單用戶操作系統:用一臺計算機同一時間只能由一個用戶使用,一個用戶獨自享用系統的全部硬件和軟件資源。
(Windows XP之前的版本都是單用戶操作系統)
· 多用戶操作系統:指一臺計算機在同一時間可以由多個用戶使用,多個用戶共通享用系統的全部硬件和軟件資源。
(Unix和Linux的設計初衷就是多用戶操作系統)
02.Windows和Linux文件系統區別
2.1Windows下的文件系統
· 在Windows下,打開“計算機”,看到的是一個個的驅動器盤符。
· 每個驅動器都有自己的目錄結構,這樣形成了多個樹并列的情形。
2.2Linux下的文件系統
· 在Linux下,看不到驅動盤符,看到的是文件夾。
· Ubuntu沒有盤符這個概念,只有一個根目錄/,所有文件都在它下面。
2.3用戶目錄
位于/home/user,稱之為用戶工作目錄或家目錄。
2.4Linux主要目錄速查表
/:根目錄,一般根目錄下只存放目錄,在 linux 下有且只有一個根目錄,所有的東西都是從這里開始
當在終端里輸入 /home,其實是在告訴電腦,先從 /(根目錄)開始,再進入到 home 目錄
/bin、/usr/bin:可執行二進制文件的目錄,如常用的命令 ls、tar、mv、cat 等
/boot:放置 linux 系統啟動時用到的一些文件,如 linux 的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub
/dev:存放linux系統下的設備文件,訪問該目錄下某個文件,相當于訪問某個設備,常用的是掛載光驅mount /dev/cdrom /mnt
/etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有
/etc/inittab /etc/fstab /etc/init.d /etc/X11 /etc/sysconfig /etc/xinetd.d /home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下~edu 表示用戶 edu 的家目錄
/lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助
/lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置于此目錄下
/mnt: /media:光盤默認掛載點,通常光盤掛載于 /mnt/cdrom 下,也不一定,可以選擇任意位置進行掛載
/opt:給主機額外安裝軟件所擺放的目錄
/proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,由于數據都存放于內存中,所以不占用磁盤空間,比較重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
/root:系統管理員root的家目錄
/sbin、/usr/sbin、/usr/local/sbin:放置系統管理員使用的可執行命令,如 fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個目錄是給系統管理員 root 使用的命令,一般用戶只能”查看”而不能設置和使用
/tmp:一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下
/srv:服務啟動之后需要訪問的數據目錄,如 www 服務需要訪問的網頁數據存放在 /srv/www 內
/usr:應用程序存放目錄
/usr/bin:存放應用程序 /usr/share:存放共享數據 /usr/lib:存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件 /usr/local:存放軟件升級包 /usr/share/doc:系統說明文件存放目錄 /usr/share/man:程序說明文件存放目錄/var:放置系統執行過程中經常變化的文件
/var/log:隨時更改的日志文件 /var/spool/mail:郵件存放的目錄 /var/run:程序或服務啟動后,其 PID 存放在該目錄下總結
以上是生活随笔為你收集整理的Linux基础 —— 操作系统简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习 —— python库 —— 使
- 下一篇: Linux基础 —— Linux命令简介