摘要:
转自:http://pengpeng.iteye.com/blog/8755210. 内存基本知识 我们通常称 linux的内存子系统为:虚拟内存子系统(virtual memory system),为何这样称谓呢? 其实这个是个很牛的设计。linux充分利用了程序的局部性原理,结合线性地址的概念(虚拟地址)使得运行于操作系统上的每个进程都可以使用所有用户空间主存。而且虚拟内存还解决了内存不连续和碎片的问题(因为在程序来说线性地址都是连续的);每个进程都有各自的页表,虚拟地址空间都各自独立,互补干扰; 那么我们的程序里申请的内存的时候,linux内核其实只分配一个虚拟内存(线性地址),并没有分 阅读全文
posted @ 2013-06-23 19:01
myLittleGarden
阅读(1206)
评论(0)
推荐(0)
摘要:
转自:http://pengpeng.iteye.com/blog/868643 从上篇文章的介绍我们知道linux内核根据TCP/IP网络模型,给我们隐藏了传输层以下的网络传输细节,我们的网络应用程序只需要针对socket编程即可。这篇我们立足网络数据包的I/O。谈谈linux的一些I/O知识。1. 基础知识 我们知道Linux的内核将所有外部设备都可以看做一个文件来操作。那么我们对与外部设备的操作都可以看做对文件进行操作。我们对一个文件的读写,都通过调用内核提供的系统调用;内核给我们返回一个file descriptor(简称:fd,文件描述符);我们通过 ls -l /proc/${p. 阅读全文
posted @ 2013-06-23 19:00
myLittleGarden
阅读(635)
评论(0)
推荐(0)
摘要:
转自:http://pengpeng.iteye.com/blog/875520 本篇从基于TCP/IP协议出发,探讨现代流行的应对高并发请求网络服务端设计架构; 首先回顾一下TCP/IP模型,并知道各个层次在操作系统的哪一个层次; 看上图,OSI模型的底下两层是随系统提供的设备驱动程序和网络硬件。 阅读全文
posted @ 2013-06-23 18:44
myLittleGarden
阅读(354)
评论(0)
推荐(0)