Linux入門之簡介

来源:https://www.cnblogs.com/hjnzs/archive/2019/11/20/11896961.html
-Advertisement-
Play Games

1、啥是linux? Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。 它能運行主要的Unix工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定 ...


1、啥是linux?

Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。
它能運行主要的Unix工具軟體、應用程式和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
linux廣泛用於網站伺服器。

  • 在全球網站伺服器中,使用Linux作為伺服器的網站接近80%。

世界超級電腦500強。

  • 操作系統絕大部分被都為linux系統。

Linux在嵌入式領域應用。

  • 手機、平板電腦
  • 智能家電:機頂盒、游戲機、數位相機等
  • 智能卡系統
  • 航空系統
  • 銀行系統
  • 卡拉OK點歌系

2、linux特點

  • 開源與免費的操作系統
  • 更加安全
  • 更加穩定
  • 適合伺服器使用

3、linux發展史。

說到Linux不得不先說Unix。以下部分內容摘取於維基百科。

UNIX操作系統,是一個強大的多用戶、多任務操作系統,支持多種處理器架構,按照操作系統的分類,屬於分時操作系統,最早由Ken Thompson、Dennis Ritchie和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。當前它的商標權由國際開放標準組織所擁有,只有符合單一UNIX規範的UNIX系統才能使用UNIX這個名稱,否則只能稱為類UNIX(UNIX-like)。
Unix的前身為1964年開始的Multics,貝爾實驗室 (Bell Labs)1965年時,加入一項由通用電氣(General Electric)和麻省理工學院(MIT)合作 的計劃;該計劃要創建一套多用戶、多任務、多層次(multi-user、multi-processor、multi-level)的MULTICS操作系統。貝爾實驗室參與了這個操作系統的研發,但因為開發速度太慢,1969年貝爾實驗室決定退出這個計劃。貝爾實驗室的工程師,肯·湯普遜和丹尼斯·里奇,在此時自行開發了Unix。
肯·湯普遜和丹尼斯·里奇
後來AT&T意識到了Unix的商業價值,不再將Unix源碼授權給學術機構,並對之前的Unix及其變種聲明瞭著作權權利。BSD在Unix的歷史發展中具有相當大的影響力,被很多商業廠家採用,成為很多商用Unix的基礎。其不斷增大的影響力終於引起了AT&T的關註,於是開始了一場持久的著作權官司,這場官司一直打到AT&T將自己的Unix系統實驗室賣掉,新接手的Novell採取了一種比較開明的做法,允許柏克萊分校自由發佈自己的Unix變種,但是前提是必須將來自於AT&T的代碼完全刪除,於是誕生了4.4 BSD Lite版,由於這個版本不存在法律問題,4.4 BSD Lite成為了現代柏克萊軟體包的基礎版本。儘管後來,非商業版的Unix系統又經過了很多演變,但其中有不少最終都是創建在BSD版本上(Linux、Minix等系統除外)。所以從這個角度上,4.4 BSD 又是所有自由版本Unix的基礎,它們和System V及Linux等共同構成Unix操作系統這片璀璨的星空。
此後的10年,Unix在學術機構和大型企業中得到了廣泛的應用,當時的UNIX擁有者AT&T公司以低廉甚至免費的許可將Unix源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴展和改進,形成了所謂的“Unix變種”,這些變種反過來也促進了Unix的發展,其中最著名的變種之一是由加州大學柏克萊分校開發的伯克利軟體套件(BSD)產品。
BSD使用主版本加次版本的方法標識,如4.2、4.3BSD,在原始版本的基礎上還有派生版本,這些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。BSD在發展中也逐漸派生出3個主要的分支:FreeBSD、OpenBSD和NetBSD。
此後的幾十年中,Unix仍在不斷變化,其著作權所有者不斷變更,授權者的數量也在增加。Unix的著作權曾經為AT&T所有,之後Novell擁有獲取了Unix,再之後Novell又將著作權出售給了聖克魯茲作業,但不包括知識產權和專利權(這一事實雙方尚存在爭議)。有很多大公司在獲取了Unix的授權之後,開發了自己的Unix產品,比如IBM的AIX、HP的HP-UX、SCO的Openserver、SUN的Solaris(被Oracle收購)和SGI的IRIX。
Unix因為其安全可靠,高效強大的特點在伺服器領域得到了廣泛的應用。直到GNU/Linux流行開始前,Unix也是科學計算、大型機、超級電腦等所用操作系統的主流。現在其仍然被應用於一些對穩定性要求極高的數據中心之上。

