一、Unix五种I/O模型 读取和写入文件I/O操作都是调用操作系统提高的接口,对磁盘I/O来说,一般是将数据从磁盘拷贝到内核空间,然后从内核空间拷贝到用户空间。为了减小I/O时间,一般内核空间存在高速页缓存,应用访问时,直接读取缓存中数据。也就是说,用户空间发生I/O操作时,内核空间缓存中如果没有 ...
分类:
编程语言 时间:
2019-01-26 18:48:50
阅读次数:
213
[TOC] linux Io模型 相关概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。 操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不 ...
分类:
系统相关 时间:
2019-01-19 18:45:48
阅读次数:
253
46.1 管道介绍 46.1.1 管道通信 管道是针对于本地计算机的两个进程之间的通信而设计的通信方法,建立管道后,实际获得两个文件描述符:一个用于读取而另一个用于写入 最常见的 IPC 机制,通过 pipe 系统调用 管道是单工的,数据只能向一个方向流动,需要双向通信时,需要建立起两个管道 数据的 ...
分类:
系统相关 时间:
2019-01-17 21:21:52
阅读次数:
192
HAL(Hardware Abstract Layer):运行在用户空间中,向下屏蔽硬件驱动模块的实现细节,向上提供硬件访问服务。 传统的Linux系统把对硬件的支持完全实现在内核空间中,即把对硬件的支持完全实现在硬件驱动模块中。 Android把对硬件的支持划分为两层来实现:内核空间和用户空间。 ...
分类:
移动开发 时间:
2019-01-12 16:41:10
阅读次数:
211
1. 前言 本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。 注:本文和其它的“Linux内核分析”文章都基于如下约定: a) 内核版本为Linu ...
分类:
系统相关 时间:
2019-01-05 17:14:59
阅读次数:
277
1 高端内存与内核映射 尽管 函数族可用于从高端内存域向内核映射页帧(这些在内核空间中通常是无法直接看到的), 但这并不是这些函数的实际用途. 重要的是强调以下事实 : 内核提供了其他函数用于将 页帧显式映射到内核空间, 这些函数与vmalloc机制无关. 因此, 这就造成了混乱. 而在高端内存的页 ...
分类:
系统相关 时间:
2018-12-31 00:00:55
阅读次数:
211
这篇文章主要记录一下c程序运行时内存空间如何使用。(摘抄自网络) 在一个多任务操作系统中的每个进程都运行在它自己的内存“沙箱”中。这个沙箱是一个虚拟地址空间(virtual address space),在 32 位系统中它总共有 4GB 的内存地址空间,包含内核空间和用户空间: 这些虚拟地址是通过 ...
分类:
其他好文 时间:
2018-12-26 15:45:56
阅读次数:
161
1. SWI软中断 以ARMV7 A/R架构为例, SWI软中断和中断一样,内核空间处理始于异常向量表。Linux向量表默认地址0XFFFF0000,SWI向量偏移8字节为0xFFFF0008: 具体代码,位于 \linux-3.4.x\arch\arm\kernel\entry-armv.S: v ...
分类:
系统相关 时间:
2018-12-25 17:06:46
阅读次数:
241
1.内存空间布局 X86系统支持32位寻址,因此支持2^32=4GB的虚拟内存空间,windwos系统的内存主要分为内核空间和应用层空间 每部分占2GB,其中包括一个64KB的NULL空间以及非法区域。 windows内存的逻辑地址分为两部分: 段选择符和偏移地址,CPU在进行地址翻译的时候,先通过 ...
select,poll,epoll简介: select select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是: 1、 单个进程可监视的fd数量被限制,数组有大小限制; 2 、需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时 ...
分类:
其他好文 时间:
2018-12-18 23:49:02
阅读次数:
332