linux雜談(1)

1. Linux:僅僅是一個內核,不包含其他應用程序。

GNU/Linux:通常以源碼方式提供,包含提供的開源應用程序,這樣給使用者使用方式的更多的選擇,區別於windows,我們將windows系統安裝在裸機上,幾乎所有功能接口都是被鎖定的,但是Linux與之相反。

2. Linux發行版本:

  • Debian:
    衍生版:Ubuntu,Knopix
  • Slackware:
    衍生版:S.u.S.E
  • RedHat:
    衍生版:Fedora,CentOS

常見CPU架構:

  • X86:見得最多的intel體系
  • X64:一般指AMD64,當然intel也有
  • m68000,m68k
  • arm:主要用於移動設備
  • ultrasparc
  • power
  • MIPS
  • alpha:惠普,hp-unix

3. Posix 標準:

原因:由於存在不同的CPU體系架構,而且不同的CPU提供不同的彙編器,不同彙編器翻譯出來的二進制碼存在差異,A CPU可能編譯翻譯出來的指令不能運行在B CPU,跨CPU、移植太過於難,因爲沒有統一的標準。
Posix標準就是將操作系統的API統一起來。

舉個反例:對於常見進程linux下是fork函數,windows下是creatprocess函數。在linux下寫一個程序,用到fork函數,那麼這個程序該怎麼往windows上移植?需要把源代碼裏的fork通通改成creatprocess,然後重新編譯…

編譯完成後生成的指令只能在某一種平臺編譯,編譯完成以後肯定就不能在其他平臺運行,交叉編譯指A平臺編譯生成B平臺可以執行指令,但是一般不能在A平臺執行;

4. ABI:程序運行時的二進制接口名,當然是二進制的,二進制時的接口名稱。所以判斷一個程序能不能跨平臺跑,可以先判斷編譯以後ABI是否一樣。
API:程序接口,可以簡單理解爲函數名稱;

Unix類的系統:

需要澄清的是Unix和Linux是兩個不同的系統,可以理解爲都遵循Posix標準的兩個操作系統。
編譯後的ABI和編譯前源碼API的接口都可以兼容,也就是說在Unix編譯的程序在Linux上也可以運行,跨操作系統運行。

5.開源協定:

  1. GPL->LGPL->GPLv2->GPLv3
  2. BSD
  3. Apache
  4. 雙線授權:免費開源版本(社區版),商業授權版本(企業版,提供服務,功能強大)

6.程序管理:

  1. 程序的組成部分:
    1.二進制程序
    2.配置文件
    3.庫文件:程序中調用到的庫
    4.幫助文件:使用說明

  2. 程序包管理器及作用:
    將程序的組成文件打包成一個或者有限的幾個文件,安裝,卸載,查詢方便;
    常見管理程序:
    Debian:dpkg apt apt-get
    RedHat:rpm yum dnf(yum升級版)
    S.u.S.E:rpm zypper
    LFS:Linux From Scratch

7.操作系統虛擬技術:將有限的計算機資源切割開成多個分配出來(如CPU,內存等),每個被分配的是獨立的,讓使用者感覺到自己是獨佔計算機資源的。
在這裏插入圖片描述
常見的虛擬機軟件:
VMware Workstation ,virtualbox

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