常見unix發行版本。

常見unix發行版本。

接下來說到我們的正主了linux。

1991年,林納斯·托瓦茲在赫爾辛基大學上學時,對操作系統很好奇他對MINIX只允許在教育上使用很不滿(在當時MINIX不允許被用作任何商業使用),於是他便開始寫他自己的操作系統,這就是後來的Linux內核。林納斯·托瓦茲開始在MINIX上開發Linux內核,為MINIX寫的軟體也可以在Linux內核上使用。後來使用GNU軟體代替MINIX的軟體,因為使用從GNU系統來的源代碼可以自由使用,這對Linux的發展有益。使用GNU GPL協議的源代碼可以被其他項目所使用,只要這些項目使用同樣的協議發佈。為了讓Linux可以在商業上使用,林納斯·托瓦茲決定更改他原來的協議(這個協議會限制商業使用),以GNU GPL協議來代替。之後許多開發者致力融合GNU元素到Linux中,做出一個有完整功能的、自由的操作系統。

linux系統架構

基於Linux的系統是一個模塊化的類Unix操作系統。Linux操作系統的大部分設計思想來源於20世紀70年代到80年代的Unix操作系統所創建的基本設計思想。Linux系統使用巨集內核,由Linux內核負責處理進程式控制制、網路,以及外圍設備和文件系統的訪問。在系統運行的時候,設備驅動程式要麼與內核直接集成,要麼以載入模塊形式添加。
Linux具有設備獨立性,它內核具有高度適應能力,從而給系統提供了更高級的功能。GNU用戶界面組件是大多數Linux操作系統的重要組成部分,提供常用的C函數庫,Shell,還有許多常見的Unix實用工具,可以完成許多基本的操作系統任務。大多數Linux系統使用的圖形用戶界面創建在X視窗系統之上,由X視窗(XWindow)系統通過軟體工具及架構協議來創建操作系統所用的圖形用戶界面。
已安裝Linux操作系統包含的一些組件:
啟動程式:例如GRUB或LILO。該程式在電腦開機啟動的時候運行,並將Linux內核載入到記憶體中。
init程式:init是由Linux內核創建的第一個進程,稱為根進程,所有的系統進程都是它的子進程,即所有的進程都是通過init啟動。init啟動的進程如系統服務和登錄提示(圖形或終端模式的選擇)。
軟體庫包含代碼:可以通過運行的進程在Linux系統上使用ELF格式來執行文件,負責管理庫使用的動態鏈接器是“ld-linux.so”。Linux系統上最常用的軟體庫是GNU C庫。
用戶界面程式:如命令行Shell或視窗環境。

linux特性
  • 基本思想
    Linux的基本思想有兩點:第一,一切都是文件;第二,每個軟體都有確定的用途。其中第一條詳細來講就是系統中的所有都歸結為一個文件,包括命令、硬體和軟體設備、操作系統、進程等等對於操作系統內核而言,都被視為擁有各自特性或類型的文件。至於說Linux是基於Unix的,很大程度上也是因為這兩者的基本思想十分相近。
  • 完全免費
    Linux是一款免費的操作系統,用戶可以通過網路或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程式員參與了Linux的修改、編寫工作,程式員可以根據自己的興趣和靈感對其進行改變,這讓Linux吸收了無數程式員的精華,不斷壯大。
  • 完全相容POSIX1.0標準
    這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程式。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程式是否能正常運行,這一點就消除了他們的疑慮。
  • 多用戶、多任務
    Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程式同時並獨立地運行。
  • 良好的界面
    Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。
    支持多種平臺
  • Linux可以運行在多種硬體平臺上,如具有x86、680x0、SPARC、Alpha等處理器的平臺。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發佈的Linux 2.4版內核已經能夠完全支持Intel64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
版本分類:

內核版 www.kernel.org

  • RHEL6.x 2.6.x
  • REHL7.x 3.10.x

Linux發行版(列舉的都是比較主流的。)

  • 基於RPM(Red Hat系)
    • Fedora:可用作工作站、桌面以及伺服器,由紅帽公司及其社群開發 。
    • 伺服器版:RHEL(RedHat Enterprise Linux)。
    • SUSE/openSUSE:來自德國,是歐洲最流行的套件之一.
  • 基於Dpkg(Debian系)
    •Ubuntu
    •Deepin

4、開源軟體。

什麼是開源軟體

