主頁 > 作業系統 > 基礎夯實:作業系統

基礎夯實:作業系統

2022-01-21 06:12:13 作業系統

我們之前介紹了 基礎資料結構和演算法 、計算機網路 ,接下來我們介紹 作業系統 基礎知識,

基礎資料結構和演算法、計算機網路回顧如下:

  1. 基礎夯實:基礎資料結構與演算法(一)
  2. 基礎夯實:基礎資料結構與演算法(二)
  3. 基礎夯實:計算機網路基礎

不怎么清楚的可以去瞅瞅,

作業系統簡介

作業系統(operating system,簡稱OS)是管理計算機硬體與軟體資源的計算機程式,

作業系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入設備與輸出設備、操作網路與管理檔案系統等基本事務,

作業系統也提供一個讓用戶與系統互動的操作界面,

  作業系統的型態非常多樣,不同機器安裝的作業系統可從簡單到復雜,可從非智能手機的嵌入式系統到超級電腦的大型作業系統,

許多作業系統制造者對它涵蓋范疇的定義也不盡一致,例如有些作業系統整合了圖形用戶界面,而有些僅使用命令列界面,而將圖形用戶界面視為一種非必要的應用程式,

  作業系統理論在計算機科學中,為歷史悠久而又活躍的分支;而作業系統的設計與實作則是軟體工業的基礎與內核,

現代作業系統由一個或多個處理器、主存、列印機、鍵盤、滑鼠、顯示幕、網路介面以及各種輸入/輸出設備構成,

計算機作業系統是一個復雜的系統,

   我們一般常見的作業系統主要有 Windows、Linux、FreeBSD 或 OS X ,這種帶有圖形界面的作業系統被稱為 圖形用戶界面(Graphical User Interface, GUI),

而基于文本、命令列的通常稱為 Shell,

  下面是我們所要探討的作業系統的部件

  作業系統所處的位置圖

  這是一個作業系統的簡化圖,最下面的是硬體,硬體包括芯片、電路板、磁盤、鍵盤、顯示幕等我們上面提到的設備,在硬體之上是軟體,

大部分計算機有兩種運行模式:內核態 和 用戶態,軟體中最基礎的部分是作業系統,它運行在 內核態 中,內核態也稱為 管態 和 核心態,它們都是作業系統的運行狀態,只不過是不同的叫法而已,

  作業系統具有硬體的訪問權,可以執行機器能夠運行的任何指令,軟體的其余部分運行在 用戶態 下,

  用戶介面程式(shell 或者 GUI)處于用戶態中,并且它們位于用戶態的最低層,允許用戶運行其他程式,例如 Web 瀏覽器、電子郵件閱讀器、音樂播放器等,

而且,越靠近用戶態的應用程式越容易撰寫,如果你不喜歡某個電子郵件閱讀器你可以重新寫一個或者換一個,但你不能自行寫一個作業系統或者是中斷處理程式,

  這個程式由硬體保護,防止外部對其進行修改,

計算機組件

作業系統與運行作業系統的內核硬體關系密切,作業系統擴展了計算機指令集并管理計算機的資源,

因此,作業系統因此必須足夠了解硬體的運行,這里我們先簡要介紹一下現代計算機中的計算機硬體,

 簡單個人計算機組件圖

中央處理器(CPU)

中央處理器(central processing unit,簡稱CPU)作為計算機系統的運算和控制核心,是資訊處理、程式運行的最終執行單元,

CPU 是計算機的大腦,它主要和記憶體進行互動,從記憶體中提取指令并執行它,

一個 CPU 的執行周期是從記憶體中提取第一條指令、解碼并決定它的型別和運算元,執行,然后再提取、解碼執行后續的指令,重復該回圈直到程式運行完畢,

  在計算機體系結構中,CPU 是對計算機的所有硬體資源(如存盤器、輸入輸出單元) 進行控制調配、執行通用運算的核心硬體單元,

CPU 是計算機的運算和控制核心,計算機系統中所有軟體層的操作,最終都將通過指令集映射為CPU的操作, 

 中央處理器(CPU)圖解

 記憶體

