Linux 概述

UNIX發展歷程

image.png

  • 第一個版本是1969年由Ken Thompson(UNIX之父)在AT& T貝爾實驗室實現
  • Ken Thompson和Dennis Ritchie(C語言之父)使用C語言對整個系統進行了再加工和編寫
  • UNIX的源代碼屬于SCO公司(AT&T ->Novell ->SCO )
  • UNIX商標( AT&T ->Novell ->X/Open)

什么是UNIX

UNIX是由OPEN GROUP管理的一個商標,它指的是某類遵循特定規范的計算機操作系統集合。這個規范稱為單一UNIX規范SUS(Single UNIX Specification)

類UNIX系統

  • 各種傳統的UNIX系統以及各種與傳統UNIX類似的系統(遵循POSIX可移植操作系統接口規范)。
  • ISO C 是 POSIX子集
  • POSIX 是 SUS子集
  • 純種Unix多數為商用,如SCO的Unixware、IBM的AIX、HP的HP-UX和Sun的Solaris等
  • 免費的有FreeBSD和Linux等

什么是Linux

是一個類UNIX內核的可以自由發布的實現版本,是一個操作系統的底層核心(內核)。用戶可以獲得內核源代碼,編譯并安裝,然后獲得并安裝許多其他自由發布的軟件,從而創建一個完整的Linux,通常稱為Linux系統

Linux的發展歷程

  • 新版Unix(SystemV7)受版權限制及源代碼不公開,不能用于教學和科研
  • Andrew S. Tanenbaum教授為了擺脫這些限制,開發了Minix操作系統, 開放全部源代碼給大學教學和研究工作
    Linus Torvalds 芬蘭赫爾辛基大學的一位計算機系的學生。在大學期間,他接觸到了學校的Unix系統,但是當時的Unix系統僅為一臺主機,且對應了多個終端,使用時存在操作等待時間很長等一些不爽的問題。因此他就萌生了自己開發一個Unix的想法。他就把Minix安裝到了他的I386個人計算機上作為學習和研究的對象。Linus閱讀了Minix系統的源代碼,從Minix系統中學到了很多重要的系統核心程序設計理念和設計思想,從而逐步開始了Linux系統雛形的設計和開發。1991 年 8 月,在芬蘭 赫爾辛基大學 計算機系的學生在comp.os.minix 新聞組貼上了以下這段話:「你好,所有使用 minix 的人 -我正在為386 ( 486 ) AT 做一個免費的操作系統 ( 只是為了愛好 ),不會像 GNU 那樣很大很專業。」

Linux內核版本

  1. 1991年10月發布linux0.02版本
  2. 1993年發布linux0.99版本
  3. 1994年3月發布linux1.0版本,GPL協議
  4. 1994年加入GNU組織
  5. 2021年最新穩定內核版本為:5.11.2(21年2月26日)-https://www.kernel.org
    image.png

Linux的特點

  • 開放性(遵循標準)
  • 多用戶
  • 多任務
  • 良好的用戶界面
  • 設備獨立性(把外部設備當作文件處理)
  • 豐富的網絡功能
  • 可靠的系統安全
  • 良好的可移植性

自由軟件簡介

image.png

GNU計劃

1983 年 Richard Stallman(自由軟件業的精神教父) 創辦 GNU(GNU’s not Unix)計劃。開始于1984年,旨在建立一套完全自由的和可移植的類Unix操作系統

  • http://www.gnu.org/

自由軟件基金會

  • GNU計劃的贊助單位
  • FSF(Free Software Foundation)提倡自由軟件
  • FSF自由使用權的三個意義:
  1. 可自由復制GNU的軟件
  2. 可自由修改源代碼
  3. 可自由散布修改過的源代碼,但不得收取任何版權費用
    image.png

GNU General Public License(大眾公有版權/通用公共版權)

  • 官方翻譯:自由文件許可
  • Copyleft(是copyright[版權]的反話,就是防止有人給自由軟件的使用加上限制)
    GPL核心思想:
  • 保證任何人有共享、修改、發布自由軟件的自由
  • 自由軟件的衍生作品必須以GPL為重新發布的許可證
  • 允許公司銷售自由軟件,提供源代碼
    在GPL條款下發布的主要GNU項目軟件
  • GCC
  • G++
  • GDB
  • make
  • Bash
  • Emacs
  • Gawk

linux版本

內核版本

Linux操作系統(kernel+utilities):專家才會用

內核版本號:由Linus等人制定和維護,全球統一

image.png
內核版本號格式:x.y.zz,x為主版本號,y為次版本號,zz為次次版本號。

