運維基礎--操作系統

運維基礎部分:

什麼是運維?我的理解是運用軟件維護公司的服務器,網站,然後各種服務搭建、維護和調優。看似簡單實際上通過課上課下的瞭解,發現要掌握很多知識。首先從操作系統開始接觸運維。

 

馮諾依曼體系

將計算機分爲五大部分組成:運算器、控制器、存儲器、輸入設備、輸出設備。運算器的功能主要是進行算術運算和邏輯運算;存儲器存儲數據和指令;控制器就是從存儲器提取各種數據指令給運算器,再把結果處理輸出給外部設備。這些最底層的硬件是實現功能的基礎,而軟件是實現功能的邏輯過程。

內核

一個完整的操作系統由內核(Kernel)和各種應用程序(Applications)組成,這是一個廣義的操作系統,比如我們所用的windows操作系統實際上已經被裝上各種應用軟件了。而狹義上的操作系統是單指內核(Kernel),內核的功能有負責驅動底層硬件被訪問、合理分配資源、管理進程等等。

“內核”指的是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件。一個內核不是一套完整的操作系統。一套基於Linux內核的完整操作系統叫作Linux操作系統,或是GNU/Linux

內核是操作系統最基本的部分。它是爲衆多應用程序提供對計算機硬件的安全訪問的軟件。內核決定一個程序在什麼時候對某部分硬件操作多長時間。直接對硬件操作是非常複雜的,所以內核通常提供一種硬件抽象的方法來完成這些操作,隱藏了複雜性,爲應用軟件和硬件提供了一套簡潔,統一的接口,使程序設計更爲簡單。

有一個問題,操作系統內核還是直接面向的底層硬件,並不能讓用戶方便使用硬件。於是添加各種應用程序使得用戶使用硬件變的方便。最直觀的就是用戶界面。我們常用的是圖形界面(GUI),另外還有命令界面(CLI)。Windows操作系統的Command窗口就是一種CLI

計算機語言

  1. 機器語言  即二進制數字,計算機直接識別的語言。

  2. 微碼語言  又叫彙編語言,面向機器的程序設計語言。

早期的程序設計均使用機器語言。程序員們將用0, 1數字編成的程序代碼打在紙帶或卡片上,1打孔,0不打孔,再將程序通過紙帶機或卡片機輸入計算機,進行運算。這樣的機器語言十分複雜,不方便閱讀和修改,也容易產生錯誤。程序員們很快就發現了使用機器語言帶來的麻煩,它們難於辨別和記憶,給整個產業的發展帶來了障礙,於是彙編語言產生了。彙編指令和機器指令的差別在於指令的表示方法上。彙編指令是機器指令便於記憶的書寫格式。

  1. 高級彙編語言分爲系統級語言和應用級語言

             系統級語言:諸如CJava,更偏向底層,編寫難度大,運行效率高。

                       應用級語言:諸如PHPPython易於理解,編寫方便,更貼近人。

Unix的發展

1969年之前,BELL實驗室、MITGE聯合開發Multics

1969年:BELLKen Thompson爲自己開發了Unics(這個是戲稱的非正式的名稱,因爲思想源自Multics)。

Ken Thomson利用實驗室廢棄的PDP-7小型機,爲實現自己設計的遊戲star travel 結合multics的思想發明的unics.

BELL實驗室開始研究他所發明的Unix。當時的軟件程序用Basic語言編寫。

Ken1973年和他的學生Dennis·Ritchie一起用C語言重寫了UNIX

   UNIX成爲歷史上第一個開放源代碼供廣泛研究的開源系統。

1977年:UNIX分支--BSD誕生,加州伯克利大學BillJoy取得了UNIX的源代碼,加以修改和

完善,成爲UNIX重要分支BSD-UNIX。之後的x86上的FreeBSD就是BSD改版而來。

1979年:AT&T宣佈收回UNIX版權,不再開放,同時發佈SystemV架構的UNIX。期間衆多

公司的UNIX系統紛紛出現。

很多諸如Berkeley…等高校或公司極大促進了Unix的進一步發展代表人物:Bill Joy-->BSNG-->BSDBerkeley SystemDistribution

 

Linux操作系統

 

在服務器管理上,運維人員要掌握的是Linux操作系統。同樣Linux指的是內核。

 

Linux是一套免費使用和自由傳播的Unix操作系統,是一個基於POSIXUNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操作系統。

 

Richard Stallman,是自由軟件運動的精神領袖、GNU計劃以及自由軟件基金會(Free Software Foundation)的創立者、著名***。他的主要成就包括Emacs及後來的GNU EmacsGNU C 編譯器及GNU 調試器。 他所寫作的GNU通用公共許可證(GNUGPL)是世上最廣爲採用的自由軟件許可證。

 

Apache ASF 響應自由軟件,但要由自己的聲明

Pro Andrew 自己編寫內核 4000行左右代碼  戲稱爲:Minix 

