完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>
標簽 > LINUX內核
Linux是一種開源電腦操作系統(tǒng)內核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。
Linux是一種開源電腦操作系統(tǒng)內核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構上提供自由免費的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,在計劃的早期有一些Minix 黑客提供了協(xié)助,而今天全球無數(shù)程序員正在為該計劃無償提供幫助。
Linux是一種開源電腦操作系統(tǒng)內核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構上提供自由免費的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,在計劃的早期有一些Minix 黑客提供了協(xié)助,而今天全球無數(shù)程序員正在為該計劃無償提供幫助。
主要子系統(tǒng)
系統(tǒng)調用接口
SCI 層提供了某些機制執(zhí)行從用戶空間到內核的函數(shù)調用。正如前面討論的一樣,這個接口依賴于體系結構,甚至在相同的處理器家族內也是如此。SCI 實際上是一個非常有用的函數(shù)調用多路復用和多路分解服務。在 。/linux/kernel 中您可以找到 SCI 的實現(xiàn),并在 。/linux/arch 中找到依賴于體系結構的部分。
進程管理
進程管理的重點是進程的執(zhí)行。在內核中,這些進程稱為線程,代表了單獨的處理器虛擬化(線程代碼、數(shù)據(jù)、堆棧和 CPU寄存器)。在用戶空間,通常使用進程 這個術語,不過 Linux 實現(xiàn)并沒有區(qū)分這兩個概念(進程和線程)。內核通過 SCI 提供了一個應用程序編程接口(API)來創(chuàng)建一個新進程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函數(shù)),停止進程(kill、exit),并在它們之間進行通信和同步(signal 或者 POSⅨ 機制)。
進程管理還包括處理活動進程之間共享 CPU 的需求。內核實現(xiàn)了一種新型的調度算法,不管有多少個線程在競爭 CPU,這種算法都可以在固定時間內進行操作。這種算法就稱為 O⑴ 調度程序,這個名字就表示它調度多個線程所使用的時間和調度一個線程所使用的時間是相同的。O⑴ 調度程序也可以支持多處理器(稱為對稱多處理器或 SMP)。您可以在 。/linux/kernel 中找到進程管理的源代碼,在 。/linux/arch 中可以找到依賴于體系結構的源代碼。
內存管理
內核所管理的另外一個重要資源是內存。為了提高效率,如果由硬管理虛擬內存,內存是按照所謂的內存頁 方式進行管理的(對于大部分體系結構來說都是 4KB)。Linux 包括了管理可用內存的方式,以及物理和虛擬映射所使用的硬件機制。
不過內存管理要管理的可不止 4KB緩沖區(qū)。Linux 提供了對 4KB緩沖區(qū)的抽象,例如 slab 分配器。這種內存管理模式使用 4KB緩沖區(qū)為基數(shù),然后從中分配結構,并跟蹤內存頁使用情況,比如哪些內存頁是滿的,哪些頁面沒有完全使用,哪些頁面為空。這樣就允許該模式根據(jù)系統(tǒng)需要來動態(tài)調整內存使用。
為了支持多個用戶使用內存,有時會出現(xiàn)可用內存被消耗光的情況。由于這個原因,頁面可以移出內存并放入磁盤中。這個過程稱為交換,因為頁面會被從內存交換到硬盤上。內存管理的源代碼可以在 。/linux/mm 中找到。
虛擬文件系統(tǒng)
虛擬文件系統(tǒng)(VFS)是 Linux 內核中非常有用的一個方面,因為它為文件系統(tǒng)提供了一個通用的接口抽象。VFS 在 SCI 和內核所支持的文件系統(tǒng)之間提供了一個交換層。
VFS 在用戶和文件系統(tǒng)之間提供了一個交換層
在 VFS 上面,是對諸如 open、close、read 和 write 之類的函數(shù)的一個通用 API 抽象。在 VFS 下面是文件系統(tǒng)抽象,它定義了上層函數(shù)的實現(xiàn)方式。它們是給定文件系統(tǒng)(超過 50 個)的插件。文件系統(tǒng)的源代碼可以在 。/linux/fs 中找到。
文件系統(tǒng)層之下是緩沖區(qū)緩存,它為文件系統(tǒng)層提供了一個通用函數(shù)集(與具體文件系統(tǒng)無關)。這個緩存層通過將數(shù)據(jù)保留一段時間(或者隨即預先讀取數(shù)據(jù)以便在需要是就可用)優(yōu)化了對物理設備的訪問。緩沖區(qū)緩存之下是設備驅動程序,它實現(xiàn)了特定物理設備的接口。
nc是netcat的簡寫,是一個功能強大的網(wǎng)絡工具,其功能是用于掃描與連接指定端口,有著網(wǎng)絡界的瑞士軍刀美稱。
2023-08-16 標簽:Linux系統(tǒng)UDP協(xié)議SSH 1.7萬 0
i2c-tools工具是一個專門調試i2c的,開源,可獲取掛載的設備及設備地址,還可以讀寫I2C設備寄存器。
Linux中一個基本命令是ls。沒有這個命令,我們會在瀏覽目錄條目時會遇到困難。這個命令必須被每個學習Linux的人知道。
2023-07-21 標簽:Linux系統(tǒng)LINUX內核 1.0萬 0
Qt應用程序出現(xiàn)卡頓的現(xiàn)象怎么解決呢
在使用Qt完成項目開發(fā)后,需要將其運行在嵌入式linux平臺上,在設備啟動后,經uboot引導和linux內核后,直接進入Qt應用程序。
如何在眾多Linux內核版本中選擇最適合你最穩(wěn)當?shù)囊粋€版本?
Linux Kernel 的穩(wěn)定分支維護者 Greg Kroah-Hartman 近日在其個人博客上談及了關于穩(wěn)定內核版本的選擇。Kroah-Hartm...
AOSP Android11系統(tǒng)源碼和內核源碼簡析
AOSP源碼中并不包括內核源碼,需要單獨下載,內核源碼有很多版本,比如common是通用的Linux內核,msm是用于使用高通MSM芯片的Android...
一款支持弱口令爆破的內網(wǎng)資產探測漏洞掃描工具SweetBabyScan
輕量級內網(wǎng)資產探測漏洞掃描工具:SweetBabyScan,是一款支持弱口令爆破的內網(wǎng)資產探測漏洞掃描工具,集成了Xray與Nuclei的Poc
Linux內核的DL調度器的細節(jié)和怎么樣使用DL調度器?
Linux內核的DL調度器是一個全局EDF調度器,它主要針對有deadline限制的sporadic任務。注意:這些術語已經在本系列文章的第一部分中說明...
在發(fā)布會上,華為官方用了很多專業(yè)名詞來進行功能解釋,大伙也會和我一樣有些聽不懂吧,在這種情況下,不論是吹噓還是詆毀都不在靠譜的頻道上。接下來小編整理了一...
在現(xiàn)代操作系統(tǒng)里,同一時間可能有多個內核執(zhí)行流在執(zhí)行,因此內核其實象多進程多線程編程一樣也需要一些同步機制來同步各執(zhí)行單元對共享數(shù)據(jù)的訪問。尤其是在多處...
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構上提供自由免費的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,在計...
兩款操作系統(tǒng)從底層上來說確實具備一定的相似性,但是從定位以及未來發(fā)展前景上來說,鴻蒙OS擁有比阿里YunOS更廣闊的發(fā)展前進。YunOS目前已經更名為A...
在操作系統(tǒng)引入了進程概念,進程成為調度實體后,系統(tǒng)就具備了并發(fā)執(zhí)行多個進程的能力,但也導致了系統(tǒng)中各個進程之間的資源競爭和共享。另外,由于中斷、異常機...
如何使用gobpf和uprobe來為Go程序構建函數(shù)參數(shù)跟蹤程序
這是本系列文章的第一篇,講述了我們如何在生產環(huán)境中使用 eBPF 調試應用程序而無需重新編譯/重新部署。這篇文章介紹了如何使用 gobpf 和 upro...
2021-04-03 標簽:LINUX內核函數(shù)參數(shù)BPF 5225 0
【Linux 從頭學】是什么這兩年多以來,我的本職工作重心一直是在 x86 Linux 系統(tǒng)這一塊,從驅動到中間層,再到應用層的開發(fā)。 隨著內容的不斷擴...
介紹rk3588和s922x的區(qū)別 在當前市場賣得最多的電視盒子中,兩顆芯片rk3588和s922x都非常受歡迎,因為它們在新一代芯片中都是當之無愧的佼...
2023-08-15 標簽:LINUX內核Ubuntu系統(tǒng)RK3588 4271 0
編輯推薦廠商產品技術軟件/工具OS/語言教程專題
電機控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機 | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機 | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進電機 | SPWM | 充電樁 | IPM | 機器視覺 | 無人機 | 三菱電機 | ST |
伺服電機 | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國民技術 | Microchip |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |