Linux基礎(chǔ)概念

1.大教堂與集市:

代表了兩種不同的開發(fā)模式:絕大多數(shù)商業(yè)公司所采用的是大教堂模式,而Linux世界所采用的是集市模式。

2.OS的接口有兩類:

GUI:Graphic User Interface
    GNome:c, gtk
    KDE: c++, qt
CLI:Command Line Interface
    bash
    zsh
    sh
    csh
    tcsh
    ksh

3.API和ABI

API:顧名思義,是編程的接口,換句話說也就是你編寫“應(yīng)用程序”時候調(diào)用的函數(shù)之類的東西。對于內(nèi)核來說,它的“應(yīng)用程序”有兩種:一種是在它之上的,用戶空間的真正的應(yīng)用程序,內(nèi)核給它們提供的是系統(tǒng)調(diào)用這種接口,比如 read(2),write(2);另一種就是內(nèi)核模塊了,它們和內(nèi)核處于同一層,內(nèi)核給它們提供的是導(dǎo)出的內(nèi)核函數(shù),比如 kmalloc(),printk()。這些接口都是你可以在編寫程序的時候直接看到的,可以直接拿來用的。

ABI:應(yīng)用程序二進制接口(ABI-Application Binary Interface)定義了一組在PowerPC系統(tǒng)軟件上編譯應(yīng)用程序所需要遵循的一套規(guī)則。主要包括基本數(shù)據(jù)類型,通用寄存器的使用,參數(shù)的傳遞規(guī)則,以及堆棧的使用等等。ABI 是另一種形式的接口,二進制接口。除非你直接使用匯編語言,這種接口一般是不能直接拿來用的。比如,內(nèi)核系統(tǒng)調(diào)用用哪些寄存器或者干脆用堆棧來傳遞參數(shù),返回值又是通過哪個寄存器傳遞回去,內(nèi)核里面定義的某個結(jié)構(gòu)體的某個字段偏移是多少等等,這些都是二進制層面上的接口。這些接口是直接給編譯好的二進制用的。換句話說,如果 ABI 保持穩(wěn)定的話,你在之前版本上編譯好的二進制應(yīng)用程序、內(nèi)核模塊,完全可以無須重新編譯直接在新版本上運行。

4.常見開源協(xié)定

BSD協(xié)議:BSD 代碼鼓勵代碼共享,但需要尊重代碼作者的著作權(quán)。BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開發(fā)商業(yè)軟件發(fā)布和銷售,因此是對商業(yè)集成很友好的協(xié)議。而很多的公司企業(yè)在選用開源產(chǎn)品的時候都首選BSD協(xié)議,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者二次開發(fā)。
Apache Licence 2.0(Apache-2.0):介紹略
GPL:GPL協(xié)議的主要內(nèi)容是只要在一個軟件中使用(“使用”指類庫引用,修改后的代碼或者衍生代碼)GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開源和免費。這就是所謂的”傳染性”。
LGPL:略
MIT:略
MPL (Mozilla Public License 1.1):略
EPL (Eclipse Public License 1.0):EPL允許Recipients任意使用、復(fù)制、分發(fā)、傳播、展示、修改以及改后閉源的二次商業(yè)發(fā)布。 
20180328173536914.png

5.鏡像站點

http://mirrors.aliyun.com
http://mirrors.163.com
http://mirrors.sohu.com

6.LINUX的終端

物理終端,控制臺:console
虛擬終端:6個,tty
    Ctrl+Alt+F[1-6]
圖形終端:
    CentOS 6:
        Ctrl+Alt+F7
    CentOS 7:
        在哪個虛擬終端啟動,即位于哪個虛擬終端;
串行終端:ttyS
偽終端:pty
硬件設(shè)備也通過文件表示;
    物理終端:/dev/console
    虛擬終端:/dev/tty# [1,6]
    串行終端:/dev/ttyS#
    偽終端:/dev/pts/#
    注意:在啟動設(shè)備之后,在其上關(guān)聯(lián)一個用戶接口程序,即可實現(xiàn)與用戶交互;
    查看終端設(shè)備:
        ~]# tty
    查看接口程序:
        ~]# echo $SHELL
    啟動GUI:
        在某一虛擬終端接口運行命令:startx

