Linux 網絡編程(一)--Linux操做系統概述

1、Linux的內核版本

Linux內核的編號採用以下編號形式:網絡

   主版本號.此版本號.主補丁號.次補丁號架構

例如:2.6.26.3函數

第一個數字」2」是主版本號,表示第2大版本。oop

第二個數字」6」是此版本號,表示是Linux內核大版本的第6個小版本,同時由於6是偶數表示爲發佈版本,(若爲奇數,表示測試版)。測試

  第三個數字「26」是主版本補丁號,表示指定小版本的第26個補丁包。spa

  第四個數字「3」是此版本補丁包,表示次補丁號的第3個小補丁。操作系統

2、Linux的系統架構

Linux系統從應用角度來看,分爲內核空間和用戶空間兩個部分。其中,內核主要由進程調度、內存管理、虛擬文件系統、網絡接口和進程間通訊5個子系統組成。日誌

1.進程調度SCHED接口

進程調度指的是系統對進程的多種狀態之間轉換的策略。Linux下的進程調度有3種策略:SCHED_OTHER、SCHED_FIFO和SCHED_RR。隊列

SEHED_OTHER是用於針對普通進程的時間片輪轉調度策略。這種策略中,系統給全部的運行狀態的進程分配時間片,在當前進程的時間片用完以後,系統從進程中優先級最高的進程中選擇進程運行。

SEHED_FIFO是針對運行的實時性要求比較高、運行時間比較長的進程調度策略。這種策略中,系統按照進入隊列的前後進行進程的調度,在沒有更高優先級進程到來或者當前進程沒有由於等待資源而阻塞的狀況下,會一直運行。

SCHED_RR是針對實時性要求比較高、運行時間比較長的進程調度策略。這種策略與SCHED_OTHER的策略相似,只不過SCHED_RR進程的優先級要高得多,系統分配給SCHED_RR進程時間片,而後輪詢運行這些進程,將時間片用完的進程放入隊列的末尾。

因爲存在多種調度方式,Linux進程調度採用的時「有條件剝奪」的調度方式。普通進程中採用的是SCHED_OTHER的時間片輪詢方式,實時進程能夠剝奪普通進程。若是普通進程在用戶空間運行,則普通進程當即中止運行,將資源讓給實時進程;若是普通進程運行在內核空間,須要等系統調用返回用戶空間方可剝奪資源。

2.內存管理MMU

內存管理是多個進程見得內存共享策略。在Linux系統中,內存管理的主要概念是虛擬內存。虛擬內存可讓進程擁有比實際物理內存更大的內存,能夠是實際內存的不少倍。每一個進程的虛擬內存有不一樣的地址空間,多個進程的虛擬內存不會衝突。

虛擬內存的分配策略是每一個進程均可以公平地使用虛擬內存。虛擬內存的大小一般設置爲物理內存的兩倍。

3.虛擬文件系統VFS

在Linux下支持多種文件系統,如ext、ext二、minix、umsdos、msdos、vfat 、ntfs、proc、smb、ncp、iso9660、sysv、hpfs、affs等。目前Linux下最經常使用的文件格式是ext2和ext3。ext2文件系統用於固定文件系統和可活動文件系統,是ext文件系統的擴展。ext3文件系統是在ext2上增長日誌功能後的擴展。它兼容ext2文件系統,兩種文件系統之間能夠互相轉換,ext2不用格式化就能夠轉換爲ext3文件系統,而ext3文件系統轉換爲ext2文件系統也不會丟失數據。

4.網絡接口

Linux支持多種網絡接口和協議。網絡接口分爲網絡協議和驅動程序,網絡協議是一種網絡傳輸的通訊標準,而你網絡驅動則是硬件設備的驅動程序。Linux支持的網絡設備多種多樣,幾乎目前全部網絡設備都有驅動程序。

5.進程間通訊

Linux下的進程間通訊方式主要有管道方式,信號方式,消息隊列方式,共享內存方式和套接字等方法。

3、Linux的文件結構

Linux是將整個文件系統表示成樹狀的結構,Linux系統每增長一個文件系統都會將其加入到這個樹中。操做系統文件結構的開始,只有一個單獨的頂級目錄結構,叫作根目錄。全部一切都從「根」開始,用「/」表明,而且延伸到子目錄。

下面是Linux一些經常使用目錄的做用:

「/etc」:包括絕大多數Linux系統引導所須要的配置文件,系統引導時讀取配置文件,按照配置文件的選項進行不一樣狀況的啓動。

「/lib」:包含C編譯程序須要的函數庫,是一組二進制文件。例如:glibc。

「/var」:包含系統定義表,以便在系統運行改變時能夠只備份該目錄,如cache。

「/tmp」:存放臨時性的存儲。

「/bin」:大多數命令存放在這裏。

「/home」:主要存放用戶帳戶,而且能夠支持ftp的用戶管理。系統管理員智能機用戶是,系統在home目錄下建立於用戶同名的目錄,此目錄下通常默認有Desktop目錄。

「/dev」:存放一種設備文件的特殊文件,如fd0,had等。

「/mnt」:在Linux系統中,它是專門給外掛的文件系統使用的,裏面有兩個文件cdrom、floopy,登陸光驅、軟驅是會用到。

「/usr」:包括全部其它內容,如src、local。Linux的內核就在/usr/src中。其下有子目錄/bin,存放全部安裝語言的命令,如gcc,perl等。

注:在DOS/Windows下使用的是反斜槓「\」,而在Linux下使用的是斜槓「/」,注意區別。

相關文章
相關標籤/搜索