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
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...