完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>
標(biāo)簽 > LINUX內(nèi)核
Linux是一種開源電腦操作系統(tǒng)內(nèi)核。它是一個(gè)用C語(yǔ)言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。
Linux是一種開源電腦操作系統(tǒng)內(nèi)核。它是一個(gè)用C語(yǔ)言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構(gòu)上提供自由免費(fèi)的類Unix操作系統(tǒng)而開發(fā)的。該計(jì)劃開始于1991年,在計(jì)劃的早期有一些Minix 黑客提供了協(xié)助,而今天全球無(wú)數(shù)程序員正在為該計(jì)劃無(wú)償提供幫助。
Linux是一種開源電腦操作系統(tǒng)內(nèi)核。它是一個(gè)用C語(yǔ)言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構(gòu)上提供自由免費(fèi)的類Unix操作系統(tǒng)而開發(fā)的。該計(jì)劃開始于1991年,在計(jì)劃的早期有一些Minix 黑客提供了協(xié)助,而今天全球無(wú)數(shù)程序員正在為該計(jì)劃無(wú)償提供幫助。
主要子系統(tǒng)
系統(tǒng)調(diào)用接口
SCI 層提供了某些機(jī)制執(zhí)行從用戶空間到內(nèi)核的函數(shù)調(diào)用。正如前面討論的一樣,這個(gè)接口依賴于體系結(jié)構(gòu),甚至在相同的處理器家族內(nèi)也是如此。SCI 實(shí)際上是一個(gè)非常有用的函數(shù)調(diào)用多路復(fù)用和多路分解服務(wù)。在 。/linux/kernel 中您可以找到 SCI 的實(shí)現(xiàn),并在 。/linux/arch 中找到依賴于體系結(jié)構(gòu)的部分。
進(jìn)程管理
進(jìn)程管理的重點(diǎn)是進(jìn)程的執(zhí)行。在內(nèi)核中,這些進(jìn)程稱為線程,代表了單獨(dú)的處理器虛擬化(線程代碼、數(shù)據(jù)、堆棧和 CPU寄存器)。在用戶空間,通常使用進(jìn)程 這個(gè)術(shù)語(yǔ),不過(guò) Linux 實(shí)現(xiàn)并沒(méi)有區(qū)分這兩個(gè)概念(進(jìn)程和線程)。內(nèi)核通過(guò) SCI 提供了一個(gè)應(yīng)用程序編程接口(API)來(lái)創(chuàng)建一個(gè)新進(jìn)程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函數(shù)),停止進(jìn)程(kill、exit),并在它們之間進(jìn)行通信和同步(signal 或者 POSⅨ 機(jī)制)。
進(jìn)程管理還包括處理活動(dòng)進(jìn)程之間共享 CPU 的需求。內(nèi)核實(shí)現(xiàn)了一種新型的調(diào)度算法,不管有多少個(gè)線程在競(jìng)爭(zhēng) CPU,這種算法都可以在固定時(shí)間內(nèi)進(jìn)行操作。這種算法就稱為 O⑴ 調(diào)度程序,這個(gè)名字就表示它調(diào)度多個(gè)線程所使用的時(shí)間和調(diào)度一個(gè)線程所使用的時(shí)間是相同的。O⑴ 調(diào)度程序也可以支持多處理器(稱為對(duì)稱多處理器或 SMP)。您可以在 。/linux/kernel 中找到進(jìn)程管理的源代碼,在 。/linux/arch 中可以找到依賴于體系結(jié)構(gòu)的源代碼。
內(nèi)存管理
內(nèi)核所管理的另外一個(gè)重要資源是內(nèi)存。為了提高效率,如果由硬管理虛擬內(nèi)存,內(nèi)存是按照所謂的內(nèi)存頁(yè) 方式進(jìn)行管理的(對(duì)于大部分體系結(jié)構(gòu)來(lái)說(shuō)都是 4KB)。Linux 包括了管理可用內(nèi)存的方式,以及物理和虛擬映射所使用的硬件機(jī)制。
不過(guò)內(nèi)存管理要管理的可不止 4KB緩沖區(qū)。Linux 提供了對(duì) 4KB緩沖區(qū)的抽象,例如 slab 分配器。這種內(nèi)存管理模式使用 4KB緩沖區(qū)為基數(shù),然后從中分配結(jié)構(gòu),并跟蹤內(nèi)存頁(yè)使用情況,比如哪些內(nèi)存頁(yè)是滿的,哪些頁(yè)面沒(méi)有完全使用,哪些頁(yè)面為空。這樣就允許該模式根據(jù)系統(tǒng)需要來(lái)動(dòng)態(tài)調(diào)整內(nèi)存使用。
為了支持多個(gè)用戶使用內(nèi)存,有時(shí)會(huì)出現(xiàn)可用內(nèi)存被消耗光的情況。由于這個(gè)原因,頁(yè)面可以移出內(nèi)存并放入磁盤中。這個(gè)過(guò)程稱為交換,因?yàn)轫?yè)面會(huì)被從內(nèi)存交換到硬盤上。內(nèi)存管理的源代碼可以在 。/linux/mm 中找到。
虛擬文件系統(tǒng)
虛擬文件系統(tǒng)(VFS)是 Linux 內(nèi)核中非常有用的一個(gè)方面,因?yàn)樗鼮槲募到y(tǒng)提供了一個(gè)通用的接口抽象。VFS 在 SCI 和內(nèi)核所支持的文件系統(tǒng)之間提供了一個(gè)交換層。
VFS 在用戶和文件系統(tǒng)之間提供了一個(gè)交換層
在 VFS 上面,是對(duì)諸如 open、close、read 和 write 之類的函數(shù)的一個(gè)通用 API 抽象。在 VFS 下面是文件系統(tǒng)抽象,它定義了上層函數(shù)的實(shí)現(xiàn)方式。它們是給定文件系統(tǒng)(超過(guò) 50 個(gè))的插件。文件系統(tǒng)的源代碼可以在 。/linux/fs 中找到。
文件系統(tǒng)層之下是緩沖區(qū)緩存,它為文件系統(tǒng)層提供了一個(gè)通用函數(shù)集(與具體文件系統(tǒng)無(wú)關(guān))。這個(gè)緩存層通過(guò)將數(shù)據(jù)保留一段時(shí)間(或者隨即預(yù)先讀取數(shù)據(jù)以便在需要是就可用)優(yōu)化了對(duì)物理設(shè)備的訪問(wèn)。緩沖區(qū)緩存之下是設(shè)備驅(qū)動(dòng)程序,它實(shí)現(xiàn)了特定物理設(shè)備的接口。
分享一個(gè)非常實(shí)用且強(qiáng)大的Linux nc命令
nc是netcat的簡(jiǎn)寫,是一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)工具,其功能是用于掃描與連接指定端口,有著網(wǎng)絡(luò)界的瑞士軍刀美稱。
2023-08-16 標(biāo)簽:Linux系統(tǒng)UDP協(xié)議SSH 1.5萬(wàn) 0
i2c-tools工具是一個(gè)專門調(diào)試i2c的,開源,可獲取掛載的設(shè)備及設(shè)備地址,還可以讀寫I2C設(shè)備寄存器。
2022-11-17 標(biāo)簽:I2C總線LINUX內(nèi)核I2C接口 9849 0
Linux中一個(gè)基本命令是ls。沒(méi)有這個(gè)命令,我們會(huì)在瀏覽目錄條目時(shí)會(huì)遇到困難。這個(gè)命令必須被每個(gè)學(xué)習(xí)Linux的人知道。
2023-07-21 標(biāo)簽:Linux系統(tǒng)LINUX內(nèi)核 9055 0
Qt應(yīng)用程序出現(xiàn)卡頓的現(xiàn)象怎么解決呢
在使用Qt完成項(xiàng)目開發(fā)后,需要將其運(yùn)行在嵌入式linux平臺(tái)上,在設(shè)備啟動(dòng)后,經(jīng)uboot引導(dǎo)和linux內(nèi)核后,直接進(jìn)入Qt應(yīng)用程序。
2022-09-23 標(biāo)簽:嵌入式UbootLINUX內(nèi)核 8659 0
如何在眾多Linux內(nèi)核版本中選擇最適合你最穩(wěn)當(dāng)?shù)囊粋€(gè)版本?
Linux Kernel 的穩(wěn)定分支維護(hù)者 Greg Kroah-Hartman 近日在其個(gè)人博客上談及了關(guān)于穩(wěn)定內(nèi)核版本的選擇。Kroah-Hartm...
2018-09-01 標(biāo)簽:內(nèi)核LinuxLinux內(nèi)核 6176 0
AOSP Android11系統(tǒng)源碼和內(nèi)核源碼簡(jiǎn)析
AOSP源碼中并不包括內(nèi)核源碼,需要單獨(dú)下載,內(nèi)核源碼有很多版本,比如common是通用的Linux內(nèi)核,msm是用于使用高通MSM芯片的Android...
2023-01-29 標(biāo)簽:AndroidLINUX內(nèi)核msm芯片 5656 0
Linux內(nèi)核的DL調(diào)度器的細(xì)節(jié)和怎么樣使用DL調(diào)度器?
Linux內(nèi)核的DL調(diào)度器是一個(gè)全局EDF調(diào)度器,它主要針對(duì)有deadline限制的sporadic任務(wù)。注意:這些術(shù)語(yǔ)已經(jīng)在本系列文章的第一部分中說(shuō)明...
2018-07-16 標(biāo)簽:處理器Linux內(nèi)核調(diào)度器 5540 0
LVS是什么?LVS的四種模式與十種調(diào)度算法介紹
LVS是基于4層的負(fù)載均衡技術(shù),它是Linux內(nèi)核的一個(gè)模塊。
網(wǎng)上或多或少都能找到?;厮莸囊恍┪恼拢侵v的都并不完整,沒(méi)有將內(nèi)核?;厮莸墓δ苡糜趯?shí)際的內(nèi)核、應(yīng)用程序調(diào)試,這是本篇文章的核心:盡可能引導(dǎo)讀者將?;厮?..
2018-10-05 標(biāo)簽:LinuxLINUX內(nèi)核 5432 0
Linux內(nèi)核中有許多不同類型的鎖,它們都可以用來(lái)保護(hù)關(guān)鍵資源,以避免多個(gè)線程或進(jìn)程之間發(fā)生競(jìng)爭(zhēng)條件,從而保護(hù)系統(tǒng)的穩(wěn)定性和可靠性。
2023-05-16 標(biāo)簽:計(jì)數(shù)器LINUX內(nèi)核信號(hào)量 5291 0
1
0
請(qǐng)教在ttyS5注冊(cè)完成后,如何通過(guò)Linux內(nèi)核向ttyS5發(fā)送一串特定的數(shù)據(jù)?
標(biāo)簽:Linux系統(tǒng)LINUX內(nèi)核Linux驅(qū)動(dòng) 13389 1
0
0
嵌入式學(xué)習(xí)-ElfBoard ELF 1板卡-使ELF 1開發(fā)板支持exFAT和NTFS格式的方法
標(biāo)簽:嵌入式LINUX內(nèi)核IMX6ULL 10523 0
0
2
有關(guān)Linux系統(tǒng)的PBC (進(jìn)程控制塊)基礎(chǔ)知識(shí)介紹
標(biāo)簽:Linux系統(tǒng)LINUX內(nèi)核 7807 0
Linux內(nèi)核的裁剪以及移植過(guò)程的基本原理和詳細(xì)方法資料概述立即下載
類別:嵌入式技術(shù)論文 2018-08-31 標(biāo)簽:LinuxARM920TLinux內(nèi)核
類別:嵌入式開發(fā) 2014-03-17 標(biāo)簽:LinuxLinux內(nèi)核
Linux內(nèi)核源代碼情景分析(全冊(cè)高清帶書簽)pdf下載立即下載
類別:嵌入式開發(fā) 2018-01-04 標(biāo)簽:源代碼linux內(nèi)核
類別:嵌入式開發(fā) 2011-12-01 標(biāo)簽:Linux內(nèi)核
嵌入式Linux下的LCD驅(qū)動(dòng)程序設(shè)計(jì)方案解析立即下載
類別:嵌入式開發(fā) 2017-10-30 標(biāo)簽:lcdlinux內(nèi)核設(shè)備驅(qū)動(dòng)程序
REDIce-Linux--靈活的實(shí)時(shí)Linux內(nèi)核立即下載
類別:嵌入式開發(fā) 2017-11-08 標(biāo)簽:linuxlinux內(nèi)核
類別:嵌入式開發(fā) 2017-11-07 標(biāo)簽:linuxlinux內(nèi)核
類別:嵌入式開發(fā) 2013-02-03 標(biāo)簽:源代碼Linux內(nèi)核
linux kernel工作隊(duì)列及源碼解析立即下載
類別:嵌入式開發(fā) 2017-10-27 標(biāo)簽:linux內(nèi)核回調(diào)函數(shù)
類別:嵌入式開發(fā) 2011-04-05 標(biāo)簽:LINUX內(nèi)核
在發(fā)布會(huì)上,華為官方用了很多專業(yè)名詞來(lái)進(jìn)行功能解釋,大伙也會(huì)和我一樣有些聽不懂吧,在這種情況下,不論是吹噓還是詆毀都不在靠譜的頻道上。接下來(lái)小編整理了一...
2021-06-08 標(biāo)簽:API安卓LINUX內(nèi)核 2.5萬(wàn) 0
在現(xiàn)代操作系統(tǒng)里,同一時(shí)間可能有多個(gè)內(nèi)核執(zhí)行流在執(zhí)行,因此內(nèi)核其實(shí)象多進(jìn)程多線程編程一樣也需要一些同步機(jī)制來(lái)同步各執(zhí)行單元對(duì)共享數(shù)據(jù)的訪問(wèn)。尤其是在多處...
2017-11-14 標(biāo)簽:linuxlinux內(nèi)核 7169 0
什么是linux內(nèi)核_linux內(nèi)核有什么用
Linux最早是由芬蘭黑客 Linus Torvalds為嘗試在英特爾x86架構(gòu)上提供自由免費(fèi)的類Unix操作系統(tǒng)而開發(fā)的。該計(jì)劃開始于1991年,在計(jì)...
2017-11-14 標(biāo)簽:linuxlinux內(nèi)核 5721 0
在操作系統(tǒng)引入了進(jìn)程概念,進(jìn)程成為調(diào)度實(shí)體后,系統(tǒng)就具備了并發(fā)執(zhí)行多個(gè)進(jìn)程的能力,但也導(dǎo)致了系統(tǒng)中各個(gè)進(jìn)程之間的資源競(jìng)爭(zhēng)和共享。另外,由于中斷、異常機(jī)...
2017-11-14 標(biāo)簽:linuxlinux內(nèi)核 5580 0
華為鴻蒙OS對(duì)比阿里YunOS有何優(yōu)勢(shì)
兩款操作系統(tǒng)從底層上來(lái)說(shuō)確實(shí)具備一定的相似性,但是從定位以及未來(lái)發(fā)展前景上來(lái)說(shuō),鴻蒙OS擁有比阿里YunOS更廣闊的發(fā)展前進(jìn)。YunOS目前已經(jīng)更名為A...
2020-10-21 標(biāo)簽:UNIXLINUX內(nèi)核YunOS 5429 0
如何使用gobpf和uprobe來(lái)為Go程序構(gòu)建函數(shù)參數(shù)跟蹤程序
這是本系列文章的第一篇,講述了我們?nèi)绾卧谏a(chǎn)環(huán)境中使用 eBPF 調(diào)試應(yīng)用程序而無(wú)需重新編譯/重新部署。這篇文章介紹了如何使用 gobpf 和 upro...
2021-04-03 標(biāo)簽:LINUX內(nèi)核函數(shù)參數(shù)BPF 4843 0
【Linux 從頭學(xué)】是什么這兩年多以來(lái),我的本職工作重心一直是在 x86 Linux 系統(tǒng)這一塊,從驅(qū)動(dòng)到中間層,再到應(yīng)用層的開發(fā)。 隨著內(nèi)容的不斷擴(kuò)...
linux內(nèi)核啟動(dòng)參數(shù)設(shè)置
name”是關(guān)鍵字,內(nèi)核用它來(lái)識(shí)別應(yīng)該把“關(guān)鍵字”后面的值傳遞給誰(shuí),也就是如何處理這個(gè)值,是傳遞給處理進(jìn)程還是作為環(huán)境變量或者拋給“init”。值的個(gè)數(shù)...
2017-11-14 標(biāo)簽:linux參數(shù)linux內(nèi)核 4417 0
Linux的啟動(dòng)代碼真的挺大,從匯編到C,從Makefile到LDS文件,需要理解的東西很多。畢竟Linux內(nèi)核是由很多人,花費(fèi)了巨大的時(shí)間和精力寫出來(lái)...
2017-11-14 標(biāo)簽:linuxlinux內(nèi)核 4365 0
Linux內(nèi)核中的jump label原理與邏輯及運(yùn)行過(guò)程
jump label機(jī)制進(jìn)入Linux內(nèi)核已經(jīng)很多很多年了,它的目的是 消除分支。 為了達(dá)到這個(gè)目的,jump label的手段是 修改分支處的代碼。
2021-03-25 標(biāo)簽:數(shù)據(jù)邏輯代碼 3896 0
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語(yǔ)言教程專題
電機(jī)控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動(dòng)駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無(wú)刷電機(jī) | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機(jī) | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進(jìn)電機(jī) | SPWM | 充電樁 | IPM | 機(jī)器視覺(jué) | 無(wú)人機(jī) | 三菱電機(jī) | ST |
伺服電機(jī) | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國(guó)民技術(shù) | 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 |