計算機中第二個主要的組件就是記憶體,

理想情況下,記憶體應該非常快速(比執行一條指令要快,從而不會拖慢 CPU 執行效率),而且足夠大且便宜,但是目前的技術手段無法滿足三者的需求,

于是采用了不同的處理方式,存盤器系統采用一種分層次的結構

 存盤層次結構圖

頂層的存盤器速度最高,但是容量最小,成本非常高,層級結構越向下,其訪問效率越慢,容量越大,但是造價也就越便宜,

我們逐一介紹一下上面的暫存器、高速快取、主存、磁盤

1、暫存器

  存盤器的頂層是 CPU 中的暫存器,它們用和 CPU 一樣的材料制成,所以和 CPU 一樣快,

程式必須在軟體中自行管理這些暫存器(即決定如何使用它們),

 暫存器圖

2、高速快取

位于暫存器下面的是高速快取,它多數由硬體控制,

  高速快取儲是存在于主存與CPU之間的一級存盤器, 由靜態存盤芯片(SRAM)組成,容量比較小但速度比主存高得多, 接近于CPU的速度,

其原始意義是指存取速度比一般隨機存取記憶體(RAM)來得快的一種RAM,一般而言它不像系統主記憶體那樣使用DRAM技術,而使用昂貴但較快速的SRAM技術,也有快取記憶體的名稱,   在計算機存盤系統的層次結構中,是介于中央處理器和主存盤器之間的高速小容量存盤器,它和主存盤器一起構成一級的存盤器,高速快取和主存盤器之間資訊的調度和傳送是由硬體自動進行的, 高速快取最重要的技術指標是它的命中率,

3、主存

   在上面的層次結構中再下一層是主存,這是記憶體系統的主力軍,主存通常叫做 RAM,由于 1950 年代和 1960 年代的計算機使用微小的可磁化鐵氧體磁芯作為主存盤器,

因此舊時有時將其稱為核心存盤器,所有不能再高速快取中得到滿足的記憶體訪問請求都會轉往主存中,

  主存盤器一般采用半導體存盤器,與輔助存盤器相比有容量小、讀寫速度快、價格高等特點,

計算機中的主存盤器主要由存盤體、控制線路、地址暫存器、資料暫存器和地址譯碼電路五部分組成,如下圖所示:

   其中,存盤體是存盤單元的集合,用來存放資料;地址譯碼驅動電路包含譯碼器和驅動器兩部分,

譯碼器將地址總線輸入的地址碼轉換成與之對應的譯碼輸出線上的有效電平,以表示選中了某一存盤單元,然后由驅動器提供驅動電流去驅動相應的讀寫電路,

完成對被選中存盤單元的讀寫操作;I/O和讀寫電路包括讀出放大器、寫入電路和讀寫控制電路,用以完成被選中存盤單元中各位的讀出和寫入操作,

4、磁盤

  下一個層次是磁盤(硬碟),磁盤同 RAM 相比,每個二進制位的成本低了兩個數量級,而且經常也有兩個數量級大的容量,

磁盤唯一的問題是隨機訪問資料時間大約慢了三個數量級,磁盤訪問慢的原因是因為磁盤的構造不同

 磁盤驅動器的構造

一個磁盤(如一個 1T 的機械硬碟)由多個盤片(如下圖中的 0 號盤片)疊加而成,

盤片的表面涂有磁性物質,這些磁性物質用來記錄二進制資料,因為正反兩面都可涂上磁性物質,故一個盤片可能會有兩個盤面,

 

 每個盤片被劃分為一個個磁道,每個磁道又劃分為一個個扇區, 其中,最內側磁道上的扇區面積最小,因此資料密度最大,如下圖:

 

每個盤面對應一個磁頭,所有的磁頭都是連在同一個磁臂上的,因此所有磁頭只能“共進退”,

所有盤面中相對位置相同的磁道組成柱面,如下圖,

I/O 設備

I/O 就是”輸入/輸出“(Input/Output)

I/O設備就是可以將資料輸入到計算機,或者可以接收計算機輸出資料的外設,屬于計算機中的硬體部分,

 