次版本號為偶數的是穩定版本(內核的特性已經固定,代碼運行穩定可靠,不再增加新的特性,要改進也只是修改代碼中的錯誤),為奇數的是發展版本(舊規則,適用于2.6以下)。

Linux內核2.6+,第二個數字不再表示一個內核是穩定版本還是開發版本,所有發布出來的正式版本都是穩定版本

發行版本

Linux發行版(Distribution):整合更多配套軟件,普通用戶也能用

發行版本號:由各個發行公司或者組織自行制定,不同公司的發行版本號之間無可比性

  • RedHat Linux
  • Fedora
  • CentOS
  • Debian GNU/Linux
  • Ubuntu
  • Gentoo Linux
  • SuSE Linux
  • Arch Linux
  • Kali Linux
  • Linpus Linux
  • Red Flag Linux(紅旗Linux)

Linux 目錄

Linux目錄結構以目錄的方式來組織和管理系統中的所有文件。以根目錄“/”為起點,所有其他的目錄都由根目錄派生而來

image.png

  • /bin:常用系統程序目錄
  • /boot:開機設定目錄,也是擺放核心 vmlinuz 的地方
  • /dev:擺放系統設備裝置文件的目錄
  • /etc:系統配置文件,尤其 passwd, shadow
  • /etc/rc.d/init.d:系統開機的時候載入服務的 scripts 的擺放地點
  • /home:系統使用者的目錄
  • /lib:Linux 執行或編譯程序函數庫目錄
  • /mnt:軟驅與光驅接入掛載的地方
  • /proc:系統核心與執行程序的一些信息
  • /root:系統管理員的目錄
  • /usr/bin, /bin:一般執行文件擺放的地方
  • /usr/sbin, /sbin:系統管理員常用指令集
  • /var:擺放系統日志文件的地方
  • /lost+fount:擺放系統不正常產生錯誤時遺失的片段

Linux系統的運行級別(Run Level)

  1. 關機級別。
  2. 單用戶運行級別,運行rc.sysinit和rc1.d目錄下的腳本。
  3. 多用戶,但系統不會啟動Network File System(NFS),字符模式,在有些Linux系統中,級別2為默認模式,具有網絡功能,如Ubuntu、Debian。
  4. 多用戶,字符模式,系統啟動具有網絡功能,常用運行級別。
  5. 用戶自定義級別。
  6. 圖形界面模式,常用運行級別。
  7. 重啟級別。

更改系統運行級別

  • 臨時
  1. init n或telinit n
    -----n為級別號,root權限
  2. startx
    -----啟動圖形化環境(需要安裝圖形化界面)
  • 長期
  1. 修改配置文件 /etc/inittab(舊)
  2. systemctl set-default *.target

shutdown

在這里插入圖片描述

halt

image.png

init

image.png

poweroff

image.png

reboot

image.png

  • 不允許普通用戶關機和重啟
  • 關機
    shutdown –h now
    init 0
    halt -p
    poweroff -p
  • 重啟
    shutdown -r now
    init 6
    reboot

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/390728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/390728.shtml
英文地址,請注明出處:http://en.pswp.cn/news/390728.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

課程一(Neural Networks and Deep Learning),第四周(Deep Neural Networks)—— 0.學習目標...

Understand the key computations underlying deep learning, use them to build and train deep neural networks, and apply it to computer vision. 學習目標 See deep neural networks as successive blocks put one after each otherBuild and train a deep L-layer Neura…

使用ActionTrail Python SDK

ActionTrail提供官方的Python SDK。本文將簡單介紹一下如何使用ActionTrail的Python SDK。 安裝Aliyun Core SDK。 pip install aliyun-python-sdk-core 安裝ActionTrail Python SDK。 pip install aliyun-python-sdk-actiontrail 下面是測試的代碼。調用LookupEventsRequest獲…

泰坦尼克:機器從災難中學習_用于災難響應的機器學習研究:什么才是好的論文?...

泰坦尼克:機器從災難中學習For the first time in 2021, a major Machine Learning conference will have a track devoted to disaster response. The 16th Conference of the European Chapter of the Association for Computational Linguistics (EACL 2021) has a track on…

github持續集成的設置_如何使用GitHub Actions和Puppeteer建立持續集成管道

github持續集成的設置Lately Ive added continuous integration to my blog using Puppeteer for end to end testing. My main goal was to allow automatic dependency updates using Dependabot. In this guide Ill show you how to create such a pipeline yourself. 最近&…

shell與常用命令

虛擬控制臺 一臺計算機的輸入輸出設備就是一個物理的控制臺 ; 如果在一臺計算機上用軟件的方法實現了多個互不干擾獨立工作的控制臺界面,就是實現了多個虛擬控制臺; Linux終端的工作方式是字符命令行方式,用戶通過鍵盤輸入命令進…

