首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux mmap原理

Linux mmap原理 前言 Linux段页式内存管理 mmap mmap内存映射原理 文字概述 mmap函数参数介绍 源码解析 1. 文件映射 2....,但是并没有深入理解mmap在操作系统内部是如何实现的,原理是什么。...本文想要和大家一起来聊聊mmap的原理,本文整体脉络如下: linux段页式内存管理回顾 mmap原理 ---- Linux段页式内存管理 这里的段页式内存管理主要基于linux 0.11进行讲解...(作者本人并非主攻linux,所以只是对linux 0.11略有研究) 无论是现代操作系统还是最早的linux 0.11操作系统,在对于物理内存的管理,都是将物理内存按页划分,如下图所示:...下面我们通过一幅图来对 mmap 的原理进行阐述: 从上图可以看出,mmap 的原理就是将虚拟内存空间映射到文件的页缓存,我们可以知道:对文件进行读写时需要经过页缓存进行中转的。

3.4K21

Linux系统调用原理

系统调用 是 Linux 内核提供的一段代码(函数),其实现了一些特定的功能,用户可以通过 int 0x80 中断(x86 CPU)或者 syscall 指令(x64 CPU)来调用 系统调用。...二、进入系统调用 本文主要介绍的是 x86 CPU 进入系统调用的方式 Linux 提供了 int 0x80 中断来让用户程序进入 系统调用,我们来看看 Linux 对 int 0x80 中断的处理初始化过程...原理如下图(图片来源 https://developer.ibm.com/zh/technologies/linux/tutorials/l-system-calls/ ): ?...Linux 使用寄存器来传递参数,参数与寄存器的关系如下: 第1个参数放置在 ebx 寄存器。 第2个参数放置在 ecx 寄存器。 第3个参数放置在 edx 寄存器。...而 Linux 进入中断处理程序时,会把这些寄存器的值保存到内核栈中,这样 系统调用 就能通过内核栈来获取到参数。

4.1K30

记一个openwrt reboot异步信号处理死锁问题

问题背景 在 openwrt 上碰到了一个偶现的 reboot 失效问题。执行 reboot 之后系统并没有重启,此时控制台还能工作。...此处 reboot 是一个指向 busybox 的软链接,从 help 信息 -f Force (don't go through init) 中可以看出 rebootreboot -f 的区别在于...reboot 会先通知 init 进程进行一系列操作,而 reboot -f 则直接调内核。...S interruptible sleep (waiting for an event to complete)` 但只知道这个没太大作用,我们需要更多信息,幸好 linux 还有 proc 文件系统...可以参考 Linux 多线程应用中如何编写安全的信号处理函数 这里贴下 man pthread_sigmask 中的例子,主线程中先屏蔽一些信号,然后创建了一个特定的线程,通过 sigwait 来检测处理这些信号

2.1K20

LinuxLinux权限,shell命令以及运行原理

---- 一、shell命令以及运行原理 我们用一个简单的例子来理解这个抽象的概念: 对shell的第一次感性认识: 在你很小的时候,对于外界的事物都充满好奇心,是妈妈一点一点来教你并且告诉你,让你从无知到了解...shell作用三:shell外壳是用户和linux操作系统交互的唯一途径,若因为用户的指令导致shell外壳挂掉,那么linux操作系统就不能被用户所使用。...那你可能疑惑,这里为什么是linux内核呢? 其实我们谈到linux操作系统,宏观是linux内核+shell外壳,微观是linux内核。 怎么理解呢?...---- 二、Linux权限 在了解权限之前,我们需要了解Linux是多用户操作系统,所以有很多用户,那么他们之间切换是如何进行的呢?...粘滞位:chmod +t 目录名  就会变为 rwt  (操作仅针对目录) ---- 总结: shell的运行原理和权限想必大家都已经了解了吧!可以课后操作命令去练习,加深印象,我们下期再见!

17810

Linux分区的原理介绍

1.Linux无论有多少个分区.分给哪一个目录,整个文件系统也只有一个根目录.它的每一个分区都是用来组成整个文件系统的一部分.Linux使用一种”载入”的处理办法.将分区和目录联系起来.这时要载入一个分区...,将使它的存储空间在一个目录下获得. 2.Linux硬盘编号说明 Linux中的硬盘分为IDE硬盘,SCSI硬盘和SATA硬盘 硬盘编号格式为”sdXY”,其中”sd”表示硬盘为SCSI的类型(IDE类型为...可以通过lsblk查看硬盘分区和挂载情况 3.硬盘挂载和卸载操作 给当前linux系统添加一块新的硬盘(2GB),并挂载到指定的目录(/home/disk2-1目录) 执行步骤: 在虚拟机中添加一个新硬盘...对新硬盘进行分区 对新硬盘的分区进行格式化 格式化指令: mkfs -t ext4 需要格式化的磁盘分区文件 将分区挂载到linux对应的目录上 挂载指令: mount 分区文件 挂载目录 注意: 挂载到的目录需要提前创建

6.5K00
领券