載入中
載入中
載入錯誤
還在載入中,請稍候...

    Tetsuhiko的筆記

    01. Introduction

    • 2020-03-17 19:00:01
    • 81
    • LINUX作業系統實務
    • Tetsuhiko
    什麼是作業系統?
    01. Introduction
    1. 管理電腦資源
    2. 提供操作介面
    3. 供應用程式執行及呼叫系統

    硬體與作業系統
    • LINUX是安裝在電腦硬體系統上面的一套作業系統,目的是用來管理電腦硬體的
    • 目前的電腦硬體系統主要經由底下的元件所組成:
      • 輸入單元
      • 主機部分
      • 輸出單元
    • 主機部份的組成為:控制單元、算術邏輯單元以及記憶體單元。
    CPU 架構
    • X86個人電腦
    • ARM手持式裝置
    • 精簡指令集(RISC)
    • 複雜指令集(CISC)
    作業系統與其他部件之架構
    • 硬體:x86個人電腦 vs ARM Raspberry pi
    • 核心 (kernel):作業系統
    • 系統呼叫 (system call):可視為核心提供的一系列函式庫
    • 應用程式:就是在該系統呼叫的環境中,撰寫程式碼編譯而成的binary code程式。
    思考
    • 可以把Windows裝在MacBook上嗎?
    • 除了雲端軟體之外 (一般雲端軟體,如Office 365),大部分的作業系統軟體在販售時,會告知適合的硬體等級,而一般應用軟體則會告知適用的作業系統,其主要的原因為何?
    Linux的起源
    • Unix by AT&T 貝爾實驗室 - 只能在工作站等級電腦上運行
    • Minix by Andrew Tanenbaum - 可以在個人電腦上使用
    • Linus Torvalds 兩樣都安裝失敗了.. T_T
    01. Introduction
    Linus intro on Wiki
    01. Introduction01. Introduction
    Tux(一隻企鵝)是Linux的標誌。將企鵝作為Linux標誌是由林納斯·托瓦茲(Linus Benedict Torvalds)提出的。

    林納斯·班奈狄克·托瓦茲(瑞典語:Linus Benedict Torvalds,1969年12月28日-),生於芬蘭赫爾辛基市,Linux核心的最早作者,2005年,為了管理Linux核心的原始碼,開發了Git。

    大多數人相信,「Tux」這個名字來源於Torvalds UniX,而不是因為它看起來像是穿著一件黑色小禮服(tuxedo)。

    一點背景知識
    • 林納斯·托瓦茲在11歲時,應其外祖父要求用BASIC語言編寫一些統計學方面的小程式,這是他編程經歷之始。
    • 1996年,自赫爾辛基大學碩士畢業,學位論文是《Linux: A Portable Operating System》。
    • 1999年,Red Hat及VA Linux這兩間公司,決定將他們公司的股票期權(stock option)一部份贈與托瓦茲,以感謝他的貢獻。同年,在這兩間公司的股票在市場公開發行之後,托瓦茲的財產估計為2,000萬美元。
    • 2003年,為了專心於Linux核心的發展,從全美達公司辭職,受聘於開原始碼發展實驗室(OSDL),擔任Linux核心的主要維護者。
    作業系統的發展
    • 1965年以前的電腦系統
    • 1969年以前:一個偉大的夢想 -- Bell, MIT與GE的『Multics』系統
    • 1969年:Ken Thompson的小型File Server System暱稱Unics的軟體
    • 1973年:Unix的正式誕生,Ritchie等人以C語言寫出第一個正式Unix核心
    • 1977年:重要的Unix分支 -- BSD的誕生
    • 1979年:重要的System V架構與版權宣告
    • 1984年之一:x86架構的Minix作業系統開始撰寫並於兩年後誕生
    • 1984年之二:GNU計畫與FSF基金會的成立
    • 1988年:圖形介面XFree86計畫
    • 1991年:芬蘭大學生Linus Torvalds的一則簡訊
    • 1992年:Linux distributions發行
    • 1994年:Linux kernel version 1.0釋出
    • 2005年:Google收購Android公司
    • 2012年:教育市場的Raspberry pi
    GPL授權
    • GNU的GPL授權主要強調自由的學習
    • 免費的啤酒? (free beer)
    GPL權力與義務
    • GNU的GPL授權有底下的權力與義務:
      • 取得軟體與原始碼:你可以根據自己的需求來執行這個自由軟體
      • 複製:你可以自由的複製該軟體
      • 修改:你可以將取得的原始碼進行程式修改工作,使之適合你的工作
      • 再發行:你可以將你修改過的程式,再度的自由發行,而不會與原先的撰寫者衝突
      • 回饋:你應該將你修改過的程式碼回饋於社群!
      • 不可修改授權:你不能將一個GPL授權的自由軟體,在你修改後而將他取消GPL授權~
      • 不可單純販賣:你不能單純的販賣自由軟體。
    Is it free?
    • 自由軟體? 免費軟體?
    • Open Source有哪些要求?
    思考
    • 如果你自己開發的軟體未來可能會有商業化的可能,但目前你希望使用Open source的方式來提供大家使用。另外,也希望未來能夠有一支保有開放源碼軟體的分支,那最好使用GPL還是BSD呢?
    Linux kernel
    • Linux kernel主要由http://www.kernel.org維護
    • 2.6.x:所謂的偶數版,為穩定版,適用於商業套件上
    • 2.5.x:所謂的奇數版,為發展測試版,提供工程師一些先進開發的功能。
    • 這種奇數、偶數的編號格式在2011年3.0核心推出之後就失效了。
    • 舊的版本 - 兩種機制來處理: 結束開發 (End of Live, EOL)與長期維護版本 (Longterm)
    附加知識
    • 使用Google搜尋引擎或Wiki等,找出底下的相關資料:Android的版本搭配的Linux核心版本為何?
    • 由Linux kernel官網的『Releases』相關說明,找出現階段的Linux Mainline, Stable, Longterm版本各有哪些?
    Linux distribution
    • 『Kernel + Softwares + Tools + 可完整安裝程序』
      RPM軟體管理DPKG軟體管理其他未分類
      商業公司RHEL(Red Hat公司)
      SuSE(Micro Focus)
      Ubuntu(Canonical Ltd.)
      社群單位Fedora
      CentOS
      OpenSuSE
      Debian
      B2D
      Gentoo
    思考
    • 為什麼CentOS社群可以直接取用RHEL的程式碼來修改後釋出?這樣做有沒有任何法律的保護呢?
    LINUX用在哪
    • 用在企業環境與學術環境中,最常見到的應用有:
      • 網路伺服器
      • 關鍵任務的應用(金融資料庫、大型企業網管環境)
      • 學術機構的高效能運算任務
    • 個人的使用則有:
      • 桌上型電腦
      • 手持系統(PDA、手機、平板電腦、精簡電腦等)
      • 嵌入式系統(如raspberry pi/Xapple pi等內建的Linux系統)
    思考
    • 超級電腦可以說是一個國力的展現,而top500每年會有兩次去調查全世界跑得最快的超級電腦。請上網查詢後回答下列問題:
      1. top500的官網網址?
      2. 超級電腦的比較排序方式,是以哪一種計算來考慮的?
      3. 根據現在的時間,找到最近一次排序的結果,第一名的超級電腦使用了多少個CPU核心(cores)
      4. 該系統最快可達到多快的計算(說明其單位)?
      5. 若以一度電5元台幣計算,該系統開機一天要花費多少錢?
    思考
    免費的雲端資源
    類UNIX系統
    • 類Unix系統(英語:Unix-like)指各種Unix的衍生系統,比如FreeBSD、OpenBSD、SUN公司的Solaris,以及各種與傳統Unix類似的系統,例如Minix、Linux、QNX等。
    • UNIX的商標權由國際開放標準組織所擁有,只有符合單一UNIX規範的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIX(UNIX-like)。
    UNIX
    • UNIX,一種多用戶、多行程的電腦作業系統,源自於20世紀70年代開始在美國AT&T公司的貝爾實驗室開發的AT&T Unix。
    • 最早由Ken Thompson、Dennis Ritchie和Douglas Mcllroy於1969年在AT&T的貝爾實驗室開發。
    01. Introduction
    Unix發展歷史
    • Unix的前身為1964年開始的Multics。
    • 最著名的變種之一是由加州大學柏克萊分校開發的柏克萊軟體套件(BSD)產品。
    • Unix最初受到Multics計劃的啟發。
    • 貝爾實驗室最初參與Multics計劃的部門為計算機技術研發部門(Computing Techniques Research Department)。
    • 1969年,肯‧湯普遜提議在PDP-7上開發一個新的階層式作業系統的計劃 - 第一版UNIX。
    BSD版本
    • AT&T的法律爭議。
    • BSD使用主版本加次版本的方法標識,如4.2、4.3BSD,在原始版本的基礎上還有衍生版本,這些版本通常有自己的名字,如4.3BSD-Net/1、4.3BSD-Net/2等。BSD在發展中也逐漸衍生出3個主要的分支:FreeBSD、OpenBSD和NetBSD。
    大公司紛紛研發Unix產品
    • IBM的AIX、HP的HP-UX、SCO的Openserver、SUN的Solaris(被Oracle收購)和SGI的IRIX。
    • Unix因為其安全可靠,高效強大的特點在伺服器領域得到了廣泛的應用。直到GNU/Linux流行開始前,Unix也是科學計算、大型電腦、超級電腦等所用作業系統的主流。現在其仍然被應用於一些對穩定性要求極高的資料中心之上。
    一些Unix歷史
    • 1974年,湯普遜和里奇合作在ACM通信上發表了一篇關於UNIX的文章,這是UNIX第一次出現在貝爾實驗室以外。
    • 1975年,UNIX發布了4、5、6三個版本。1978年,已經有大約600台電腦在執行UNIX。
    • 1982年,AT&T基於版本7開發了UNIX System Ⅲ的第一個版本,這是一個商業版本僅供出售。
    • 這個新的UNIX商業發布版本不再包含原始碼,所以加州大學柏克萊分校繼續開發BSD UNIX,作為UNIX System Ⅲ和Ⅴ的替代選擇。
    • 比爾‧喬伊,在BSD基礎上開發了SunOS,並最終創辦了昇陽公司(Sun Microsystems)。
    • AT&T繼續為UNIX System Ⅴ增加了檔案鎖定、系統管理、作業控制流和遠端檔案系統。
    • 1993年以後,大多數商業UNIX發行商都基於SVR4開發自己的UNIX變體了。
    UNIX設計原則
    • UNIX重要的設計原則:
      • 簡潔至上(KISS原則)
      • 提供機制而非策略(Provide mechanism, not policy)
    • 樂高積木的凹凸點是機制,那什麼是策略?
    自由的類Unix系統
    • 1984年,Richard Stallman發起了GNU專案,目標是建立一個完全自由且向下相容UNIX的作業系統。
    • 今天GNU/Linux已經成為發展最為活躍的自由/開放原始碼的類UNIX作業系統。
    • 1994年,受到GNU工程的鼓舞,BSD走上了復興的道路。BSD的開發也走向了幾個不同的方向,並最終導致了FreeBSD、NetBSD、OpenBSD和DragonFlyBSD等基於BSD的作業系統的出現。
    Top