C中的malloc:C中的動態內存分配

什么是C中的malloc()? (What is malloc() in C?) malloc() is a library function that allows C to allocate memory dynamically from the heap. The heap is an area of memory where something is stored.malloc()是一個庫函數,它允許C從堆動態分配…

Linux文本編輯器

Linux文本編輯器 Linux系統下有很多文本編輯器。 按編輯區域: 行編輯器 ed 全屏編輯器 vi 按運行環境: 命令行控制臺編輯器 vi X Window圖形界面編輯器 gedit ed 它是一個很古老的行編輯器,vi這些編輯器都是ed演化而來。 每次只能對一…

Alpha第十天

Alpha第十天 聽說 031502543 周龍榮(隊長) 031502615 李家鵬 031502632 伍晨薇 031502637 張檉 031502639 鄭秦 1.前言 任務分配是VV、ZQ、ZC負責前端開發,由JP和LL負責建庫和服務器。界面開發的教輔材料是《第一行代碼》,利用And…

Streamlit —使用數據應用程序更好地測試模型

介紹 (Introduction) We use all kinds of techniques from creating a very reliable validation set to using k-fold cross-validation or coming up with all sorts of fancy metrics to determine how good our model performs. However, nothing beats looking at the ra…

Spring MVC Boot Cloud 技術教程匯總(長期更新)

昨天我們發布了Java成神之路上的知識匯總,今天繼續。 Java成神之路技術整理(長期更新) 以下是Java技術棧微信公眾號發布的關于 Spring/ Spring MVC/ Spring Boot/ Spring Cloud 的技術干貨,本文長期更新。 Spring 系列 Java 必看的…

X Window系統

X Window系統 一種以位圖方式顯示的軟件窗口系統。誕生于1984,比Microsoft Windows要早。是一套獨立于內核的軟件 Linux上的X Window系統 X Window系統由三個基本元素組成:X Server、X Client和二者通信的通道。 X Server:是控制輸出及輸入…

冒名頂替上大學羅彩霞_什么是冒名頂替綜合癥,您如何克服?

冒名頂替上大學羅彩霞冒名頂替綜合癥 (Imposter Syndrome) Imposter Syndrome is a feeling of being a fraud or not being good enough to get the job done. Its common among software engineers, developers and designers working in tech companies, especially those n…

Linux命令----用戶管理

修改用戶密碼: sudo passwd (當前)用戶名  【sudo是super user do的簡寫,passwd是password的簡寫】 顯示當前正在操作系統的用戶:whoami   顯示當前登錄系統的用戶信息:who am i 注意: 普通…

lasso回歸和嶺回歸_如何計劃新產品和服務機會的回歸

lasso回歸和嶺回歸Marketers sometimes have to be creative to offer customers something new without the luxury of that new item being a brand-new product or built-from-scratch service. In fact, incrementally introducing features is familiar to marketers of c…

python代碼

原始字符串,不做任何特殊的處理 print("Newlines are indicated by \n")#Newlines are indicated by print(r"Newlines are indicated by \n")#Newlines are indicated by \n 格式輸出,轉化為字符串由format自動完成 ag…

Linux 設備管理和進程管理

設備管理 Linux系統中設備是用文件來表示的,每種設備都被抽象為設備文件的形式,這樣,就給應用程序一個一致的文件界面,方便應用程序和操作系統之間的通信。 設備文件集中放置在/dev目錄下,一般有幾千個,不…

樂高ev3涉及到的一些賽事_使您成為英雄的前五名開發者技能(提示:涉及LEGO)

樂高ev3涉及到的一些賽事Programming is like building something with LEGOs. Any developer can pick up a brand new LEGO set and build it following the instructions. This is very easy. Think of it as coding school assignments or entry level tutorials.編程就像用…

貝葉斯 定理_貝葉斯定理實際上是一個直觀的分數

貝葉斯 定理Bayes’ Theorem is one of the most known to the field of probability, and it is used often as a baseline model in machine learning. It is, however, too often memorized and chanted by people who don’t really know what P(B|E) P(E|B) * P(B) / P(E…

winfrom 點擊按鈕button彈框顯示顏色集

1.窗體托一個按鈕button; 2.單擊事件: 1 private void btnForeColor_Click(object sender, EventArgs e)2 {3 using (ColorDialog cdialog new ColorDialog())4 {5 cdialog.AnyColor true;6 …

JavaScript時間事件:setTimeout和setInterval

Programmers use timing events to delay the execution of certain code, or to repeat code at a specific interval.程序員使用時序事件來延遲某些代碼的執行,或以特定的時間間隔重復代碼。 There are two native functions in the JavaScript library used to …