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
下一篇 2017-10-05

相關推薦

  • 正則表達式練習題及作業(8.5)

    當天練習題: 基本正則表達式練習題 1.顯示/proc/meminfo文件中以大小s開頭的行;(要求:使用兩種方式)   可有四種方式 [root@CentOS7 ~]# cat /proc/meminfo | grep -E "^(s|S)" SwapCac…

    Linux干貨 2016-08-15
  • 簡單描述LVS工作原理-第1部分

    一、NAT模式(VS-NAT) 原理:就是把客戶端發來的數據包的IP頭的目的地址,在負載均衡器上換成其中一臺RS的IP地址,并發至此RS來處理,RS處理完成后把數據交給經過負載均衡器,負載均衡器再把數據包的原IP地址改為自己的IP,將目的地址改為客戶端IP地址即可?期間,無論是進來的流量,還是出去的流量,都必須經過負載均衡器? 優點:集群中的物理服務器可以使…

    Linux干貨 2016-08-15
  • Varnish基礎進階

    Varnish基礎進階 前言 互聯網早已惠及全人類, 我們可以通過網絡與家人、朋友進行實時通信, 也能通過網絡隨時隨地在各大電商站點上購物, 我們訪問web站點的速度也越來越快, 這背后都是有很多精巧的架構以及各種先進的技術來支撐的, 我們就今天主要聊聊Web的緩存技術, 對于當今的互聯網來說, Cahe Is King, 緩存真的有那么神奇么? 就由我來帶…

    Linux干貨 2016-04-19
  • etc的常見問答

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost tuser1]# cp -r /etc/skel/ /home/tuser1 [root@localhost tuser1]# chmod -R go= /home/tuser1/ [root…

    2017-12-26
  • Linux基礎學習總結(二)

    一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 常用基礎命令:cd、pwd、mkdir、touch 查看:cat,more,less,tail,head,tac 復制:cp 移動:mv 刪除:rm 創建:touch 元數據屬性:stat 查看內容類型:file 二、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及…

    Linux干貨 2016-09-24
  • python知識點

    #ipython的使用## 幫助功能?:Ipython的概述和簡介help(name):查詢指定名稱的幫助obj?:列出obj對象的詳細信息obj??:列出更加詳細信息 ## 特殊變量_ :表示前一次的輸出__:倒數第二次輸出___:倒數第三次輸出_dh:目錄歷史_oh:輸出歷史 ## shell命令!command 執行shell命令!ls -l!touc…

    Linux干貨 2017-10-03
欧美性久久久久