linux操作系統基礎知識

目錄

一、linux的組成

1.1 組成結構

1.2 Shell與Kernel

二、Linux Kernel

2.1 linux kernel作用

2.2 進程管理

2.3 文件系統

2.4 文件分類

2.5 設備驅動與網絡接口

三、linux系統目錄結構


一、linux的組成

1.1 組成結構

參考文章: https://blog.csdn.net/weixin_36282409/article/details/88658576

內核、shell、文件系統和應用程序。內核、shell和文件系統一起形成了基本的操作系統結構,它們使得用戶可以運行程序、管理文件並使用系統。

Linux內核的模塊分爲以下幾個部分:存儲管理、CPU和進程管理、文件系統、設備管理和驅動、網絡通信、系統的初始化和系統調用等。

應用程序是最外層,shell與應用系統進行交互,再向內是內核,也就是kernelkernel與硬件進行交互。

由內而外:硬件資源——內核Kernel——Shell——應用程序

1.2 ShellKernel

Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令並把它送入內核去執行,是一個命令解釋器。另外,shell編程語言具有普通編程語言的很多特點,用這種編程語言編寫的shell程序與其他應用程序具有同樣的效果。

目前主要有下列版本的shell

  • Bourne Shell:是貝爾實驗室開發的。  
  • BASH:是GNUBourne Again Shell,是GNU操作系統上默認的shell,大部分linux的發行套件使用的都是這種shell
  • Korn Shell:是對Bourne SHell的發展,在大部分內容上與Bourne Shell兼容。    
  • C Shell:是SUN公司ShellBSD版本

查看相應shellkernel的版本的方法:

  • 查看內核版本 cat /proc/version
  • 查看shell版本  cat /etc/shells
ww@smartdsp3:~$ cat /proc/version
Linux version 4.15.0-72-generic (buildd@lcy01-amd64-023) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)) #81~16.04.1-Ubuntu SMP Tue Nov 26 16:34:21 UTC 2019
ww@smartdsp3:~$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen

二、Linux Kernel

參考: https://blog.csdn.net/kai_zone/article/details/80444872

https://baike.baidu.com/item/Linux%E5%86%85%E6%A0%B8/10142820?fr=aladdin

2.1 linux kernel作用

內核是操作系統的核心,具有很多最基本功能,決定着系統的性能和穩定性。它負責:

  • 管理系統的進程
  • 內存
  • 設備驅動程序
  • 文件和網絡系統

2.2 進程管理

https://www.cnblogs.com/wsxcode/p/9572872.html

進程實際是某特定應用程序的一個運行實體。在 Linux  系統中,能夠同時運行多個進程,Linux  通過在短的時間間隔內輪流運行這些進程而實現多任務。這一短的時間間隔稱爲時間片,讓進程輪流運行的方法稱爲進程調度,完成調度的程序稱爲調度程序。

內核通過 SCI 提供了一個應用程序編程接口(API)來創建一個新進程(forkexec Portable Operating System Interface [POS] 函數),停止進程(killexit),並在它們之間進行通信和同步(signal 或者 POS 機制)。

2.3 文件系統

  DOS 等操作系統不同,Linux 操作系統中單獨的文件系統並不是由驅動器號或驅動器名稱(如 A:  C:  等)來標識的。相反,和 UNIX  操作系統一樣,Linux 操作系統將獨立的文件系統組合成了一個層次化的樹形結構,並且由一個單獨的實體代表這一文件系統。Linux  將新的文件系統通過一個稱爲“掛裝”或“掛上”的操作將其掛裝到某個目錄上,從而讓不同的文件系統結合成爲一個整體。Linux  操作系統的一個重要特點是它支持許多不同類型的文件系統。Linux 中最普遍使用的文件系統是 Ext2,它也是 Linux  土生土長的文件系統。但 Linux  也能夠支持 FATVFATFAT32MINIX 等不同類型的文件系統,從而可以方便地和其它操作系統交換數據。由於 Linux  支持許多不同的文件系統,並且將它們組織成了一個統一的虛擬文件系統.

       虛擬文件系統(VirtualFileSystem,VFS:隱藏了各種硬件的具體細節,把文件系統操作和不同文件系統的具體實現細節分離了開來,爲所有的設備提供了統一的接口,VFS提供了多達數十種不同的文件系統。虛擬文件系統可以分爲邏輯文件系統和設備驅動程序。邏輯文件系統指Linux所支持的文件系統,如ext2,fat等,設備驅動程序指爲每一種硬件控制器所編寫的設備驅動程序模塊。

VFS 上面,是對諸如 opencloseread write 之類的函數的一個通用 API 抽象。在 VFS 下面是文件系統抽象,它定義了上層函數的實現方式。它們是給定文件系統(超過 50 個)的插件。文件系統的源代碼可以在 ./linux/fs 中找到。

2.4 文件分類

1) 普通文件:C語言元代碼、SHELL腳本、二進制的可執行文件等。分爲純文本和二進制。

2) 目錄文件:目錄,存儲文件的唯一地方。

3) 鏈接文件:指向同一個文件或目錄的的文件。

4)  設備文件:與系統外設相關的,通常在/dev下面。分爲塊設備和字符設備。注意,設備在linux中是以文件形式存在的。在Linux中訪問設備的方式和訪問文件的方式是相同的。

5管道(FIFO)文件 :  提供進程建通信的一種方式 https://blog.csdn.net/hyklose/article/details/80419450

 

6套接字(socket) 文件 該文件類型與網絡通信有關

2.5 設備驅動與網絡接口

設備驅動程序是 Linux  內核的主要部分。和操作系統的其它部分類似,設備驅動程序運行在高特權級的處理器環境中,從而可以直接對硬件進行操作。

衆所周知,TCP/IP  協議是 Internet  的標準協議,同時也是事實上的工業標準。Linux  的網絡實現支持 BSD 套接字,支持全部的TCP/IP協議。Linux內核的網絡部分由BSD套接字、網絡協議層和網絡設備驅動程序組成。網絡設備驅動程序負責與硬件設備通訊,每一種可能的硬件設備都有相應的設備驅動程序。

三、linux系統目錄結構

https://www.runoob.com/linux/linux-system-contents.html

https://www.runoob.com/wp-content/uploads/2014/06/003vPl7Rty6E8kZRlAEdc690.jpg

/binbinary的縮寫,可執行二進制文件(ls,cat,mkdir等),常用命令

/boot:啓動linux的核心文件,包括一些連接文件以及鏡像文件,存放用於系統引導時使用的各種文件

/dev devDevice(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。

/home:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。

/lost+found:這個目錄一般情況下是空的,當系統非法關機後,這裏就存放了一些文件(例如windows下叫什麼.chk)。類似於回收站,但不是回收站

/etc:etcetera,存放一些系統管理所需要的配置文件和子目錄,例如/etc/passwd https://blog.csdn.net/blueair_ren/article/details/79937599

/lib:這個目錄裏存放着系統最基本的動態連接共享庫,其作用類似於Windows裏的DLL文件。幾乎所有的應用程序都需要用到這些共享庫。

/var:用於存放運行時需要改變數據的文件,也是某些大文件的溢出區,比方說各種服務的日誌文件(系統啓動日誌等。)等。這個目錄中存放着在不斷擴充着的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。

/usr 這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似於windows下的program files目錄。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章