1. 程式人生 > >Linux入門:Linux歷史介紹

Linux入門:Linux歷史介紹

通過本篇文章,讀者可以瞭解Linux和Unix的基本概念、歷史、發展情況;

首先,我們通過簡單的介紹Unix和Linux,讀者可以對其進行比較不同之處,瞭解Linux的出現為何非常好,Linux的相關背景;

前言(1):作業系統介紹

核心負責控制硬體資源分配,而如果只有核心,則只能讓計算機硬體執行,而不能有任何功能,因此需要系統呼叫提供給開發者使用,從而開發應用程式;

核心能夠控制硬體,比如:讓CPU可以運算、讓硬碟可以讀寫資料等;只有核心的話,只能讓計算機執行,但是我們不能控制計算機;

而系統呼叫是作業系統提供給開發者的呼叫介面;

任何硬體都不會預設就被作業系統控制,而需要開發商根據作業系統提供的介面開發驅動程式,只有安裝了驅動程式才能夠控制硬體裝置;

前言(2):Unix簡單介紹

Unix一開始是開源的,後來AT&T收回版權,並且不公開原始碼

Unix的程式碼是由90%的C語言和10%的彙編組成;

Unix後來的兩大分支:AT&T的System V和BSD(此處我們在下面Linux的發展史上會講到);

一、Linux介紹

1.Linux簡單介紹

Linux核心理念:萬物皆目錄

Linux:是一個核心,而不是一個作業系統;因此我們平常說的“作業系統用的是Windows、Mac還是Linux啊?”是錯誤的,Ubuntu、Fedora等才是作業系統的名字,他們都使用Linux核心;

1991年最初由Linus Torvalds針對386(個人計算機)開發;Linus Torvalds那時是芬蘭的一名研究生;

Unix Like:很像Unix的作業系統;

蘋果電腦為什麼現在能裝Windows作業系統?因為蘋果使用了Intel的X86架構,而windows也是針對此架構的,因此按理論來說一般的PC上也可以安裝mac作業系統;

Linux的吉祥物是企鵝(英文名:Tux),因為Torvalds在小時候被企鵝咬過,因此印象非常深刻;


Unix和Linux的程式碼是由90%的C語言和10%的彙編組成,因此只需要稍加修改,就能移植到其他硬體上;

2.Linux的優缺點

Linux的優點

1.開放的學習環境;

2.漏洞快速修補;

3.因為核心只有幾百k,因此適合嵌入式系統;

Linux的缺點

1.有些專業軟體沒有Linux版本;

3.Linux發展史

Unix是用90%的C語言和10%組合語言混合編寫的,因此對於硬體平臺的移植時還是需要更改程式碼,因此各個公司都推出了針對自家機型的Unix系統;

到了AT&T System V第七版時,終於推出了針對X86的Unix,因此終於能夠在個人計算機上安裝Unix,但是有一條規定:“不能向學生公開原始碼”,因此Tanebaum教授就不看Unix原始碼,編寫了相容Unix的針對X86的Minix作業系統;

因為Minix只是教學使用,因此功能並不強,因此Torvalds利用GNU的bash當做開發環境,gcc當做編譯工具,編寫了Linux核心-v0.02,但是一開始Linux並不能相容Unix,即Unix上跑的應用程式不能在Linux上跑,即應用程式與核心之間的介面不一致,因為Unix是遵循POSIX規範的,因此Torvalds修改了Linux,並遵循POSIX(Portable Operating System Interface,他規範了應用程式與核心的介面規範);

一開始Linux只適用於386,後來經過全世界的網友的幫助,最終能夠相容多種硬體;

4.Linux核心版本號介紹

命令:uname -r 

3.2.0-23

主版本.次版本.釋放版本-修改版本

Linux的核心版本分為穩定版本和開發版本;

此版本如果是偶數,則為穩定版本,如果是奇數,則為開發版本,核心開發人員使用;

釋放版本為對次版本的改動,即加入一些功能;

修改版本為編譯的次數,每次加一;

二、Linux歷史

20世紀60年代,MIT開發分時作業系統(Compatible TIme-Sharing System),支援30臺終端訪問主機;

    ~主機負責運算,而終端負責輸入輸出;

1965年,Bell實驗室、MIT、GE(通用電氣公司)準備開發Multics系統,為了同時支援300個終端訪問主機,但是1969年失敗了;

    ~剛開始並沒有滑鼠、鍵盤,輸入裝置只有卡片機,因此如果要測試某個程式,則需要將讀卡紙插入卡片機,如果有錯誤,還需要重新來過;

    ~Multics:Multiplexed Information and Computing Service

1969年,Ken Thompson(C語言之父)利用匯編語言開發了FIle Server System(Unics,即Unix的原型)

    ~因為組合語言對於硬體的依賴性,因此只能針對特定硬體;

    ~只是為了移植一款“太空旅遊”的遊戲;

