2017-10-4Linux基礎知識(3)

在上一章中講到了操作系統的歷史的發展以及Linux的如何誕生,在1991年的8月份,創始人Linus宣布成立Linux的,Larry Wall開發diff和patch打補丁的命令程序使得Linux可以在安全性方面有很大的提升。

一、完整的OS

所謂完整的OS無非指的就是Kernel+Application這兩項的結合,而狹義上的OS僅僅指的是Kernel,Linux其實就是個內核,它的功能就是將硬件的復雜性和差異性給隱藏起來,通過內核輸出為一個簡潔而又統一的接口,我們稱之為系統調用,但內核又太過于底層,使得程序開發周期會很長,所以在系統調用的接口上面又封裝了一個庫函數,離人又更近了一步,使得程序可以快速的開發而且易于維護。
開發的程序的門派有那么一下兩類:一種是大教堂式,我個人理解為集中式開發,另一種是集市,個人理解就是有著不同的應用程序,可以任意的定制或修改,而前者是已經定制完成且不可修改,我們開發程序時,必然會用到與計算機所聯系的程序接口,這種與計算機交互的接口我們叫做Shell接口,它分為兩大類:一個GUI,另一個是CLI。

OS的兩類接口:
    GUI: Graphic User Interface
        GNome: c, qtk
        KDE: C++, Qt
    CLI: Command Line Interface
        bash
        zsh
        sh
        csh
        tcsh
        ksh

二、操作系統的功能

操作系統是一個通用的軟件,對硬件進行一個資源的整合與利用同時對硬件進行監控,對于程序的運行提供了一個可靠的平臺,使得開發不用面向復雜的硬件,對統一而又簡潔的接口進行開發,那么操作系統的功能大致分為以下幾種:

    驅動程序
    進程管理
    安全相關
    網絡功能
    文件系統
    內存管理
    ... ...

之前我們講過系統調用和庫調用,那么操作系統是一個通用的軟件,即使我在Linux寫的程序源碼在Windows上也是可以兼容編譯之后是可以運行的,這個我們就叫做API接口,它是程序員面對的編程接口,程序接口兼容的話,在Linux上寫的源碼程序可以在Windows進行編譯,遵從POSIX(可移植操作系統)

? 系統調用:(System Call)將底層的復雜差異化硬件接口封裝起來,向上提供一個簡潔而又統一的接口。
    庫調用:(Libraies)是將系統調用的簡潔接口在此之上封裝為更復雜的接口,離人又更近了一步。

那么我們程序編譯完成之后就會生成二進制可執行文件,它是程序應用者所面對運行的接口,我們稱之為ABI接口,這種接口是在不同的操作系統之間是不能運行的,因為Windows的可執行格式為.exe,Linux的可執行格式為.elf,我們可以用file命令查看某個命令的可執行格式。

# file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3d705971a4c4544545cb78fd890d27bf792af6d4, stripped

三、Linux與發行版之間的關系

我們現在都知道Linux本身就一個內核,除此之外,其它的應用程序都是GNU協議所開源的應用程序運行在該內核之上,這些應用程序提供的都是源代碼,我們都知道要想在電腦上用應用程序,必須要編譯成為二進制格式才能運行,好處就是靈活性和自由性很強,舉個例子:我給你個面粉,你可以做任何面食都行,但缺點就是不易用,所以對于很多人來說,但凡編譯中出錯,解決這些問題需要很長的時間,為了解決這些問題,這些發行版就提供了已經編譯好的,能夠直接在電腦上安裝的發行版安裝程序供你使用,而且發行版有數百種之多,有的發行版曇花一現,有的經久不衰一直進行著。
主要的三大版本有:Debian、Slackware、RedHat,這三個發行版是主要的支點,在它們的支點上有很多我們所熟悉的分支,比如說Debian發行版上的分支有:Ubuntumint等,這個操作系統對于入門級別來說上手很難,但上手了會覺得很好用,是黑客最喜歡的一個操作系統,它是社區級別,任意免費下載,Slackware這個支點是有點特殊,它的前身是sls,不過sls也是曇花一現,但Slackware保留了下來,并且有許多的分支,最熟知的是S.u.S.EOpenSUSE等,RedHat是一個商業公司,提供的系統是免費的,不過后續的服務是要收費的,比如打補丁或者升級軟件等,不過雖然收費,但是源代碼根據開源協議是要開放的,所以有個社區組織就把RedHat的源代碼進行二次編譯,也將把收費的服務變的免費起來,這個分支就是CentOS,不過,CentOS也被RedHat收購了。另一個分支就是Fedora,用的是最新的技術,每6個月更新一次,專注于做圖形化設計等,是RedHat 9之后的技術轉讓,在此之后,RedHat就開發企業版,也就是我們稱之為RHEL,通常是18個月更新一次,甚至更久。
軟件的程序發布也是有格式的,比如:2.6-568.el6

? major.minor.release
   2.6-568
   主版本號.詞版本號-修正的版本號.發行平臺

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87648

(0)
劉 祥宇劉 祥宇
上一篇 2017-10-03 12:36
下一篇 2017-10-05 19:04

相關推薦

  • 第一周-N28

    1、描述計算機的組成及功能 我們現在常用的計算機,包括手機及智能設備,通常由五大部件組成(馮若依曼提出),如下圖所示: 五大部件: 運算器:做算數運算(加減乘除取余)和邏輯運算(移位) 控制器:控制各部分協調的功能。 CPU包括以下四個部分:運算器、控制器、寄存器、緩存 I/O設備:即輸入輸出設備,用于跟外部交互。通常為磁盤、鍵盤、鼠標、顯示器、打印機等。I…

    2017-12-04
  • CentOS 6開機啟動流程理論篇

    CentOS 6開機啟動流程理論篇 centos 系統的啟動流程 grub 破壞Linux的核心文件再修復體驗系統啟動流程 概述 任 何系統啟動的第一步必然是加電,然后計算機硬件會主動地讀取BIOS來加載硬件設備信息并檢測,之后系統會主動地讀取第一個有引導程序的設備,該引導程序 (grub)可以指定使用哪個內核來啟動,并將其加載至內存當中運行,同時內核還要加…

    Linux干貨 2016-09-19
  • 小工具(維基百科)

     維基百科  方法:復制C:\Windows\System32\drivers\etc到我的電腦地址欄               打開hosts,選擇文本文檔方式打開              19…

    Linux干貨 2017-07-10
  • Http實踐

    練習:搭建虛擬主機     (1)基于主機名實現三個虛擬主機     (2) 每虛擬主機使用獨立的訪問日志和錯誤日志     (3) 第三個虛擬主機的/admin要進行用戶訪問認證     (4) 在…

    Linux干貨 2016-09-30
  • 文本處理工具-awk

    文本處理工具awk awk的名字由來:創始人Aho, Weinberger, Kernighan三人的首字母 有多種版本:New awk(nawk),GNU awk(gawk)  一.gawk   模式掃描和處理語言   基本用法: awk [options] ‘program’ var=value…

    Linux干貨 2016-11-29
  • 進程管理

    一、進程概述 1、進程的概念        用戶通過執行命令,將程序提起到內存中運行,運行中的程序即稱為進程。內核為了方便管理,根據內核發起者的權限、屬性等參數,為每個進程設置一個獨立的PID號,通過PID號來判斷進程的權限。 2、進程的分類:    &nbs…

    Linux干貨 2016-09-07
欧美性久久久久