当执行I/O操作的时候,无论是同步I/O操作还是异步I/O操作,都会调用的Windows的API方法,比如,当读取文件的时候,调用ReadFile函数。该方法会将你的当前线程从用户态转变成内核态,会生成一个I/O请求包,并且初始化这个请求包,这个包中包含一个文件句柄,一个偏移量和一个Byt..
分类:
其他好文 时间:
2014-07-10 17:52:44
阅读次数:
664
0:000> u ntdll!KiFastSystemCallntdll!KiFastSystemCall:7c92eb8b 8bd4 mov edx,esp7c92eb8d 0f34 sysenterntdll!KiFastSystemCallR...
分类:
其他好文 时间:
2014-07-01 23:17:25
阅读次数:
267
以前写的一篇笔记,偶尔翻出来了,放在这里做个纪念
Linux 下IO端口编程访问
这里记录的方法是在用户态访问IO端口,不涉及驱动程序的编写。
首先要包含头文件 /usr/include/asm/io.h
ioperm()
在 unistd.h 中声明。用来打开对IO端口的访问权限,要求程序执行时必须有root 权限。只可以打开0x00到0x3ff 这一地址段的IO端口。
iop...
分类:
系统相关 时间:
2014-07-01 11:03:08
阅读次数:
368
背景:需要搭建一套跟线上一模一样的环境,用来预发布,这是其中的web分发的一个小模块的实现过程。 1 工具以及环境简介1.1,Inotify工具Inotify,它是一个内核用于通知用户空间程序文件系统变化的机制。众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备...
分类:
Web程序 时间:
2014-07-01 07:44:44
阅读次数:
257
背景:需要搭建一套跟线上一模一样的环境,用来预发布,这是其中的web分发的一个小模块的实现过程。 1 工具以及环境简介1.1,Inotify工具Inotify,它是一个内核用于通知用户空间程序文件系统变化的机制。众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备...
分类:
Web程序 时间:
2014-06-30 18:39:06
阅读次数:
350
以前写的一篇笔记,偶尔翻出来了,放在这里做个纪念
Linux 下IO端口编程访问
这里记录的方法是在用户态访问IO端口,不涉及驱动程序的编写。
首先要包含头文件 /usr/include/asm/io.h
ioperm()
在 unistd.h 中声明。用来打开对IO端口的访问权限,要求程序执行时必须有root 权限。只可以打开0x00到0x3ff 这一地址段的IO端口。
iop...
分类:
系统相关 时间:
2014-06-30 16:30:54
阅读次数:
302
什么是FUSE传统的文件系统是操作系统的一部分,放在操作系统内核里面实现。Fuse(Filesystem in Userspace), 一个用户空间文件系统框架,提供给我们一组用于实现一个文件系统的API,使我们可以在用户态实现自已的文件系统。FUSE的优缺点1)传统文件系统都是定义在操作系统内核层...
分类:
其他好文 时间:
2014-06-22 23:09:04
阅读次数:
269
首先说一下线程的概念.其实就是运行在进程的上下文环境中的一个执行流.普通进程只有一条执行流,但是线程提供了多种执行的路径并行的局面.
同时,线程还分为核心级线程和用户级线程.主要区别在属于核内还是核外.
核心级线程,地位基本和进程相当,由内核调度.也就是说这种系统时间片是按线程来分配的.这种线程的好处就是可以适当的运用SMP,即针对多核CPU进行调度.
用户级线程,在用户态来调度.所以相对来...
分类:
编程语言 时间:
2014-06-22 22:47:42
阅读次数:
328
C1000k 新思路:用户态 TCP/IP 协议栈如今的server支撑上百万个并发 TCP 连接已经不是新闻(余锋2010年的演讲,ideawu的iComet 开源项目,WhatsApp 做到了 2.5M)。实现 C1000k 的常规做法是调整内核參数,提高文件数,降低每一个连接的内存消耗(參考 ...
分类:
其他好文 时间:
2014-06-19 06:53:17
阅读次数:
478
一、Windows内存架构简介 在用户态(user
mode)中运行的进程通常会使用一个或多个堆托管器。最常见的堆管理器就是Windows堆管理器(windowsheap
manager)。另一个常见的堆管理器就是CLR堆管理器,它是在.Net应用程序中使用。 Windows堆管理器负责满足...
分类:
其他好文 时间:
2014-06-12 10:00:29
阅读次数:
281