Linus Torvalds---Andrew的學生在1991年,當時還是芬蘭大學生的他萌發了開發一個自由的Unix操作系統的想法,當年,Linux就誕生了,在他的自傳中他寫到剛開始的名字是Freax,後來在1991.10正式發佈了Linux 0.10 並完全開源。

 

**五大開源許可協議

0.0什麼是許可協議?

 

什麼是許可,當你爲你的產品簽發許可,你是在出讓自己的權利,不過,你仍然擁有版權和專利(如果申請了的話),許可的目的是,向使用你產品的人提供一定的權限。

 

不管產品是免費向公衆分發,還是出售,制定一份許可協議非常有用,否則,對於前者,你相當於放棄了自己所有的權利,任何人都沒有義務表明你的原始作者身份,對於後者,你將不得不花費比開發更多的精力用來逐個處理用戶的授權問題。

 

而開源許可協議使這些事情變得簡單,開發者很容易向一個項目貢獻自己的代碼,它還可以保護你原始作者的身份,使你至少獲得認可,開源許可協議還可以阻止其它人將某個產品據爲己有。以下是開源界的 5 大許可協議。

 

1.GNU GPL

 

GNUGeneral Public Licence (GPL) 有可能是開源界最常用的許可模式。GPL 保證了所有開發者的權利,同時爲使用者提供了足夠的複製,分發,修改的權利:

 

可自由複製

你可以將軟件複製到你的電腦,你客戶的電腦,或者任何地方。複製份數沒有任何限制。

 

可自由分發

在你的網站提供下載,拷貝到U盤送人,或者將源代碼打印出來從窗戶扔出去(環保起見,請別這樣做)。

 

可以用來盈利

你可以在分發軟件的時候收費,但你必須在收費前向你的客戶提供該軟件的 GNU GPL 許可協議,以便讓他們知道,他們可以從別的渠道免費得到這份軟件,以及你收費的理由。

 

可自由修改

如果你想添加或刪除某個功能,沒問題,如果你想在別的項目中使用部分代碼,也沒問題,唯一的要求是,使用了這段代碼的項目也必須使用 GPL 協議。

 

需要注意的是,分發的時候,需要明確提供源代碼和二進制文件,另外,用於某些程序的某些協議有一些問題和限制,你可以看一下 @PierreJoye 寫的 Practical Guide to GPL Compliance 一文。使用 GPL 協議,你必須在源代碼代碼中包含相應信息,以及協議本身。

 

2.GNU LGPL

 

GNU 還有另外一種協議,叫做LGPL Lesser General Public Licence),它對產品所保留的權利比 GPL 少,總的來說,LGPL 適合那些用於非 GPL 或非開源產品的開源類庫或框架。因爲 GPL 要求,使用了 GPL 代碼的產品必須也使用 GPL 協議,開發者不允許將 GPL 代碼用於商業產品。LGPL 繞過了這一限制。

 

3.BSD

 

BSD 在軟件分發方面的限制比別的開源協議(如 GNU GPL)要少。該協議有多種版本,最主要的版本有兩個,新 BSD 協議與簡單 BSD 協議,這兩種協議經過修正,都和 GPL 兼容,併爲開源組織所認可。

 

BSD 協議(3條款協議)在軟件分發方面,除需要包含一份版權提示和免責聲明之外,沒有任何限制。另外,該協議還禁止拿開發者的名義爲衍生產品背書,但簡單 BSD 協議刪除了這一條款。

 

4.MIT

 

MIT 協議可能是幾大開源協議中最寬鬆的一個,核心條款是:

 

該軟件及其相關文檔對所有人免費,可以任意處置,包括使用,複製,修改,合併,發表,分發,再授權,或者銷售。唯一的限制是,軟件中必須包含上述版權和許可提示。

 

這意味着:

 

你可以自由使用,複製,修改,可以用於自己的項目。

可以免費分發或用來盈利。

唯一的限制是必須包含許可聲明。

MIT 協議是所有開源許可中最寬鬆的一個,除了必須包含許可聲明外,再無任何限制。

 

5.Apache

 

Apache 協議 2.0 和別的開源協議相比,除了爲用戶提供版權許可之外,還有專利許可,對於那些涉及專利內容的開發者而言,該協議最適合(這裏有一篇文章闡述這個問題)。

 

Apache 協議還有以下需要說明的地方:

 

永久權利

一旦被授權,永久擁有。

 

全球範圍的權利

在一個國家獲得授權,適用於所有國家。假如你在美國,許可是從印度授權的,也沒有問題。

 

授權免費,且無版稅

前期,後期均無任何費用。

 

授權無排他性

任何人都可以獲得授權

 

授權不可撤消

一旦獲得授權,沒有任何人可以取消。比如,你基於該產品代碼開發了衍生產品,你不用擔心會在某一天被禁止使用該代碼。

 

分發代碼方面包含一些要求,主要是,要在聲明中對參與開發的人給予認可幷包含一份許可協議原文。


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