IO設備按照使用特征分類:

  1. 人機互動類外部設備(資料傳輸速度慢)
  2. 存盤設備(資料傳輸資料快
  3. 網路通信設備(資料傳輸速度介于上述二者之間,在于網路設備情況)

 

IO設備按照傳輸速度分類:

  1. 低速設備
  2. 中速設備
  3. 高速設備

 

 IO設備按照交換資訊的單位分類:

  1. 塊設備(傳輸速度較高,對它可隨機讀寫任意一塊)
  2. 字符設備(傳輸速度較慢,不可以隨機讀寫任意一塊,在輸入輸出時常采用中斷驅動方式:一種IO控制方式)

 

這一塊單獨內部比較多,單獨拎出來都能幾萬字,這里就不做過多的敘述,

下面整理了一下主要知識點,需要了解的可以點擊鏈接或者百度查詢相關文獻進行學習

可點擊 作業系統之IO設備詳解 了解詳情,這位博主寫的很詳細,

  • I/O控制器
    • I/O設備的機械部件
    • I/O設備的電子部件(I/O控制器)
    • I/O控制器的組成
    • 記憶體映像 I/O VS 暫存器獨立編址
  • I/O控制方式
    • 程式直接控制方式
    • 中斷驅動方式
    • DMA方式
    • DMA控制器
    • 通道控制方式
  • I/O軟體層級結構
    • 用戶層軟體
    • 設備獨立性軟體
    • 為何不同的設備需要不同的設備驅動程式
    • 設備驅動程式
    • 中斷處理程式
  • 核心子系統
    • 這個功能要在哪個層次實作
    • I/O調度
    • 設備保護
  • 假脫機技術(SPOOLing技術)

  • 設備的分配與回收
    • 設備分配是應考慮的因素
    • 靜態分配和動態分配
    • 設備分配管理中的資料結構
    • 設備分配的步驟
    • 設備分配步驟的改進

作業系統的主要功能

作業系統主要功能有以下5個方面:處理機管理功能存盤器管理功能設備管理功能檔案管理功能作業系統和用戶之間的介面功能,簡單拓撲圖如下:

 

處理機管理功能

處理機制管理功能包含:行程控制、行程同步、行程通信、調度

1、行程控制

主要是為作業創建行程、撤銷(終止)已結束的行程,以及控制行程在運行程序中的狀態轉換,

 

行程控制原語:

  • 創建行程原語
  • 撤銷行程原語
  • 阻塞行程原語
  • 喚醒行程原語

行程創建

創建一個具有指定識別符號的行程,建立行程的PCB結構,

 

行程撤銷

回收行程資源

行程阻塞

行程喚醒

2、行程同步

主要任務是為多個行程(含執行緒)的運行進行協調,

  1. 行程互斥方式:這是指諸行程在對臨界資源進行訪問時,應采用互斥方式,
  2. 行程同步方式:指在相互合作去完成共同任務的諸行程間,由同步機構對它們的執行次序加以協調,(信號量機制)

 

3、行程通信

  多個行程在活動程序中彼此間會發生相互依賴或者相互制約的關系,為保證系統中所有的行程都能正常活動,就必須設定行程同步機制,它分為同步方式與互斥方式,

相互合作的行程之間往往需要交換資訊,為此,作業系統需要提供通信機制,

行程通信有三種方法 ,分別是共享存盤管道通信訊息傳遞

3.1、共享存盤

 

  兩個行程對共享空間的訪問必須是互斥的(互斥訪問通過作業系統提供的工具實作),
作業系統只負責提供共享空間和同步互斥工具(如P、V操作)

基于資料結構的共享: 比如共享空間里只能放個長度為10的陣列,這種共享方式速度慢、限制多,是一種低級通信方式

基于存盤區的共享: 在記憶體中畫出一塊共享存盤區,資料的形式、存放位置都由行程控制,而不是作業系統,相比之下,這種共享方式速度更快,是一種高級通信方式,

 

3.2、管道通信

1.管道只能采用半雙工通信,某一時間段內只能實作單向的傳輸,如果要實作雙向同時通信,則需要設定兩個管道,

2.各行程要互斥地訪問管道,

3.資料以字符流的形式寫入管道,當管道寫滿時,寫行程的 write(系統呼叫將被阻塞,等待讀行程將資料取走,當讀行程將資料全部取走后,管道變空,此時讀行程的read()系統呼叫將被阻塞,

4.如果沒寫滿,就不允許讀,如果沒讀空,就不允許寫,

5.資料一旦被讀岀,就從管道中被拋棄,這就意味著讀行程最多只能有一個,否則可能會有讀錯資料的情況

 

 

3.3、訊息傳遞

 行程間的資料交換以格式化的訊息( Message)為單位,行程通過作業系統提供的“發送訊息/接收訊息”兩個原語進行資料交換,

 

4、調度

包括作業調度行程調度

作業調度是通過一定的演算法策略從外存上將作業放入記憶體,分別為它們創建行程,分配資源,使之處于就緒狀態;

行程調度是從就緒狀態的行程佇列中選擇一定的行程為之分配處理機,使它可以運行,

存盤器管理功能

 存盤器管理分為4個功能,分別是:記憶體分配、記憶體保護、地址映射、記憶體擴充

 記憶體分配

  記憶體分配的主要任務是為每道程式分配一定的記憶體空間,為此作業系統必須記錄整個記憶體的使用情況,

處理用戶提出的申請,按照某種策略實施分配,接收系統或用戶釋放的記憶體空間,

由于記憶體是寶貴的系統資源,在制定分配策略時應該如何考慮提高記憶體的利用率,減少記憶體浪費,

 記憶體保護

 不同用戶的程式都放在同一個記憶體中,就必須要保證它們在各自的記憶體空間中活動,不能相互干擾,更不能侵占作業系統的空間,為此需要建立記憶體保護機制,

記憶體保護有兩種,

一是各個用戶行程只能在自己的記憶體空間中運行,不得使用其他非共享用戶行程的記憶體空間;

二是用戶行程不得訪問作業系統的程式和資料,

常見的記憶體保護機制是設定兩個界限暫存器,標志可使用空間的上界和下界,系統對每條指令所要訪問的地址進行越界檢查,

地址映射

CPU在執行用戶程式時,要從記憶體中取出指令或資料,為此就必須把所用的相對地址(或稱邏輯地址)轉換成記憶體的物理地址,

編譯和鏈接所得到的可執行檔案,其程式地址是從0開始的,需要作業系統將從0開始的邏輯地址轉換為物理地址,需要硬體的支持,

記憶體擴充

指通過虛擬存盤技術,從邏輯上擴充存盤器的大小,使更多的用戶行程可以并發執行,

常見的機制包括:請求調入和置換功能,

請求調入允許在僅裝入部分程式和資料的情況下就啟動該程式的執行,當所需要的指令或者資料不在記憶體空間的時候,通過向OS發出請求,由OS將所需要的部分調入記憶體,

置換則是指,允許將記憶體中暫時不用的程式和資料移至硬碟,以騰出記憶體空間,

  一個系統中的記憶體容量是有限的,不能隨意擴充其大小,然而,當對記憶體“求大于供”的局面時,就需要采取虛擬存盤技術,

將程式當前使用的部分放在記憶體,而其余部分放在磁盤上,以后根據程式執行時的要求和記憶體當時使用的情況,隨機地將所需部分調入記憶體;

必要時還要把已分配出去的記憶體回收,供其他程式使用(記憶體置換),

設備管理功能

  總體來說,設備管理內容包括,回應行程的IO請求、為行程分配IO設備,完成IO操作;提高IO速度,提高CPU和IO設備的利用率,

設備的分配和驅動由作業系統負責,即設備管理的主要功能包括:緩沖管理,設備分配,設備驅動和設備無關性

  • 緩沖管理:通過在CPU和IO設備之間設定緩沖,有效解決IO設備和CPU的速度不匹配問題,提高CPU的利用率,提高系統的吞吐量,常見策略包括單緩沖、雙緩沖以及緩沖池等,
  • 設備分配:根據用戶IO請求、系統現有資源狀況以及設備分配策略來分配設備,同時還需要考慮,設備分配完后,系統是否安全等問題,
  • 設備驅動:檢查IO請求是否合理,了解設備狀態,讀取有關的引數和設定設備的作業方式,然后向設備控制器發出IO命令,啟動IO設備完成相應IO操作,回應中斷請求并呼叫相應中斷處理程式進行處理,
  • 設備無關性:設備無關性又稱設備獨立性,即用戶撰寫的程式與實際使用的物理設備無關,由作業系統把用戶程式中使用的邏輯設備映射到物理設備,

檔案管理功能

檔案管理功能包括:檔案存盤空間的管理檔案操作的一般管理目錄管理檔案的讀寫管理和存取控制

  • 檔案存盤空間的管理:系統檔案和用戶檔案都要放在磁盤上,為此,需要由檔案系統對所有檔案以及檔案的存盤空間進行統一管理:為新檔案分配必要的外存空間,回收釋放的檔案空間,提高外存的利用率,
  • 檔案的一般管理:檔案操作的一般管理包括:檔案的創建、洗掉、打開、關閉等,
  • 目錄管理:為每個檔案建立一個目錄項,以記錄檔案的詳細情況,并通過對目錄項的管理提供檔案的共享以及快速的目錄查詢等功能,提高檔案檢索速度,
  • 檔案的讀寫管理和保護:根據用戶的請求,從外存中讀取資料或者將資料寫入外存中,為了保證檔案資訊的安全性,防止未授權用戶的存取或破壞,對各個檔案(包括目錄)進行存取控制

提供作業系統與用戶之間的介面功能

  用戶上機操作時直接使用到作業系統提供的用戶介面,作業系統對外提供多種服務,使得用戶可以方便、有效地使用計算機硬體和運行自己的程式,

使得軟體開發變的容易、高效,現代作業系統提供三種用戶介面:程式用戶介面命令列介面以及圖形用戶介面

程式用戶介面

主要為用戶的程式使用作業系統的服務提供、訪問系統資源提供便利,它由一組系統呼叫組成,是用戶程式取得系統服務的唯一途徑,

  也稱系統呼叫介面,系統呼叫是作業系統內核與用戶程式、應用程式之間的介面,它位于作業系統核心層的最外層,

所有內核之外的程式都必須經由系統呼叫才能獲得作業系統的服務,系統呼叫只能在程式中使用,不能直接作為命令在終端上輸入和執行,

由于系統呼叫能夠改變處理機的執行狀態,從用戶態變為核心態,直接進入內核執行,所以執行效率很高,

用戶在自己程式中使用系統呼叫,從而獲取系統提供的眾多基層服務,

命令列介面

  在提示符之后用戶從鍵盤上輸入命令,命令解釋程式接收并解釋這些命令,然后把它們傳遞給作業系統內部程式,執行相應功能,

命令列介面不屬于作業系統內核,相應的程式是在用戶空間中運行的,

圖形用戶介面

  就是通過圖形化的操作界面,用容易識別的各種圖示來將系統的各項功能、各種應用程式和檔案直觀表現出來,

以滑鼠取代命令的鍵入等,

  用戶利用滑鼠,視窗,選單,圖示等圖形用戶界面工具,可以直觀、方便,有效地使用系統服務和各種應用程式及實用工具,

圖形用戶介面也不屬于作業系統內核,相應的程式是在用戶空間中運行的,

 

參考文獻

作業系統(計算機管理控制程式)

中央處理器(CPU)

作業系統之IO設備詳解

 

歡迎關注訂閱微信公眾號【熊澤有話說】,更多好玩易學知識等你來取
作者:熊澤-學習中的苦與樂
公眾號:熊澤有話說

QQ群:711838388
出處:https://www.cnblogs.com/xiongze520/p/15825185.html
您可以隨意轉載、摘錄,但請在文章內注明作者和原文鏈接,  

 

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/417031.html

標籤:其他

上一篇:針對嵌入式系統的telnet登錄系統

下一篇:使用lodash或JS通過另一個陣列中匹配字串的索引對多個陣列進行排序或排序

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more