1973年,Dennis Ritchie和Ken Thompson發明了C語言,而後寫出了Unix的核心

    ~將B語言改成C語言,由此產生了C語言之父;

    ~90%的程式碼是C語言寫的,10%的程式碼用匯編寫的,因此移植時只要修改那10%的程式碼即可;

1977年,Berkeley大學的Bill Joy針對他的機器修改Unix原始碼,稱為BSD(Berkeley Software Distribution)

  Bill Joy是Sun公司的創始人;

1979年,Unix釋出System V,用於個人計算機;

1984年,因為Unix規定:“不能對學生提供原始碼”,Tanenbaum老師自己編寫兼容於Unix的Minix,用於教學;

1984年,Stallman開始GNU(GNU's Not Unix)專案,創辦FSF(Free Software Foundation)基金會;

  產品:GCC、Emacs、Bash Shell、GLIBC;

  倡導“自由軟體”;

  GNU的軟體缺乏一個開放的平臺執行,只能在Unix上執行;

  自由軟體指使用者可以對軟體做任何修改,甚至再發行,但是始終要掛著GPL的版權;

  自由軟體是可以賣的,但是不能只賣軟體,而是賣服務、手冊等;

1988年,MIT為了開發GUI,成立了XFree86的組織; 

1991年,芬蘭赫爾辛基大學的研究生Linus Torvalds基於gcc、bash開發了針對386機器的Lniux核心; 

1994年,Torvalds釋出Linux-v1.0;

1996年,Torvalds釋出Linux-v2.0,確定了Linux的吉祥物:企鵝; 

三、Linux重要人物

1.Ken Thompson:C語言之父和Unix之父

2.Dennis Ritchie:C語言之父和Unix之父;

3.Stallman:著名黑客,GNU創始人,開發了Emacs、gcc、bash shell;

4.Bill Joy:BSD開發者;

5.Tanenbaum:Minix開發者;

6.Linus Torvalds:Linux之父,芬蘭赫爾辛基大學;

Tips:基本術語

(1)Linux Distribution

Linux Distribution:Kernel+Softwares+Tools組成的可安裝的系統;Ubuntu、Fedora、SUSE、Redhat都是Linux Distribution;

Linux Distribution按照安裝軟體的方式分為:RPM包和dpkg安裝;

Linux Distribution按照發布版分為:團隊版(適用於個人計算機)和商業版(適用於伺服器);

(2)Unix Like

很像Unix的作業系統;

(3)授權模式

1.Open Source:開放原始碼;

2.Close Source:沒有原始碼;

        Freeware:免費但不開源;

        Shareware:一開始免費試用,經過一段時間後收費;

(4)POSIX規範

POSIX是對應用程式和系統呼叫之間的介面的規範;

(5)SELinux

Security Enhanced Linux:美國國家安全域性開發,控制Linux的系統檔案的訪問許可權;

(6)KDump功能

當核心出現錯誤時,會將當時記憶體的訊息寫入檔案中,以便核心開發者檢視;


相關推薦

Linux入門Linux歷史介紹

通過本篇文章,讀者可以瞭解Linux和Unix的基本概念、歷史、發展情況; 首先,我們通過簡單的介紹Unix和Linux,讀者可以對其進行比較不同之處,瞭解Linux的出現為何非常好,Linux的相關背景; 前言(1):作業系統介紹 核心負責控制硬體資源分配,而如果只有

Linux命令touch命令介紹

介紹 touch命令有兩個功能:一是用於把已存在檔案的時間標籤更新為系統當前的時間(預設方式),它們的資料將原封不動地保留下來;二是用來建立新的空檔案; touch語法:touch(選項)(引數) 選項 -a:或--time=atime或--time=access或--time=

Linux高手入門Linux五種I/O模型

Linux:一切皆檔案 Linux將所有外部裝置都看做檔案,對檔案的讀寫操作會呼叫核心提供的系統命令,返回一個file descriptor(fd,檔案描述符)。 Linux也把socket當成檔案,稱為socketfd(socket描述符)。 描述符是一個數字,該數字指向核心中的一個結構體(該結構

Linux學習Linux的發展歷史及特點

引用:《鳥哥的Linux私房菜基礎篇第三版》 與Minix之間 Linus Torvalds(託瓦茲, 1969年出生)的外祖父是赫爾辛基大學的統計學家,他的外祖父為了讓自己的小孫子能夠學點東西,所以從小就將託瓦茲帶到身邊來管理一些微計算機。在這個時期,託瓦茲接觸

Linux入門常用命令wget檔案下載

wget是在Linux下開發的開放原始碼的軟體,作者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平臺上。它有以下功能和特點: (1)支援斷點下傳功能;這一點,也是網路螞蟻和FlashGet當年最大的賣點,現在,Wget也可以使用此功

Linux入門常用命令檢視硬碟、分割槽、CPU、記憶體資訊

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++   學習是一

Linux入門uwsgi自動化指令碼

uwsgi預設情況下,啟動之後,只能使用kill進行關閉,為了使uwsgi的啟動關閉和linux中其它服務一樣,可以使用shell指令碼進行配置,指令碼如下: vim testshell/uwsgiC

Linux入門建立守護程序

       守護程序(deamon),也稱精靈程序,是一種執行在後臺的一種特殊的程序,它獨立於控制終端並且週期性的執行某種任務或等待處理某些發生的事件。由於在Linux中,每個系統與使用者進行交流的

Linux入門開機進入文字介面

一、Ubuntu 1.sudo -i 2.vim /etc/default/grub中修改 splash後面加上text,使得 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"    ------>     GRUB_CMDLIN

Linux入門Linux與Windows常見對比

window linux與 簡要概述 目前使用最多的操作系統就是Windows和Linux,而Microsoft Windows操作系統占據了廣大使用者市場的大半江山,Windows如此受廣大用戶的青睞,那還有必要學習Linux操作系統嗎?既然Linux沒有被Windows擠出市場,那足以說明

Linux入門-7 Linux管道、重定向以及文本處理

cas tde blog linux中 err linuxcast 重要 nal new Linux管道、重定向以及文本處理 1 Linux多命令協作:管道及重定向 管道和重定向 2 Linux命令行文本處理工具 文件瀏覽 基於關鍵字搜索-grep 基於列處理文本-

Linux入門-8 Linux系統啟動詳解

傳遞參數 傳遞 sin kernel ima 顯示 root密碼 空格 time 系統啟動流程 BIOS MBR GRUB KERNEL INIT 單用戶修改root密碼 GRUB加密 系統啟動流程 BIOS MBR: Boot Code 執行引導程序 - GRUB

Linux故障linux中使用ifconfig命令查看網卡信息時顯示為eth1,但是在network-scripts中只有ifcfg-eth0的配置文件,並且裏面的NAME="eth0"。

udev 系統 persist restart bsp rule init clear 命令 除了題目中的問題,其實在執行命令:service network restart時,會報錯: 解決辦法: 首先需要修改70-persistent-net.rules文件

Linux程序Linux切換機制主流程

Linux切換並沒有使用X86CPU的切換方法,Linux切換的實質就是cr3切換(記憶體空間切換,在switch_mm函式中)+ 暫存器切換(包括EIP,ESP等,均在switch_to函式中)。這裡我們講述下switch_to主流程: 在switch_mm函式中將new_task-&

Linux學習Linux的系統啟動過程

引用:《鳥哥的Linux私房菜基礎篇第三版》 啟動過程一覽 既然啟動是很嚴肅的一件事,那我們就來了解一下整個啟動的過程吧!好讓大家比較容易發現啟動過程裡面可能會發生問題的地方,以及出現問題後的解決之道! 不過,由於啟動的過程中,那個啟動管理程式(Boot Loader)

Linux學習Linux 的檔案許可權與目錄配置

引用:《鳥哥的Linux私房菜基礎篇第三版》 Linux最優秀的地方之一就在於他的多人多工環境。而為了讓各個使用者具有較保密的檔案資料,因此檔案的許可權管理就變的很重要了。 Linux一般將檔案可存取的身份分為三個類別,分別是 owner/group/others,且三種身份各有 r

Linux學習Linux 檔案與目錄管理

引用:《鳥哥的Linux私房菜基礎篇第三版》 在前一章我們認識了Linux系統下的檔案許可權概念以及目錄的配置說明。 在這個章節當中,我們就直接來進一步的操作與管理檔案及目錄吧!包括在不同的目錄間變換、 建立與刪除目錄、建立與刪除檔案,還有尋找檔案、檢視檔案內容等等,都

快速上手Linux(三)Linux常用命令

1.Linux常用命令 軟體操作命令 伺服器硬體資源和磁碟資源 檔案和資料夾操作命令 系統使用者操作命令 防火牆相關設定 提權操作sudo和檔案傳輸操作 1.1軟體操作命令 軟體包管理器 yum 安裝軟體:yum install xxx

Linux初級Linux(centos7)安裝

一、CentOS 獲取連線地址 官網地址:https://wili.centos.org/Download 國內映象下載地址:(速度相對較快) 進入以上國內網站按照以下檔案路徑找到最新版本下載到本地 二、用VMware workstatio

[Linux][入門系列]Linux&Mac網路工具全解(持續更新)

當你安裝了一個Linux虛擬機器,或者從雲服務那買了個伺服器,我們首先要知道的,就是網路狀況如何,所以我們偶爾會使用一些工具測試網路狀況,或者使用一些工具來使我們的Linux處於網路中更為安全。今天我們將介紹一些網路工具。 一、Ping出一個天地 最常用的恐