7.LINUX哲學(xué)思想

    1、一切皆文件:
        把幾乎所有資源統(tǒng)統(tǒng)抽象為文件形式;包括硬件設(shè)備,甚至通信接口等;
            open(), read(), write(), close(), delete(), create()
    2、  由眾多功能單一的程序組成;一個程序只做一件事,并且做好;
        組合小程序完成復(fù)雜任務(wù);
    3、盡量避免跟用戶交互;
        目標(biāo):易于以編程的方式實現(xiàn)自動化任務(wù);
    4、使用文本文件保存配置信息;

8.文件系統(tǒng)

        文件系統(tǒng)像一個倒置樹狀結(jié)構(gòu);
            /: 原初起點;

            /dev/pts/2:
                最左側(cè)/: 表示根目錄
                其它的/: 表示路徑分隔符
                    Linux的路徑分隔符是/
                    Windows的是\

        文件的路徑表示:
            絕對路徑:從根開始表示出的路徑 
            相對路徑:從當(dāng)前位置開始表示出的路徑

        文件名使用法則:
            嚴(yán)格區(qū)分字符大小寫:file1, File1, FILE1
            目錄也是文件,在同一路徑下,兩個文件不能同名;
            支持使用除/以外的任意字符;
            最長不能超過255個字符;

        用戶有家目錄:home,
            用戶的起始目錄;普通用戶管理文件的位置;
        工作目錄:
            當(dāng)前所在的目錄,如果命令沒有額外指定路徑,則默認(rèn)為當(dāng)前工作目錄

            /etc/sysconfig/network-scripts/ifcfg-eno16777736
                basename:最右側(cè)的文件或目錄名;
                dirname:basename左側(cè)的路徑;
            命令:
                ~]# basename /PATH/TO/SOMEFILE
                    SOMEFILE
                ~]# dirname /PATH/TO/SOMEFILE
                    /PATH/TO

8.COMMAND

命令的語法通用格式:
# COMMAND OPTIONS ARGUMENTS

COMMAND: 
    發(fā)起一命令:請求內(nèi)核將某個二進制程序運行為一個進程;
        程序 --> 進程
        靜態(tài) --> 動態(tài)(有生命周期)

    命令本身是一個可執(zhí)行的程序文件:二進制格式的文件,有可能會調(diào)用共享庫文件;
        多數(shù)系統(tǒng)程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
            普通命令:/bin, /usr/bin, /usr/local/bin
            管理命令:/sbin, /usr/sbin, /usr/local/sbin
        共享庫:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
            32bits的庫:/lib, /usr/lib, /usr/local/lib
            64bits的庫:/lib64, /usr/lib64, /usr/local/lib64

        注意:并非所有的命令都有一個在某目錄與之對應(yīng)的可執(zhí)行程序文件

        命令必須遵循特定格式規(guī)范:exe, msi, ELF(Linux)
            ~]# file /bin/ls

        命令分為兩類:
            由shell程序的自帶的命令:內(nèi)置命令(builtin)
            獨立的可執(zhí)行程序文件,文件名即命令名:外部命令

OPTIONS:
    指定命令的運行特性;
    選項有兩種表現(xiàn)形式:
        短選項:-C, 例如-l, -d
            注意:有些命令的選項沒有-;
            如果同一命令同時使用多個短選項,多數(shù)可合并:-l -d = -ld
        長選項:--word, 例如--help, --human-readable
            注意:長選項不能合并;

        注意:有些選項可以帶參數(shù),此稱為選項參數(shù);

ARGUMENTS:
    命令的作用對象;命令對什么生效;
    注意:不同的命令的參數(shù);有些命令可同時帶多個參數(shù),多個之間以空白字符分隔;
    例如:ls -ld /var /etc 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在學(xué)習(xí)Linux前大家先要對計算機有相應(yīng)了解,計算機系統(tǒng),計算機硬件構(gòu)成,操作系統(tǒng),Linux相關(guān)介紹,獲取Li...
    不知歲月惜閱讀 786評論 0 2
  • linux的哲學(xué)思想 一切皆文件;把幾乎所有資源,包括硬件設(shè)備都組織為文件格式 由眾多單一目的小程序組成:一個程序...
    知且行閱讀 315評論 0 0
  • http://www.itdecent.cn/p/341bc031ea2b 書:The linux comman...
    ZzGo12閱讀 741評論 0 0
  • feisky云計算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,268評論 0 5
  • 才不是什么有文筆的才子… 就是突如其來的念頭 那時些許清醒的大腦理清的胡思亂想 自己,已經(jīng)是個十九歲的少年了。在...
    白灼喔閱讀 353評論 0 1

友情鏈接更多精彩內(nèi)容