红帽(Red Hat)是全球领先的开源技术解决方案提供商之一,其知名的产品包括 Red Hat Enterprise Linux(RHEL)等。而 Linux 内核作为 Red Hat 的基础,扮演着至关重要的角色。本文将探讨 Linux 内核机制与 Red Hat 的关系。
Linux 内核是 Linux 操作系统的核心,其负责处理硬件管理、内存管理、进程调度等关键任务。而 Red Hat 不
原创
2024-02-04 13:54:10
79阅读
写时复制技术(一下简称COW)是linux内核比较重要的一种机制,我们都知道:父进程fork子进程的时候,子进程会和父进程会以只读的方式共享所有私有的可写页,当有一方将要写的时候会发生COW缺页异常。那么究竟COW在linux内核中是如何触发?又是如何处理的呢?我们将在本文中以源代码情景分析的方式来解读神秘的写时COW,从源代码级别的角度彻底理解它。需要说明的是:本文中所分析的内核源码时linux
转载
2021-04-25 16:28:56
585阅读
2评论
将数据写到page cache写文件的时候其实是通过文件系统写到page cache中,然后再由相应的线程在适当的时机将page cache中的数据写到磁盘中。//fs/fat/file.cconst struct file_operations fat_file_operations = {... .aio_write = generic_file_aio_writ
原创
2022-10-31 16:25:27
253阅读
Linux内核是一款开源的操作系统内核,一直以来都备受关注和使用。而在Linux内核中,红帽发行版是其中最受欢迎和广泛使用的一个版本。本文将聚焦在“写Linux内核”这个关键词上,探讨与之相关的内容。
写Linux内核并非易事。它要求具备扎实的C语言编程基础以及对计算机体系结构和操作系统原理有深入的理解。同时,熟悉Linux内核的架构和各种子系统也是必不可少的。但是,一旦攻克了这些挑战,写Lin
原创
2024-01-31 19:09:41
81阅读
原创韩传华Linux阅码场8月31日作者简介韩传华,就职于国内一家半导体公司,主要从事linux相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,乐于分享喜欢学习,喜欢专研Linux内核源代码。写时复制技术(一下简称COW)是linux内核比较重要的一种机制,我们都知道:父进程fork子进程的时候,子进程会和父进程会以只读的方式共享所有私有的可写页,当有一方将要写的时候会发生COW
原创
2020-11-25 12:04:06
920阅读
在linux内核中,有很多同步机制。比较经典的有原子操作、spin_lock(忙等待的锁)、mutex(互斥锁)、semaphore(信号量)等。并且它们几乎都有对应的rw_XXX(读写锁),以便在能够区分读与写的情况下,让读操作相互不互斥(读写、写写依然互斥)。而seqlock和rcu应该可以不算在经典之列,它们是两种比较有意思的同步机制。atomic(原子操作):所谓原子操作,就是该操作绝不会
转载
精选
2015-05-16 14:56:34
1745阅读
1 等待队列
进程通过内核睡眠机制让出处理器,使得处理器可以处理其他进程。进程睡眠通常在资源得不到时,等待资源释放。
内核调度器管理要运行的任务列表,这被称为运行队列。要进入睡眠的进程将会从运行队列中移除。除非其被唤醒,否则进入睡眠的进程将永远不会被调度。进程一点进入等待状态,就可以让出处理器,一定要确保有条件或其他进程会唤醒它。内核通过提供一组函数和数据结构来简化睡眠机制的实现。
等待对垒厂用于
原创
精选
2024-04-25 13:51:40
829阅读
在linux内核中,有很多同步机制。比较经典的有原子操作、spin_lock(忙等待的锁)、mutex(互斥锁)、semaphore(信号量)等。并且
最近在工作中遇到下面的问题:active_anon:16777 inactive_anon:13946 isolated_anon:0active_file:14 inactive_file:37 isolated_file:0unevictable:0 dirty:0 writeback:0 unstable:0free:2081 slab_reclaimable:299 slab_unrecl
转载
精选
2015-07-06 17:59:47
1064阅读
本文首发于 http://oliveryang.net,转载时请包含原文或者作者网站链接。本文主要围绕 Linux 内核调度器 Preemption 的相关实现进行讨论。其中涉及的一般操作系统和 x86 处理器和硬件概念,可能也适用于其它操作系统。1. 背景知识要深入理解 Pr...
转载
2016-04-19 21:12:00
270阅读
本文首发于 http://oliveryang.net,转载时请包含原文或者作者网站链接。本文主要围绕 Linux 内核调度器 Preemption 的相关实现进行讨论。其中涉及的一般操作系统和 x86 处理器和硬件概念,可能也适用于其它操作系统。1. Scheduler Ov...
转载
2016-05-02 19:19:00
601阅读
点赞
一 应用场景描述线上一台mongos出现OOM情况,于是花点时间想要详细了解Linux内核的OOM机制原理,便于以后再作分析$ sudo grep mongos /var/log/messages
Apr 10 15:35:38 localhost sz[32066]: [xxxx] c
原创
2015-04-24 11:59:17
2621阅读
1.最基础的锁类型
序号
基础类型
基本特征
衍生类型
1
mutex
获取不到锁会执行任务调度
2
spin_lock
获取不到锁自旋等待
1.rw_lock和seq_lock<br>2.rcu(可以看做是一种特殊的rw_lock,写者会获取自旋锁,需要注意的是写者完成时调用的如果是synchronize_rcu,会涉及到任务切换;如果是call_rcu,则不会发
一、前言Linux内核是一个整体结构,而模块是插入到内核中的插件。尽管内核不是一个可安装模块,但为了方便起见,Linux把内核也看作一个模块。那么模块与模块之间如何进行交互呢,一种常用的方法就是共享变量和函数。但并不是模块中的每个变量和函数都能被共享,内核只把各个模块中主要的变量和函数放在一个特定的区段,这些变量和函数就统称为符号。因此,内核也有一个module结构,叫做kernel_module
转载
精选
2015-07-14 14:44:46
3048阅读
Android是目前全球使用最广泛的移动操作系统之一,其底层内核采用的是Linux内核。Linux内核作为一个开源的操作系统内核,由于其稳定性和安全性得到了广泛的认可。但是,在实际的应用中,Android系统依然存在着一些安全隐患,其中就包括Linux内核安全机制的问题。
Android系统虽然使用了Linux内核,但在实际的开发过程中对于Linux内核进行了一定程度的修改和定制,以适应移动设备
原创
2024-04-28 10:14:39
93阅读
1.什么completion,completion机制解决什么问题
Linux内核completion(完成)用于多线程间的同步,即线程A执行到某个代码时,需要等待线程B执行到某个地方再往下执行,也就是一个线程告诉另外一个线程,一个具体的动作已经完成或者具体的条件已经达到。内核中使用completion的常见领域:
异步硬件操作:如等待DMA传输完成或设备中断触发后读取数据。
I