介绍 Linux IO 的一些基本原理。...文件系统如何工作(VFS) Linux 系统下的文件 在 Linux 中一切皆文件。不仅普通的文件和目录,就连块设备、套接字、管道等,也都要通过统一的文件系统来管理。...inode 指针:就是指向这个文件的 inode 与其他 dentry 的关联关系:其实就是每个文件的层级关系,哪个文件在哪个文件下面,构成了文件系统的目录结构 不同于 inode,dentry 是由内核维护的一个内存数据结构...Linux 对磁盘的管理 其实在 Linux 中,磁盘实际上是作为一个块设备来管理的,也就是以块为单位读写数据,并且支持随机读写。每个块设备都会被赋予两个设备号,分别是主、次设备号。...I/O scheduler,在 3.16 版本的内核开始支持多队列 blkmq,这里介绍几种经典的 I/O 调度策略。
管道的本质是内核维护了一块缓冲区与管道文件相关联,对管道文件的操作,被内核转换成对这块缓冲区内存的操作。...Linux下创建管道函数: int pipe(int pipefd[2]) 成功调用pipe函数之后,会返回两个打开的文件描述符,一个是管道的读取端描述符pipefd[0],另一个是管道的写入端描述符pipefd...管道没有文件名与之关联,因此程序没有选择,只能通过文件描述符来访问管道,只有那些能看到这两个文件描述符的进程才能够使用管道。如果进程执行了fork操作,那么管道就变成如下所示: ?...如果所有读取端描述符都已关闭,此时进程再次往管道里面写入数据,写操作会失败,errno被设置为EPIPE,同时内核会向写入进程发送一个SIGPIPE的信号。
在Linux中,常用的随机相关的命令有 md5、shuf、$RANDOM、openssl等,当然如果你会写Python或者PHP,那么也是可以的,同样的像JavaScript也是可以的。...当然了,博主这里主要讲的是Linux的使用方法。 ---- 随机数字 // Linux 有随机变量 $RANDOM,需要时直接调用即可 [email protected]/* <!
1 前言 内存管理是Linux内核中非常重要的部分,今天和大家一起学习一下。...4.2 内存碎片分类和机理 如果我们不知道内存碎片是什么,试想一下我们常说的碎片化的时间,也就是那些虽然空闲但是没有被利用的时间,其实内存也是如此。 ?...伙伴系统算法基本原理 5.1 一些准备知识 物理页框 linux将物理内存按照页来划分,内存页的大小在不同的软硬件中可能不一样,linux内核设置为4KB,有的内核可能更大也可能更小,当时不同的大小在实际中都是有考量的...延时分配和实时分配 linux系统有内核态和用户态之分,内核态申请内存就立刻满足并且认为这个请求一定是合理的。...基于一些其他方面的考量,linux内核选择了第二种思路来解决外部碎片。
Linux性能调优那些事儿 01 一、前提 我们可以在文章的开始就列出一个列表,列出可能影响Linux操作系统性能的一些调优参数,但这样做其实并没有什么价值。...新调度器的优势是显著的改变Linux内核的可扩展性,使新内核可以更好的处理一些有大量进程、大量处理器组成的企业级应用。新的O(1)调度器包含仔2.6内核中,但是也向下兼容2.4内核。 ?...在上面图示中我们可以看到64位和32位Linux内核在寻址上有着显著的不同。...如果想要理解Linux系统内存的调优,我们必须了解Linux的虚拟内存机制。应用程序并不分配物理内存,而是向Linux内核请求一部分映射为虚拟内存的内存空间。...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)
与函数调用相比,系统调用的开销要大一些,因为在执行系统调用时,Linux必须从运行用户代码切换到执行内核代码,然后再返回用户代码。...Linux 程序设计(第四版). 人民邮电出版社 https://www.jianshu.com/p/2c60d669c9fb
把系统分区从 windows 重装成 linux,数据分区也能正常读取 (linux 也能识别 NTFS),说明文件系统是独立于操作系统的。...关于文件权限,这是另一个可以单独写一篇的话题了,请参考文章《[apue] linux 文件访问权限那些事儿》。...那内核为什么不存储一个字符串的完整工作路径呢?考察一下下面这个程序: #include ".....linux 文件系统的引入,后面有机会可以出一篇文章,专门阅读 linux 源码来证实本文的一些结论,想想就让人激动~~ 参考 [1]. ...Linux下查看和修改文件时间 [11]. Linux中8个有用的touch命令 [12]. 准确获取linux文件的创建时间 [13]. Inode vs Vnode [14].
写在前面的话 类似 WannaCry 和 Slingshot 这样的恶意软件最常用的一种攻击技术就是内核代码注入,在近期刚刚发布的 Windows 10 Creators 更新中,微软引入了一种针对远程代码执行的新型缓解技术...在这篇文章中,我们将详细介绍Arbitrary Code Guard的工作机制,并利用内核代码注入攻击来测试这项缓解技术的有效性。...内核代码注入 接下来我们一起看一看,如果我们尝试向内核注入代码时,ACG的表现如何。...这里我们会使用恶意软件常用的两种内核代码注入技术: 创建一个新的线程并加载一个动态链接库文件(DLL); 使用一个异步程序调用(APC)来向现有线程中加载一个DLL; 在这两种技术中,下面几个步骤是通用的...总结 对于防止用户模式或内核模式下的代码注入来说,ACG是一种非常好的选择,但ACG目前只是一种可选项,因此如果目标设备(进程)没有开启ACG的话,攻击者仍然能够实现代码注入。
crontab Linux计划任务功能的操作都是通过crontab命令来完成的 常用选项 -u: 表示指定某个用户,不加 -u 则为当前用户 -e: 表示指定计划任务 -l: 表示列出计划任务 -r:
crontab图片Linux计划任务功能的操作都是通过crontab命令来完成的常用选项-u: 表示指定某个用户,不加 -u 则为当前用户-e: 表示指定计划任务-l: 表示列出计划任务-r: 表示删除计划任务
从今天开始我们来聊聊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的一些性能问题。
还记得当年短信风行时的那些事吗? 没有笑脸表情的文字聊天过程中,常常会得到“你不是在开玩笑吧?”这样的回复,以免将一些无聊的笑话信以为真。...后来并没有花多久的时间,大家都明白了,单纯靠文字来理解那些幽默与调戏并不那么容易(但不管怎么说,这种套路确实应该少一些)。...如果没有 Unicode,像那些含有像德文字母 ß、ä、ö 这样的特殊字符的文档,就无法在其他不使用这类字符的系统上共享。感谢 Unicode 的跨平台、跨系统编码。...有了序列,就可以做一些别的事,比方说,修饰那些中性 emoji (通常用黄色皮肤展示),让它们符合你的风格。...在那些支持修饰序列的操作系统中,为码点值为 U+1F467 的小女孩 emoji 添加修饰符之后,就能得一个肤色发生变化的小女孩表情。 零宽连接序列 与人相关的,可不止肤色这一种。
[导读] 本文从内存管理的发展历程角度层层递进,介绍MMU的诞生背景,工作机制。而忽略了具体处理器的具体实现细节,将MMU的工作原理从概念上比较清晰的梳理了一遍...
英国诗人蒲柏在牛顿的墓志铭中写道:『自然和自然的法则在黑暗中隐藏,上帝说,让牛顿去吧,于是一切都被照亮!』,而在保护账号安全方面,OAuth起着如同牛顿般中流砥...
那些出货,接单报表开发了又开发,很多地方都是重复的数据,做报表的人就想一切都自动,不愿去收工汇总一下,就像一眼看到他们所需要的栏位。虽然他们感到便利了,但苦的是我们这群IT。
一直有记账的欲望,但是一直没能坚持下来,近两年的工作之后觉得自己应该需要实实在在,完完整整的做点东西来落实验证下自己的所学,也能顺道满足下自己的所需,和几个朋友...
在芯片制造过程中,因为一些系统误差和一些随机误差,使得实际生产出来的器件参数和实际理论参数存在一定的偏差,然而我们可以通过电路设计或器件布局或走线等相关措施(也...
要是早些年,我可能还很乐于见到那些鼓吹方法论的敏捷咨询师们,跳出来讲:来,看看我的敏捷实践,我们需要怎样怎样清晰简单的文档,我们不需要如何如何复杂冗余的设计。
网站应用级入侵防御系统(Web Application Firewall,WAF),也称为Web防火墙,可以为Web服务器等提供针对常见漏洞(如DDOS攻击、S...
领取专属 10元无门槛券
手把手带您无忧上云