Linux(一) - Unix&Linux 歷史

来源:https://www.cnblogs.com/imzhizi/archive/2019/04/30/linux--unixlinux-li-shi.html
-Advertisement-
Play Games

## Unix### Unix 的誕生- Unix的歷史可以追溯到20世紀60年代中期,當時麻省理工學院,AT&T,貝爾實驗室和通用電氣公司聯合開發了一種名為Multics的操作系統,Multics 中存在許多創新,但也有很多問題- 1969年,貝爾實驗室的 Ken Thompson 開發了Unix... ...


Unix

Unix 的誕生

  • Unix的歷史可以追溯到20世紀60年代中期,當時麻省理工學院,AT&T,貝爾實驗室和通用電氣公司聯合開發了一種名為Multics的操作系統,Multics 中存在許多創新,但也有很多問題
  • 1969年,貝爾實驗室的 Ken Thompson 開發了Unix系統的原型(分層文件系統、電腦過程概念、命令行解釋器等)
  • 1969 年~1973 年,Dennis Ritchie 發明瞭 C 語言
  • 1973 年,使用C 重新編寫 UNIX 內核
  • 1974 年,Unix 正式對外發佈
  • 1976年,Bill Joy 開發了 Vi 編輯器
  • 1977年,Bill Joy 裝配了第一版帶有伯克利軟體套件(Berkley Software Distribution,BSD )的 Unix 系統
  • 1978年,Bill Joy 開發了 C-Shell、2BSD
  • 1979年,AT&T 公司發佈了商業版的 Unix —— System III
  • 1982年,Bill Joy 聯合創立了 Sun 公司
  • 1983年,AT&T 公司為了結束各個版本間的混淆,發佈了System V Release 1

AT&T要求使用 Unix 系統必須要購買許可證,其迅速將Unix System V商業化的行為幾乎殺死了Unix
由於UNIX 的商業化,BSD Unix 常常作為UNIX System III和V的替代品
BSD 的主要貢獻是向Unix 內核中添加 TCP/IP 網路代碼

Unix 戰爭

20世紀80年代,市面上存在著多種Unix 實現,大部分是 AT&T 和 BSD 基礎系統的擴展,所有這些都來自AT&T 的 Research Unix,但又各有不同,發生在供應商之間的標準 Unix 之爭被稱為 Unix 戰爭,詳情參考 Unix wars - Wikipedia

戰爭是有結果的,最終 IEEE 最早提出的 POSIX(Portable Operating System Interface)成為統一的標準,成為所有操作系統的共同基線。

GUI 的發展

圖形用戶界面(Graphical User Interface,GUI)主要是指允許用戶使用鍵盤、指點設備(滑鼠、軌跡球、觸摸板等)操縱的顯示器和與電腦進行交互的程式。

  • 1981年,X Window 最早誕生於斯坦福大學分散式系統小組
  • 1984年,MIT、IBM 和 DEC 聯合制定了 Athena 計劃,創建了一個具體廠商無關且適合於網路的圖形界面 X Window
  • 1984年6月,發行了 X Windows 的第一版 X1
  • 1985年底,發行了 X Window 的第一個流行版本 X10
  • 在 Unix 戰爭期間,GUI 同樣是標準之爭的一部分
  • 1992年,出現了基於 x86架構的 XFree86,Linux 也在使用它
  • 2004年,X Window 開始由 X.org 小組負責, XFree86 因為許可證問題也由 X.org 管理
  • 2005年12月21日,X Window 發佈了 X11R7

開源運動

  • 1976年 Richard Stallman 開發了第一個可操作的 Emacs 編輯器系統

    1981年,Java 語言的發明者 James Gosling 開發了 Gosling Emacs,這是 Gnu Emacs 的前身

  • 1983年9月27日,Richard Stallman 公開發起了 GNU 計劃,目標是創建一套完全自由的OS
    • 具體來說,GNU 將是一個類 Unix 系統
    • 所有 GNU 軟體都要求包含通用公共許可證 (General Public License, GPL)
  • 1985年,Richard Stallman 創建了自由軟體基金會(Free Software Foundation,FSF)來為 GNU 提供技術支持
  • 1987年,受 AT&T 版 Unix 代碼閉源影響,Andrew Tanenbaum 發行了 x86 架構的 Minix(使用了微內核設計)用於教學使用
  • 1990年,FSF 已經開發了 Emacs 編輯器、 GCC、g++、gdb等重要工具,但其內核 HURD 的開發仍未完成

    如前文所寫,在此期間主流系統為 BSD 和 System V
    因版權原因使用 BSD 也要從 AT&T 購買許可證,所以伯克利程式員自一直致力於開發一個完全獨立的 BSD 版本
    FSF 已經完成了除了內核以外所有 Unix 系統的重要組件,GNU 系統還需要更多時間

Linux 的誕生

天選之人

  • 1991年8月25日,Linus Torvalds 發佈了針對其新內核的帖子
  • 1991年9月,Linus Torvalds 發佈了內核的第一個版本 Linux(使用了單內核設計)
    • 最早基於 Minix,後來轉向 GNU,相容所有 GNU 軟體,使用 GPL
  • 1992年,Bill Jolitz 完成了完全獨立版本的BSD——>386/BSD(說明也僅支持 x86架構)成為後來的FreeBSD
    • 繼而衍生出了可以移植到多種電腦的 NetBSD 和關註安全和密碼學的 OpenBSD
    • 使用的 BSD協議比 GPL協議更加寬鬆,鼓勵分享性較差

之後許多開發者致力融合GNU元素到Linux中,做出一個有完整功能的、自由的操作系統
1993年,第一個基於Linux內核的 Linux發行版 Slackware
一個Linux發行版包括Linux內核,以及將整個軟體安裝到電腦上的一套安裝工具,還有各種GNU軟體,和其他的一些自由軟體,在一些Linux發行版中可能會包含一些專有軟體
1994年3月,Linux1.0版正式發佈,Marc Ewing成立Red Hat軟體公司,成為最著名的Linux經銷商之一
後來又產生了大量 Linux 發行版(Debian、Ubuntu、Fedora 等),Linux 世界開始蓬勃發展
BSD
GNU計劃自己的內核Hurd依然在開發中,但直到2013年為止,都還沒有穩定版本發佈
2000年,Apple發佈了一個Unix系統Darwin

KDE 和 Gnome

  • 1996年,Matthias Ettrich 對 Unix GUI 現狀感到不滿(程式的外觀、工作方式都不一樣),啟動了項目 Kool Desktop Environment(KDE)
    • 基於 Qt,但許可證不夠自由,激發了 Gnome 的產生
    • 視窗管理器 kwm
    • Konsole
  • 1997年8月,創建了基於 GNU GPL 的 Linux GUI Gnome
    • 基於 GTK+
    • 視窗管理器 Metacity
  • 1999年,Gnome 和 KDE 成為流行的、設計良好的 Linux 桌面環境。

    20世紀90年代,CDE 成為商業 Unix 系統 GUI 的選擇
    起源於1996年的 Xfce 現今也是流行的 Linux GUI 之一


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在伺服器性能優化中,我們更多的是要考慮到緩存的使用,分享一個自己編寫的方法緩存的框架,使用非常方便。話不多說,先上使用例子: 1.定義要使用緩存的類及方法: 說明: 1.被緩存的方法必須使用虛方法 2.特性:CacheMethod.ExpirationSecond 指定緩存的相對失效時間(單位秒) ...
  • 當不允許多用戶同時登錄一個帳號時,就需要一種機制,當再登錄一個相同的帳號時,前面登錄的人被擠下線。 原文地址:http://www.cnblogs.com/f23wangj/p/4984302.html 實現原理:在伺服器端記錄登錄的用戶ID+SessionID,當重覆登錄時,根據用戶ID用新的Se ...
  • SliderView控制項 一、 樣式一 我們要實現上圖中的效果,需要如下的操作: 獲得和設置標簽視圖集合,打開集合編輯器,並點擊“添加”,分別填寫ResourceID屬性(菜單項圖片名稱),Text(菜單項文本),Value(內部值,不在界面上顯示),如圖1、圖 2; 圖 1設置界面1 圖 2設置界 ...
  • C#中的快捷鍵,可以更方便的編寫代碼 //CTRL + SHIFT + B 生成解決方案 //CTRL + F7 生成編譯 //CTRL + O 打開文件 //CTRL + SHIFT + O 打開項目 //CTRL + SHIFT + C 顯示類視圖視窗 //F4 顯示屬性視窗 //SHIFT +... ...
  • IComparable<T> .NET 里,IComparable<T>是用來作比較的最常用介面。 如果某個類型的實例需要與該類型的其它實例進行比較或者排序的話,那麼該類型就可以通過實現IComparable<T>介面來達到此目的。 IComparable<T>只提供了一個方法: 先看一個例子,這裡 ...
  • 字元串常用方法 string str =""; string[] strArray = str.Split('截取字元'); //按字元將字元串拆分為數組 str = str.Replace("n","m");//將字元串n替換為m str = str.Remove(i,length);//刪除字元... ...
  • 1.從官網通過wget命令將Nginx源碼包下載到Linux上 ​ Nginx下載頁面:http://nginx.org/en/download.html 2.在Linux上安裝需要依賴的環境 & 8195;& 8195;gcc為GNU Compiler Collection的縮寫,可以編譯C和C+ ...
  • 1.下載Git工具 https://www.git-scm.com/download/win 2.進到項目目錄 3.初始化 4.添加遠程倉庫地址 5.添加本地代碼 6.提交本地代碼 7.上傳 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...