完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>
標簽 > LINUX內(nèi)核
Linux是一種開源電腦操作系統(tǒng)內(nèi)核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。
Linux是一種開源電腦操作系統(tǒng)內(nèi)核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構(gòu)上提供自由免費的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,在計劃的早期有一些Minix 黑客提供了協(xié)助,而今天全球無數(shù)程序員正在為該計劃無償提供幫助。
Linux是一種開源電腦操作系統(tǒng)內(nèi)核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構(gòu)上提供自由免費的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,在計劃的早期有一些Minix 黑客提供了協(xié)助,而今天全球無數(shù)程序員正在為該計劃無償提供幫助。
主要子系統(tǒng)
系統(tǒng)調(diào)用接口
SCI 層提供了某些機制執(zhí)行從用戶空間到內(nèi)核的函數(shù)調(diào)用。正如前面討論的一樣,這個接口依賴于體系結(jié)構(gòu),甚至在相同的處理器家族內(nèi)也是如此。SCI 實際上是一個非常有用的函數(shù)調(diào)用多路復用和多路分解服務。在 。/linux/kernel 中您可以找到 SCI 的實現(xiàn),并在 。/linux/arch 中找到依賴于體系結(jié)構(gòu)的部分。
進程管理
進程管理的重點是進程的執(zhí)行。在內(nèi)核中,這些進程稱為線程,代表了單獨的處理器虛擬化(線程代碼、數(shù)據(jù)、堆棧和 CPU寄存器)。在用戶空間,通常使用進程 這個術語,不過 Linux 實現(xiàn)并沒有區(qū)分這兩個概念(進程和線程)。內(nèi)核通過 SCI 提供了一個應用程序編程接口(API)來創(chuàng)建一個新進程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函數(shù)),停止進程(kill、exit),并在它們之間進行通信和同步(signal 或者 POSⅨ 機制)。
進程管理還包括處理活動進程之間共享 CPU 的需求。內(nèi)核實現(xiàn)了一種新型的調(diào)度算法,不管有多少個線程在競爭 CPU,這種算法都可以在固定時間內(nèi)進行操作。這種算法就稱為 O⑴ 調(diào)度程序,這個名字就表示它調(diào)度多個線程所使用的時間和調(diào)度一個線程所使用的時間是相同的。O⑴ 調(diào)度程序也可以支持多處理器(稱為對稱多處理器或 SMP)。您可以在 。/linux/kernel 中找到進程管理的源代碼,在 。/linux/arch 中可以找到依賴于體系結(jié)構(gòu)的源代碼。
內(nèi)存管理
內(nèi)核所管理的另外一個重要資源是內(nèi)存。為了提高效率,如果由硬管理虛擬內(nèi)存,內(nèi)存是按照所謂的內(nèi)存頁 方式進行管理的(對于大部分體系結(jié)構(gòu)來說都是 4KB)。Linux 包括了管理可用內(nèi)存的方式,以及物理和虛擬映射所使用的硬件機制。
不過內(nèi)存管理要管理的可不止 4KB緩沖區(qū)。Linux 提供了對 4KB緩沖區(qū)的抽象,例如 slab 分配器。這種內(nèi)存管理模式使用 4KB緩沖區(qū)為基數(shù),然后從中分配結(jié)構(gòu),并跟蹤內(nèi)存頁使用情況,比如哪些內(nèi)存頁是滿的,哪些頁面沒有完全使用,哪些頁面為空。這樣就允許該模式根據(jù)系統(tǒng)需要來動態(tài)調(diào)整內(nèi)存使用。
為了支持多個用戶使用內(nèi)存,有時會出現(xiàn)可用內(nèi)存被消耗光的情況。由于這個原因,頁面可以移出內(nèi)存并放入磁盤中。這個過程稱為交換,因為頁面會被從內(nèi)存交換到硬盤上。內(nèi)存管理的源代碼可以在 。/linux/mm 中找到。
虛擬文件系統(tǒng)
虛擬文件系統(tǒng)(VFS)是 Linux 內(nèi)核中非常有用的一個方面,因為它為文件系統(tǒng)提供了一個通用的接口抽象。VFS 在 SCI 和內(nèi)核所支持的文件系統(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ū)緩存之下是設備驅(qū)動程序,它實現(xiàn)了特定物理設備的接口。
使用 PREEMPT_RT 在 Ubuntu 中構(gòu)建實時 Linux 內(nèi)核
盟通技術干貨構(gòu)建實時Linux內(nèi)核簡介盟通技術干貨Motrotech如果需要在Linux中實現(xiàn)實時計算性能,進而有效地將Linux轉(zhuǎn)變?yōu)镽TOS,那么大...
2024-04-12 標簽:UbuntuLINUX內(nèi)核preempt-rt 2413 0
eBPF動手實踐系列三:基于原生libbpf庫的eBPF編程改進方案簡析
在上一篇文章《eBPF動手實踐系列二:構(gòu)建基于純C語言的eBPF項目》中,我們初步實現(xiàn)了脫離內(nèi)核源碼進行純C語言eBPF項目的構(gòu)建。libbpf庫在早期...
2024-03-19 標簽:C語言LINUX內(nèi)核RPM 820 0
數(shù)字前端設計流程中,.lib 后綴的文件通常是 Synopsys Liberty 文件。這是一種描述單元時序、功耗等參數(shù)的文本文件。
2024-03-13 標簽:IC設計VIMLINUX內(nèi)核 1561 0
在前一節(jié)中,我們學習了buddy伙伴關系系統(tǒng),它適用于申請連續(xù)的大塊物理內(nèi)存;而有些時候,經(jīng)常需要申請和釋放單個頁幀。
2024-02-20 標簽:計數(shù)器CacheLINUX內(nèi)核 488 0
GDB是一個功能強大的源代碼級調(diào)試工具,它提供了多種基本功能,幫助程序員** **更好地理解程序的運行機制和定位問題** **。
2024-01-28 標簽:C++語言LINUX內(nèi)核GDB調(diào)試 1300 0
Linux內(nèi)核主要由以下幾個部分組成: 進程管理:Linux內(nèi)核負責管理和調(diào)度系統(tǒng)中的進程。它通過進程調(diào)度算法來決定哪個進程在什么時間運行以及如何分配系...
如何構(gòu)建APISIX基于DeepFlow的統(tǒng)一可觀測性能力呢?
隨著應用組件的可觀測性逐漸受到重視,Apache APISIX 引入插件機制豐富了可觀測數(shù)據(jù)源。
Docker 使用 cgroups(控制組)來實現(xiàn) CPU 隔離。
2024-01-15 標簽:cpuLINUX內(nèi)核Docker 514 0
我們的業(yè)務共使用 11 臺(阿里云)服務器,使用 SpringcloudAlibaba 構(gòu)建微服務集群, 共計 60 個微服務, 全部注冊在同一個 Na...
2024-01-13 標簽:JAVAJVMLINUX內(nèi)核 932 0
全國產(chǎn)!TI Sitara系列AM64x(雙核ARM)核心板硬件資料/原理圖/接口資源立即下載
類別:電子資料 2023-02-01 標簽:嵌入式arm開發(fā)板LINUX內(nèi)核
Linux內(nèi)核的裁剪以及移植過程的基本原理和詳細方法資料概述立即下載
類別:嵌入式技術論文 2018-08-31 標簽:LinuxARM920TLinux內(nèi)核
Linux內(nèi)核源代碼情景分析(全冊高清帶書簽)pdf下載立即下載
類別:嵌入式開發(fā) 2018-01-04 標簽:源代碼linux內(nèi)核
REDIce-Linux--靈活的實時Linux內(nèi)核立即下載
類別:嵌入式開發(fā) 2017-11-08 標簽:linuxlinux內(nèi)核
Linux內(nèi)核結(jié)構(gòu)詳解立即下載
類別:嵌入式開發(fā) 2017-11-08 標簽:linuxlinux內(nèi)核
類別:嵌入式開發(fā) 2017-11-07 標簽:linux內(nèi)核
類別:嵌入式開發(fā) 2017-11-07 標簽:linuxlinux內(nèi)核
詳解Linux內(nèi)核中進程上下文和中斷上下文立即下載
類別:嵌入式開發(fā) 2017-11-01 標簽:linux內(nèi)核操作模式
Linux內(nèi)核函數(shù)的魯棒性關聯(lián)立即下載
類別:嵌入式開發(fā) 2017-10-31 標簽:linux內(nèi)核
嵌入式Linux下的LCD驅(qū)動程序設計方案解析立即下載
類別:嵌入式開發(fā) 2017-10-30 標簽:lcdlinux內(nèi)核設備驅(qū)動程序
飛凌嵌入式4G/5G網(wǎng)卡自管理工具,你的守護進程專家
為了幫助用戶解決無法高效、穩(wěn)定地管理嵌入式設備上的無線模塊的問題,飛凌嵌入式精心打造了 4G/5G網(wǎng)卡自管理工具,旨在以更智能化的管理策略和更靈活的配置...
歡創(chuàng)播報 華為宣布鴻蒙內(nèi)核已超越Linux內(nèi)核
1 華為宣布鴻蒙內(nèi)核已超越Linux內(nèi)核 ? 6月21日,在華為開發(fā)者大會上, HarmonyOS NEXT(鴻蒙NEXT)——真正獨立于安卓和iOS的...
2024-06-27 標簽:華為LINUX內(nèi)核鴻蒙 825 0
算能全系列RISC-V處理器進入PLCT實驗室6.6內(nèi)核維護工程
近日,PLCT實驗室RISC-V內(nèi)核維護(RVLK)小隊確認,將與算能軟件團隊緊密合作,計劃在2024年10月之前完成算能SG2380、SG204x、S...
2024-05-22 標簽:處理器LINUX內(nèi)核RISC-V 1002 0
Android 15的首個開發(fā)者預覽版現(xiàn)已發(fā)布
Android 15 的首個開發(fā)者預覽版現(xiàn)已發(fā)布,以便各位開發(fā)者能與我們通力協(xié)作,打造更優(yōu)秀的 Android 平臺。
2024-03-12 標簽:AndroidLINUX內(nèi)核GPU芯片 911 0
超大規(guī)模數(shù)據(jù)中心采用三星FDP SSD降低存儲成本
主機數(shù)據(jù)放置技術一直是超大規(guī)模數(shù)據(jù)中心關注的話題,因為它影響所部署的SSD的總體擁有成本(TCO)。
2024-03-07 標簽:QoSSSDLINUX內(nèi)核 1897 0
?外部IO中斷介紹本篇文章以萬象奧科HD-RK3568-IOT評估板中GPIO30為例,介紹Linux內(nèi)核中斷的注冊方法,使用中斷的方式檢測GPIO30...
2023-11-03 標簽:GPIO評估板LINUX內(nèi)核 935 0
Linus Torvalds發(fā)布首個Linux6.6候選版
Linus Torvalds 宣布了即將發(fā)布的 Linux 6.6 內(nèi)核系列的首個 Release Candidate (RC)開發(fā)里程碑的公共測試版本...
2023-09-15 標簽:LinuxLINUX內(nèi)核 1182 0
高性能、低延遲的InfiniBand式網(wǎng)絡并不是唯一的選擇
正如我們喜歡指出的那樣,當談到高性能、低延遲的 InfiniBand 式網(wǎng)絡時,Nvidia 并不是唯一的選擇,自 20 世紀 90 年代末 Infin...
2023-08-27 標簽:以太網(wǎng)人工智能InfiniBand 1688 0
介紹rk3588和s922x的區(qū)別 在當前市場賣得最多的電視盒子中,兩顆芯片rk3588和s922x都非常受歡迎,因為它們在新一代芯片中都是當之無愧的佼...
2023-08-15 標簽:LINUX內(nèi)核Ubuntu系統(tǒng)RK3588 3525 0
編輯推薦廠商產(chǎn)品技術軟件/工具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 |