開源軟體(英語:open source software,縮寫:OSS)又稱開放源代碼軟體,是一種源代碼可以任意獲取的電腦軟體,這種軟體的著作權持有人在軟體協議的規定之下保留一部分權利並允許用戶學習、修改以及以任何目的向任何人分發該軟體。開源協議通常符合開放源代碼的定義的要求。一些開源軟體被髮布到公有領域。開源軟體常被公開和合作地開發。開源軟體是開放源代碼開發的最常見的例子,也經常與用戶生成內容做比較[1]。 開源軟體的英文“open-source software”一詞出自自由軟體的營銷活動中。開源軟體同時也是一種軟體散佈模式。一般的軟體僅可獲取已經過編譯的二進位可執行檔,通常只有軟體的作者或著作權所有者等擁有程式的源代碼。
有些軟體的作者只將源代碼公開,卻不符合“開放源代碼”的定義及條件,因為作者可能設置公開源代碼的條件限制,諸如限制可閱讀源代碼的對象、限制派生產品等,此稱之為公開源代碼的免費軟體(Freeware,例如知名的網路論壇軟體Discuz!),因此公開源代碼的軟體並不一定可稱之為開放源代碼軟體。
常見開源軟體
• Apache: web伺服器
• Nginx: web伺服器
• MySQL: 資料庫(SQLserver , Oracle)
• PHP: 腳本語言
• Samba: Linux和windows之間的內網文件伺服器
• MongoDB: NoSQL資料庫 redis
• Python: 腳本語言
• Ruby: 腳本語言
• Sphinx: 中文分詞

開源軟體特性

★ 使用的自由 絕大多數開源軟體免費
★ 研究的自由 可以獲得軟體源代碼
★ 散佈及改良的自由 可以自由傳播、改良甚至銷售。


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

-Advertisement-
Play Games
更多相關文章
  • #!/bin/bash# 學生管理系統# @version 1.0 #設置全局變數##學生信息和學院信息#學院相關變數school_num=""school_name="" #學生相關變數stu_num=""stu_name=""stu_des="" #成績相關變數course=""score="" ...
  • "點我查看秘籍連載" 進程基礎 程式和進程 什麼是程式?什麼是進程?程式和進程之間的關係?相信在任何介紹進程基礎的地方都會解釋一下程式和進程之間的關係,這是一個常識性的知識。 單獨來看程式和進程,它們的概念都非常的簡單。粗略去看,程式是一個或多個文件,進程是操作系統上能做某些事情的東西。 更標準一點 ...
  • 一、添加資料庫數據: 1、修改Excel表格,添加欄位 2、修改資料庫,添加欄位 3、修改程式 4、使用Excel生成Tabletotable文件,並修改生成文件的內容。 (1)刪除cpp文件所有的H131_L2_; (2)刪除cpp文件中HANDLE_CSP_ALL::checkStructLen ...
  • 前言 本篇文章主要介紹的是Nginx Linux環境和Windows的安裝教程。 Nginx 介紹 Nginx("engine x")是一款是由俄羅斯的程式設計師Igor Sysoev所開發高性能的 Web和 反向代理 伺服器,也是一個 IMAP/POP3/SMTP 代理伺服器。 HTTP基礎功能: ...
  • 近日因測試安全產品需要,想調整mariadb的啟動用戶為root, 經歷一番波折後終於成功! 註意:以root身份啟動mysql是一項非常危險行為,相當於給了資料庫操作用戶(資料庫管理員或黑客)一個通過mysql對系統直接操作的通道! 實際上是官方不允許root啟動的, 因此在一般啟動方式下root ...
  • 輕量級監控平臺之cpu監控腳本 !/bin/bash 進程監控腳本 功能需求: 上報機器的硬體層面 cpu負載數據 . /etc/profile . ~/.bash_profile pushurl="https://lightmonitorapi.test.cn/push/cpuload" 抓取cp ...
  • 我們知道,一些 Linux 命令是要通過 sudo 許可權才能運行的,這需要我們每次使用這些命令時在前面加一個 sudo ,十分繁瑣。今天給大家介紹一個好用的工具 ,它只需要我們用大寫字母鍵入 Linux 命令,然後它就會自動地以 sudo 許可權運行,非常方便不是嗎? 安裝 SUDO 首先,使用 命令 ...
  • 此文主要用來擴散一些關於Fuchsia的文章,方便大家瞭解下Fuchsia到底是怎麼樣的。後續將持續更新...... ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...