阻塞I/O(bloking I/O) 阻塞IO的特点就是在IO执行的两个阶段(recvfrom和数据从内核空间转移到用户空间)都被block了 非阻塞I/O(non-bloking I/O) 非阻塞 IO的特点是用户进程需要不断的主动询问kernel数据是否准备好。 多路复用I/O(multiple ...
分类:
其他好文 时间:
2016-05-03 22:07:31
阅读次数:
218
Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。 段页式机制如下图。 Linux内核地址空间划分 通常32位Linux内核地址空间划分0~3G为用户空间,3~4G为内核空间。注意这里是32位内核地址空间划分,64 ...
分类:
系统相关 时间:
2016-05-02 18:25:49
阅读次数:
272
分配内存
介绍设备驱动程序中使用内存的方法;
如何最好地利用系统内存资源。
kmalloc函数
kmalloc内存分配引擎是一个功能强大的工具。
#include
void *kmalloc(size_t size, int flags);
参数分配表示flags能够以多种方式控制kmalloc的行为。
标志GFP_KERNEL表示内存分配是代表运行在内核空间的进程执行的...
分类:
系统相关 时间:
2016-04-29 20:11:36
阅读次数:
278
Linux系统启动流程及内核编译(2)1.内核设计:有单内核和微内核之分linux属于单内核的模块化设计系统内核核心路径:/boot/vmlinuz-版本号内核模块路径:/lib/modules/版本号/linux分为内核空间和用户空间而用户空间通过访问和监控内核:路径在/proc/和/sys/两个伪文件系统2.伪文..
分类:
系统相关 时间:
2016-04-29 09:30:18
阅读次数:
202
CentOS系统启动流程Linux系统的组成部分:内核+根文件系统内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序、安全功能IPC:InterProcessCommunication消息队列、semerphor、shm(共享内存)socket(跨主机的通讯,套接字。)运行中的系统环境分两层:内核空间,用户..
分类:
其他好文 时间:
2016-04-28 12:26:10
阅读次数:
254
先介绍一下程序的内存布局现代的应用程序都运行在一个内存空间里,在32位的系统中,内存大小为4GB(2的32次方),整个内存是一个统一的地址空间,用户可以用一个32位的指针访问内存的任意位置。但其实大多数操作系统会把4GB的内存空间中的一部分分给内核使用,被称为内核空间,..
分类:
其他好文 时间:
2016-04-27 19:04:53
阅读次数:
195
Relay 的原理Relay 提供了一种机制,使得内核空间的程序能够通过用户定义的 Relay 通道(channel)将 大量数据高效地传输到用户空间。一个 Relay 通道由一组和 CPU 一一对应的内核缓冲区组成。这 些缓冲区又被称为 Relay 缓冲区(buffer),其中的每一个在用户空间都 ...
分类:
移动开发 时间:
2016-04-27 12:14:01
阅读次数:
242
分配内存
介绍设备驱动程序中使用内存的方法;
如何最好地利用系统内存资源。
kmalloc函数
kmalloc内存分配引擎是一个功能强大的工具。
#include
void *kmalloc(size_t size, int flags);
参数分配表示flags能够以多种方式控制kmalloc的行为。
标志GFP_KERNEL表示内存分配是代表运行在内核空间的进程执行的...
分类:
系统相关 时间:
2016-04-26 22:05:33
阅读次数:
338
一、概念: LVS( linux virtual server ) : Linux虚拟服务器 lvs是一个负载均衡设备,它不提供任何服务,用户请求到这里的时候,它将客户需求转发至后端的realserver LVS在用户空间中的管理工具为:ipvsadm ,在内核空间中是IPVS 【注意:LVS和ip ...
分类:
编程语言 时间:
2016-04-24 15:44:53
阅读次数:
236
本系列主要介绍Linux内核死机、异常重启类稳定性问题的调试方法。 在Linux系统中,一切皆为文件,而系统运行的载体,是一类特殊的文件,即进程。因此,我尝试从进程的角度分析Linux内核的死机、异常重启等问题。在内核空间,内核本身是一个特权级的进程,它包含一系列系统级线程,维护整个系统内核的运转。 ...
分类:
系统相关 时间:
2016-04-23 14:52:02
阅读次数:
259