首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux IO 那些事儿

介绍 Linux IO 的一些基本原理。...文件系统如何工作(VFS) Linux 系统下的文件 在 Linux 中一切皆文件。不仅普通的文件和目录,就连块设备、套接字、管道等,也都要通过统一的文件系统来管理。...inode 指针:就是指向这个文件的 inode 与其他 dentry 的关联关系:其实就是每个文件的层级关系,哪个文件在哪个文件下面,构成了文件系统的目录结构 不同于 inode,dentry 是由内核维护的一个内存数据结构...Linux 对磁盘的管理 其实在 Linux 中,磁盘实际上是作为一个块设备来管理的,也就是以块为单位读写数据,并且支持随机读写。每个块设备都会被赋予两个设备号,分别是主、次设备号。...I/O scheduler,在 3.16 版本的内核开始支持多队列 blkmq,这里介绍几种经典的 I/O 调度策略。

1.5K21

Linux管道那些事儿

管道的本质是内核维护了一块缓冲区与管道文件相关联,对管道文件的操作,被内核转换成对这块缓冲区内存的操作。...Linux下创建管道函数: int pipe(int pipefd[2]) 成功调用pipe函数之后,会返回两个打开的文件描述符,一个是管道的读取端描述符pipefd[0],另一个是管道的写入端描述符pipefd...管道没有文件名与之关联,因此程序没有选择,只能通过文件描述符来访问管道,只有那些能看到这两个文件描述符的进程才能够使用管道。如果进程执行了fork操作,那么管道就变成如下所示: ?...如果所有读取端描述符都已关闭,此时进程再次往管道里面写入数据,写操作会失败,errno被设置为EPIPE,同时内核会向写入进程发送一个SIGPIPE的信号。

2.7K50
您找到你想要的搜索结果了吗?
是的
没有找到

浅谈Linux内存管理那些事儿

1 前言 内存管理是Linux内核中非常重要的部分,今天和大家一起学习一下。...4.2 内存碎片分类和机理 如果我们不知道内存碎片是什么,试想一下我们常说的碎片化的时间,也就是那些虽然空闲但是没有被利用的时间,其实内存也是如此。 ?...伙伴系统算法基本原理 5.1 一些准备知识 物理页框 linux将物理内存按照页来划分,内存页的大小在不同的软硬件中可能不一样,linux内核设置为4KB,有的内核可能更大也可能更小,当时不同的大小在实际中都是有考量的...延时分配和实时分配 linux系统有内核态和用户态之分,内核态申请内存就立刻满足并且认为这个请求一定是合理的。...基于一些其他方面的考量,linux内核选择了第二种思路来解决外部碎片。

85820

Linux性能调优那些事儿

Linux性能调优那些事儿 01 一、前提 我们可以在文章的开始就列出一个列表,列出可能影响Linux操作系统性能的一些调优参数,但这样做其实并没有什么价值。...新调度器的优势是显著的改变Linux内核的可扩展性,使新内核可以更好的处理一些有大量进程、大量处理器组成的企业级应用。新的O(1)调度器包含仔2.6内核中,但是也向下兼容2.4内核。 ?...在上面图示中我们可以看到64位和32位Linux内核在寻址上有着显著的不同。...如果想要理解Linux系统内存的调优,我们必须了解Linux的虚拟内存机制。应用程序并不分配物理内存,而是向Linux内核请求一部分映射为虚拟内存的内存空间。...Linux内核处理数据写入磁盘子系统和管理磁盘缓存是紧密联系在一起的。

1.6K31

linux 文件访问权限那些事儿

有效用户 ID 与有效组 ID 是进程访问文件时内核权限检查的主要依据,具体的检查过程请参考“进程访问文件时内核权限检查过程”这节。...这里主要是想强调一下“路径中的每个目录”的重要性,例子本身举的比较牵强,毕竟那些目录没有搜索位的话,当前目录也是不可能切 (cd) 过去的; 为了简化后面的描述,将使用以下术语表示上面的概念: 权限分组创建者...当然了,以上内容都源自 apue,作者成书较早,当时的系统版本都比较老,例如针对的 linux 平台还是 2.4 的内核,我用 CentOS 7.5 (内核 3.10) 验证的时候发现有些出入——文件系统挂载...Linux SetGID(SGID)文件特殊权限用法详解 [6]. Linux下查看某个用户组下的所有用户 [7]....关于 Linux系统用户、组和权限管理 [13]. Linux用户(user)与用户组(group)管理(超详细解释) [14]. 配置 Linux 的访问控制列表(ACL)

5.2K20

任意代码保护与内核代码注入的那些事儿

写在前面的话 类似 WannaCry 和 Slingshot 这样的恶意软件最常用的一种攻击技术就是内核代码注入,在近期刚刚发布的 Windows 10 Creators 更新中,微软引入了一种针对远程代码执行的新型缓解技术...在这篇文章中,我们将详细介绍Arbitrary Code Guard的工作机制,并利用内核代码注入攻击来测试这项缓解技术的有效性。...内核代码注入 接下来我们一起看一看,如果我们尝试向内核注入代码时,ACG的表现如何。...这里我们会使用恶意软件常用的两种内核代码注入技术: 创建一个新的线程并加载一个动态链接库文件(DLL); 使用一个异步程序调用(APC)来向现有线程中加载一个DLL; 在这两种技术中,下面几个步骤是通用的...总结 对于防止用户模式或内核模式下的代码注入来说,ACG是一种非常好的选择,但ACG目前只是一种可选项,因此如果目标设备(进程)没有开启ACG的话,攻击者仍然能够实现代码注入。

95500

聊聊Netty那些事儿之从内核角度看IO模型

从今天开始我们来聊聊Netty的那些事儿,我们都知道Netty是一个高性能异步事件驱动的网络框架。 它的设计异常优雅简洁,扩展性高,稳定性强。拥有非常详细完整的用户文档。...但Linux kernel 在5.1版本由Facebook的大神Jens Axboe引入了新的异步IO库io_uring 改善了原来Linux native AIO的一些性能问题。...在Linux内核的角度看来,一切皆是文件,Socket也不例外,当内核创建出Socket之后,会将这个Socket放到当前进程所打开的文件列表中管理起来。...只不过,除了 I/O 模型之外,还需要从应用程序到 Linux 内核、再到 CPU、内存和网络等各个层次的深度优化,特别是需要借助硬件,来卸载那些原来通过软件处理的大量功能(去掉大量的中断响应开销,以及内核协议栈处理的开销...但Linux kernel 在5.1版本由Facebook的大神Jens Axboe引入了新的异步IO库io_uring 改善了原来Linux native AIO的一些性能问题。

62031

Emoji 那些事儿

还记得当年短信风行时的那些事吗? 没有笑脸表情的文字聊天过程中,常常会得到“你不是在开玩笑吧?”这样的回复,以免将一些无聊的笑话信以为真。...后来并没有花多久的时间,大家都明白了,单纯靠文字来理解那些幽默与调戏并不那么容易(但不管怎么说,这种套路确实应该少一些)。...如果没有 Unicode,像那些含有像德文字母 ß、ä、ö 这样的特殊字符的文档,就无法在其他不使用这类字符的系统上共享。感谢 Unicode 的跨平台、跨系统编码。...有了序列,就可以做一些别的事,比方说,修饰那些中性 emoji (通常用黄色皮肤展示),让它们符合你的风格。...在那些支持修饰序列的操作系统中,为码点值为 U+1F467 的小女孩 emoji 添加修饰符之后,就能得一个肤色发生变化的小女孩表情。 零宽连接序列 与人相关的,可不止肤色这一种。

92420

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券