随笔分类 -  IO:一切皆文件

摘要:文章目录 @[TOC] 1.引入 1.1 标准I/O 1.2直接I/O 1.3 mmap1.引入让我们先看一下Linux系统下IO结构模型 从图中可以看到标准 I/O、mmap、直接 I/O 这三种 I/O 方式在流程上的差异1.1 标准I/O 大多数文件系统的默认I/O操作都是标准I/O。在Lin 阅读全文
posted @ 2021-11-10 11:10 zzfx 阅读(1048) 评论(0) 推荐(0) 编辑
摘要:io模型的核心是内核kernel与应用(线程)的关系; 内核与应用的联系:数据状态信号和数据本身; 一、分层模型: 应用层——内核层——设备层 https://www.cnblogs.com/feng9exe/p/10738208.html 二、数据形式 数据在哪里?数据的形式:流 vs 块? 三、 阅读全文
posted @ 2019-11-15 18:04 zzfx 阅读(148) 评论(0) 推荐(0) 编辑
摘要:什么是网络套接字(Socket)?一时还真不好回答,而且网络上也有各种解释,莫衷一是。下文将以本人所查阅到的资料来说明一下什么是Socket。 Socket定义 Socket在维基百科的定义: A network socket is an endpoint of an inter-process c 阅读全文
posted @ 2019-06-12 15:51 zzfx 阅读(448) 评论(0) 推荐(0) 编辑
摘要:文件:信息存储载体的单元;抽象为字符序列、数据流; 抽象的结果是简化所有IO设备的操作描述; UNIX 是第一个把 I/O 抽象成一个统一的概念和一系列原语的系统。 https://juejin.im/post/5b652d346fb9a04fc03129e6 字节流==数据流 IO设备:文档、目录 阅读全文
posted @ 2019-06-12 15:07 zzfx 阅读(793) 评论(0) 推荐(0) 编辑
摘要:文件是数据的流式IO抽象,mmap是对文件的块式IO抽象 阅读全文
posted @ 2019-04-19 18:07 zzfx 阅读(268) 评论(0) 推荐(0) 编辑
摘要:总结: 1、内存与文件、设备; 2、文件支持的映射; 3、定时刷新与强制刷新; 4、内存共享与声明周期; mmap In computing, mmap(2) is a POSIX-compliant Unix system call that maps files or devices into 阅读全文
posted @ 2019-04-19 18:05 zzfx 阅读(447) 评论(0) 推荐(0) 编辑
摘要:There are use cases where data need to be read from source to a sink without modification. In code this might look quite simple: for example in Java, 阅读全文
posted @ 2019-04-19 17:31 zzfx 阅读(309) 评论(0) 推荐(0) 编辑
摘要:这不过是返祖罢了。正确的问题是为什么会把数据流抽象成文件。 设备-字节流-文件。 一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列)。 文件抽象为数据流一定程度上是 Unix 造成的。 传统上,计算机上用于 IO 的设备大致可以分成两大类,块(block 阅读全文
posted @ 2019-01-04 19:34 zzfx 阅读(409) 评论(0) 推荐(0) 编辑
摘要:文件抽象 fs模块是文件操作的封装,它提供了文件的读取、写入、更名、删除、遍历目录、链接POSIX文件系统操作。与其他模块不同的是,fs模块中的所有操作都提供了异步和同步两个版本,例如读取文件内容函数的异步方法:readFile(),同步方法readFileSync()。 一切皆文件 “一切皆是文件 阅读全文
posted @ 2019-01-04 19:27 zzfx 阅读(544) 评论(0) 推荐(0) 编辑
摘要:输入/输出(I/O) : 是指主存和外部设备(如磁盘,终端,网络)之间拷贝数据过程 https://www.bbsmax.com/A/o75N88ZxzW/ 10.1 Unix I/O 一个Unix 文件就是一个m个字节的序列: 所有I/O设备都被模型化为文件。 而所有的输入和输出都被当做相应文件的 阅读全文
posted @ 2019-01-04 19:10 zzfx 阅读(237) 评论(0) 推荐(0) 编辑
摘要:引用《Linux Kernel Development》原书里面的一句话 in Unix, everything is a file.This simplifies the manipulation of data and devices into a set of core system call 阅读全文
posted @ 2019-01-04 18:12 zzfx 阅读(846) 评论(0) 推荐(0) 编辑
摘要:一、知识准备 1、在linux中,一切皆为文件,所有不同种类的类型都被抽象成文件。如:普通文件、目录、字符设备、块设备、套接字等2、当一个文件被进程打开,就会创建一个文件描述符。这时候,文件的路径就成为了寻址系统,文件描述符成为了字节流的接口3、相对于普通文件这类真实存在于文件系统中的文件,tcp 阅读全文
posted @ 2019-01-04 17:17 zzfx 阅读(425) 评论(0) 推荐(0) 编辑
摘要:UNIX 操作系统的设计、用户界面、文化和演变都是建立在它的一套统一的想法和概念上。其中最重要的一点可能是“一切皆文件”,而这个概念被认为是 UNIX 的灵魂之一。 这一关键设计原则提供了一个统一的范式,用于访问各种输入输出资源:文档、目录、磁盘驱动器、CD-ROM、调制解调器、键盘、打印机、显示器 阅读全文
posted @ 2019-01-04 17:08 zzfx 阅读(596) 评论(0) 推荐(0) 编辑
摘要:"Everything is a file" describes one of the defining features of Unix, and its derivatives — that a wide range of input/output resources such as docum 阅读全文
posted @ 2018-01-04 11:01 zzfx 阅读(294) 评论(0) 推荐(0) 编辑