上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 网络设备(network device)是内核对网络适配器(硬件)的抽象与封装,并为各个协议实例提供统一的接口,它是硬件与内核的接口,它有两个特征:(1) 作为基于硬件的网络适配器与基于软件的协议之间的接口;(2) 内核协议栈异步输入输出点。记住:网络设备软件对硬件的抽象网络设备与协议和网络适配器的关系如下:1、 net_device接口(net_device Interface) 网络设备是内核中除了字符设备、块设备之外第三类主要设备,它的主要特征之一就是在设备文件系统/dev/没有相应的表示,即不存在/dev/eth0等,这就意味着不能通过简单的读写操作来访问它们。 net_device结 阅读全文
posted @ 2013-04-08 03:08 盖文 阅读(400) 评论(0) 推荐(0) 编辑
摘要: Linux网络核心数据结构是套接字缓存(socket buffer),简称skb。它代表一个要发送或处理的报文,并贯穿于整个协议栈。1、 套接字缓存skb由两部分组成:(1) 报文数据:它保存了实际在网络中传输的数据;(2) 管理数据:供内核处理报文的额外数据,这些数据构成了协议之间交换的控制信息。当应用程序向一个socket传输数据之后,该socket将创建相应的套接字缓存,并将用户数据拷贝到缓存中。当报文在各协议层传达输的过程中,每一导的报文头将插入到用户数据之前。skb为报文头申请了足够的空间,所以避免了由于插入报文头而对报文进行多次拷贝。用户数据只拷贝了两次:一是从用户空间拷贝到内核; 阅读全文
posted @ 2013-04-08 03:06 盖文 阅读(435) 评论(0) 推荐(0) 编辑
摘要: Linux的I/O机制经历了一下几个阶段的演进:(1)同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。(2)同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可以立即返回,但是并不保证I/O操作成功。(3)异步阻塞I/O: 用户进程可以对I/O事件进行阻塞,但是I/O操作并不阻塞。通过select/poll/epoll等函数调用来达到此目的。(4)异步非阻塞I/O: 也叫做异步I/O(AIO),用户程序可以通过向内核发出I/O请求命令,不用等带I/O事件真正发生,可以继续做另外的事情,等I/O操作完成,内核会通过函数回调或者信号机制 阅读全文
posted @ 2013-04-08 03:05 盖文 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 在360云引擎技术博客的“深入剖析linux GCC 4.4的STL string”这篇blog的指导下,看了一些STL string的实现代码,并针对我们平时对string的一些常规用法做了一些测试。这里做一下总结,希望能帮助大家更好的理解理解STL string,更高效的使用STL string。由于本文涉及到性能对比,接下来会有一些测试程序,所以首先看一下我们的测试环境:1234$ uname -srLinux 2.6.32-220.23.1.tb750.el5.x86_64$ gcc --versiongcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-51 阅读全文
posted @ 2013-04-08 01:42 盖文 阅读(327) 评论(0) 推荐(0) 编辑
摘要: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookeeper的目的就在于此。本文简单分析zookeeper的工作原理,对于如何使用zookeeper不是本文讨论的重点。1 Zookeeper的基本概念1.1 角色Zookeeper中的角色主要有以下三类, 阅读全文
posted @ 2013-04-07 22:46 盖文 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 在一台运行 Linux 的计算机中,CPU 在任何时候只会有如下四种状态:【1】 在处理一个硬中断。【2】 在处理一个软中断,如 softirq、tasklet 和 bh。【3】 运行于内核态,但有进程上下文,即与一个进程相关。【4】 运行一个用户态进程。1. Linux中的进程间通信机制源自于Unix平台上的进程通信机制。Unix的两大分支AT&T Unix和BSD Unix在进程通信实现机制上的各有所不同,前者形成了运行在单个计算机上的System V IPC,后者则实现了基于socket的进程间通信机制。同时Linux也遵循IEEE制定的Posix IPC标准,在三者的基础之上实 阅读全文
posted @ 2013-04-06 18:08 盖文 阅读(2935) 评论(0) 推荐(0) 编辑
摘要: 说明:本文转自 简朝阳(MySQL ACE)的 《MySQL性能调优与架构设计》一.逻辑模块组成总的来说,MySQL可以看成是二层架构,第一层我们通常叫做SQL Layer,在MySQL 数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,sql 解析,执行计划优化,querycache 的处理等等;第二层就是存储引擎层,我们通常叫做Storage Engine Layer,也就是底层数据存取操作实现部分,由多种存储引擎共同组成。所以,可以用如下一张最简单的架构示意图来表示MySQL 的基本架构,如图2-1 所示:虽然从上图看起来MySQL 架构非常的简单,就是简单的两部分而 阅读全文
posted @ 2013-04-06 16:00 盖文 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的1 Connectors指的是不同语言中与SQL的交互2 Management Serveices & Utilities: 系统管理和控制工具3 Connection Pool: 连接池。管理缓冲用户连接,线程处理等需要缓存的需求4 SQL Interface: SQL接口。接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface5 Parser: 解析器。SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YAC 阅读全文
posted @ 2013-04-06 15:58 盖文 阅读(112) 评论(0) 推荐(0) 编辑
摘要: Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被微软看中成为Vista壁纸御用摄影师。Flickr.com 是最初由位于温哥华的Ludicorp公司开发设计并于2004年2月正式发布的,由于大量应用了WEB 2.0技术,注重用户体验,使得其迅速获得了大量的用户,2007年11月,Flickr迎来了第20亿张照片,一年后,这个数字就达到了30亿,并且还 在以加速度增长。 2005年3月,雅虎公司以3千500万美元收购了Ludicorp公司和Flickr.com。虽然Flic 阅读全文
posted @ 2013-04-06 12:34 盖文 阅读(391) 评论(0) 推荐(0) 编辑
摘要: 之前我简单向大家介绍了各个知名大型网站的架构,MySpace的五个里程碑、Flickr的架构、YouTube的架构、PlentyOfFish的架构、WikiPedia的架构。这几个都很典型,我们可以从中获取很多有关网站架构方面的知识,看了之后你会发现你原来的想法很可能是狭隘的。 今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步发展的基本过程,读完后,请思考,你现在在哪个阶段。 架构演变第一步:物理分离WebServer和数据.. 阅读全文
posted @ 2013-04-06 12:24 盖文 阅读(151) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页