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 的原理就是将虚拟内存空间映射到文件的页缓存,我们可以知道:对文件进行读写时需要经过页缓存进行中转的。
系统调用 是 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 进入中断处理程序时,会把这些寄存器的值保存到内核栈中,这样 系统调用 就能通过内核栈来获取到参数。
文章目录 1.epoll 的用法 2.epoll 的创建 3.epoll 对象结构 4.向 epoll 添加文件描述符 5.阻塞和唤醒进程 6.小结 参考文献 epoll 是 Linux 平台下的一种特有的...本文主要讲解 epoll 的实现原理。 1.epoll 的用法 先复习下 epoll 的用法。...epoll_create() 函数创建一个 epoll 的文件描述符,epoll_create() 函数原型如下: int epoll_create(int size); 参数 size 是由于历史原因遗留下来的,自 Linux...---- 参考文献 epoll_create(2) - Linux manual page - man7.org linux内核Epoll 实现原理 Linux source code (v6.0)
显示命令执行时间 linux shell 具有history 功能,即会记录已经执行过的命令,但是默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。
在Linux内核中,进程又称为任务(task),进程的虚拟地址空间可以分为用户虚拟地址空间和内核虚拟地址空间,所有进程共享内核虚拟地址空间,又各自拥有独立的用户虚拟地址空间。...C语言标准库进程和Linux的内核进程称呼有所区别,对应关系如下: C标准库...Linux内核 包括多个线程的进程 线程组 只有一个线程的进程...图片 Linux内核提供了一组宏值来表示进程的状态: TASK_RUNNING(可运行状态或就绪状态);Linux并没有严格区分运行态或就绪态,统一为TASK_RUNNING...Linux不支持硬实时处理,至少在主流的内核中不支持。
---- 一、shell命令以及运行原理 我们用一个简单的例子来理解这个抽象的概念: 对shell的第一次感性认识: 在你很小的时候,对于外界的事物都充满好奇心,是妈妈一点一点来教你并且告诉你,让你从无知到了解...shell作用三:shell外壳是用户和linux操作系统交互的唯一途径,若因为用户的指令导致shell外壳挂掉,那么linux操作系统就不能被用户所使用。...那你可能疑惑,这里为什么是linux内核呢? 其实我们谈到linux操作系统,宏观是linux内核+shell外壳,微观是linux内核。 怎么理解呢?...---- 二、Linux权限 在了解权限之前,我们需要了解Linux是多用户操作系统,所以有很多用户,那么他们之间切换是如何进行的呢?...粘滞位:chmod +t 目录名 就会变为 rwt (操作仅针对目录) ---- 总结: shell的运行原理和权限想必大家都已经了解了吧!可以课后操作命令去练习,加深印象,我们下期再见!
理解用户权限的工作原理是掌握 Linux 的最重要部分之一。从这里开始学习基础知识。 译自 Linux: How File Permissions Work,作者 Damon M Garn。...Linux:Linux 技能模块库的配套实验室文章。在本系列文章中,我们还介绍了如何选择发行版、Linux 内核如何与硬件交互以及如何Linux 管理系统服务、存储和用户和组权限。...这些代表您管理 Linux 服务器的模拟公司中的三个部门。...本节介绍管理 Linux 权限所需的权限和身份。 了解访问级别 Linux 权限提供三种访问级别:读、写和执行。它们的行为在应用于文件或目录时略有不同。...本教程介绍了标准的 Linux 权限,但还有一些额外的特殊权限可以修改它们的工作方式。额外的 Linux 访问控制列表提供了更强大的控制文件安全性的方法。
内核使用task_struct来表示单个进程的描述符,维护进程的所有信息,其中包括files指针来指向结构体files_struct,files_struct中...
Linux 通过 软中断 实现从 用户态 到 内核态 的切换。 用户态 与 内核态 是独立的执行流,因此在切换时,需要准备 执行栈 并保存 寄存器 。...在 Linux 中, 系统调用号 一般通过 eax 寄存器 来传递。
在 Linux 环境下编译出来的可执行文件都是遵循 ELF 格式,如果没有特殊处理,它会保留比较完整的 符号表。 就拿开头的程序来当例子,可以通过 readelf -s a.out 查看: ?.../trace_test 22346 # 本文开头的进程 总结 关于断点的原理网上有很多文章提到,但比较多也是蜻蜓点水一笔带过,意犹未尽,干脆直接用最浅显的例子降低大家练手 成本!
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 分区文件 挂载目录 注意: 挂载到的目录需要提前创建
macvlan是Linux操作系统内核提供的网络虚拟化方案之一,更准确的说法是网卡虚拟化方案。
Ceph OSD的架构实现由物理磁盘驱动器、Linux文件系统和Ceph OSD服务组成,对于Ceph OSD Deamon而言,Linux文件系统显性的支持了其拓展性,一般Linux文件系统有好几种,...RBD:RBD通过Linux内核客户端和QEMU/KVM驱动来提供一个分布式的块设备。 CEPH FS:CEPH FS通过Linux内核客户端和FUSE来提供一个兼容POSIX的文件系统。...在说明CRUSH算法的基本原理之前,先介绍几个概念和它们之间的关系。
今日更新了Linux的权限的内容 欢迎大家关注点赞收藏⭐️留言 shell命令以及运行原理 Shell的最简单定义:命令行解释器(command Interpreter)主要包含: 将使用者的命令翻译给核心...创建和删除用户 当我们在第一次使用linux时最开始都是只有一个超级用户(root),而普通用户则是用过超级用户进行创建而形成的,所以我们首先来在超级用户下进行创建一个普通用户 创建新普通用户 第一步...:首先进入linux系统中输入指令 whoami 显示root则表示当前用户为超级用户,接下来我们就可以继续进行创建新的普通用户操作。...Linux权限的概念 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。...但是linux不一样,即使修改了后缀,也能打开它 。
========================================================
什么是控制群组 控制群组(control group)(在此指南中简写为 cgroup)是 Linux kernel 的一项功能:在一个系统中运行的层级制进程组,您可对其进行资源分配(如 CPU 时间、...------------ 通过将 cgroup 层级系统与 systemd 单位树捆绑,Red Hat Enterprise Linux 7 可以把资源管理设置从进程级别移至应用程序级别。...------------ 在 Red Hat Enterprise Linux 之前的版本中,系统管理员使用 libcgroup 软件包中的 cgconfig 指令来建立自定义 cgroup 层级。...cgroups文件系统 Linux 使用了多种数据结构在内核中实现了 cgroups 的配置,关联了进程和 cgroups 节点,那么 Linux 又是如何让用户态的进程使用到 cgroups 的功能呢...Linux内核有一个很强大的模块叫 VFS (Virtual File System)。 VFS 能够把具体文件系统的细节隐藏起来,给用户态进程提供一个统一的文件系统 API 接口。
1.shell命令以及运行原理 1.1 shell命令 Linux中有如此之多的命令 shell命令的运行原理是什么呢?...,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。...在Linux中,以 ....和 Linux / Linux 和 Linux 互传 --- 压缩包 如果要进行两台Linux机器之间的文件传输,我们用下面的命令 scp XXX.tgz 用户名@另一台Linux机器的IP:你要拷贝到的路径...至此,我们Linux的基本指令已经了解的差不多了
共享内存是一个非常有意思的话题,一方面共享内存避免了通讯过程中的内存复制问题,是 Linux IPC 通讯中效率最高的一种。...从使用方式上讲,Linux 提供了三种共享内存的方式,包括 Unix 味的 POSIX 和 SysV 接口,还提供了直接文件映射内存的 mmap。...本文尝试分别介绍 Linux 共享内存的基本原理,并做一个 “违背祖宗的决定”,如何在 Golang 中使用共享内存。...Golang 是通过通讯代替共享内存的优雅代表,下文仅做试验,不建议日常使用 mmap mmap 是 POSIX 规范中的文件映射内存的方法,Linux 并提供了同名系统调用。...总结 从原理上讲 Linux 共享内存的主要方式只有两种,一是基于文件的 mmap,另一种就是 tmpfs,用一张图描述 Linux 几种实现共享内存的方式:
服务器的包 2)服务器端:提供客户端网络相关的租约选择 3)客户端:决定选择的DHCP服务器提供的网络参数租约并汇报给服务器 4)服务器端:记录这次租约并回报给客户端相关的封包信息 简单来说下DHCP工作原理...linux下DHCP配置: 配置文件都放在/etc/dhcp目录下;主配置文件为dhcpd.conf 将/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample文件复制到配置文件目录下...linux下查看/var/lib/dhclient/dhclient.leases,这是个租约文件,服务器端的租约文件在/var/lib/dhcpd/dhcpd.leases。
——如何利用Linux内核资源实现高效优雅的消息通知?...Linux eventfd 原理简介与最佳实践 eventfd/timerfd 简介 目前越来越多的应用程序采用事件驱动的方式实现功能,如何高效地利用系统资源实现通知的管理和送达就愈发变得重要起来。...从Linux 2.6.22版本引入内核,在2.6.27版本以后加入对flag的支持。以下分析参考Linux 2.6.27源码。...清楚了task的两种状态以及run queue / wait queue原理,read函数就不难理解了。...参考资料 Linux 内核源码 https://elixir.bootlin.com/linux/latest/source/fs/eventfd.c Linux Programmer's Manual
领取专属 10元无门槛券
手把手带您无忧上云