内聚度和耦合度

一、联系 当一个程序段或语句(指令) 引用了其它程序段或语句(指令)中所定义或使用的数据名(即存贮区、地址等)或代码时,他们之间就发生了联系。一个程序被划分为若干模块时,联系既可存在于模块之间,也可存在于一个模块内的程序段或语句之间,即模块内部。联系反映了系统中程序段或语句之间的关系,不同类型的联系构成不同质量的系统。因此,联系是系统设计必须考虑...

作者: sandroli 发布时间: 01-05

实例解读网卡驱动

Tg3 Gbit NIC Driver Analysis 在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。 1, 驱动模块的加载和卸载 如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且...

作者: 空灵静世 发布时间: 01-04

nginx配合puppet实现大负载下的负载均衡

当client数量越来越多的情况下,但puppetmaster是无法满足需求的,会导致较高的失败率,类似如time out之类的,这时候就可以做成master群集。步骤如下: 1、相信到了这一步,基本的puppetmaster之类的包肯定都安装完毕了,做成集群还需要一个特殊的包:rubygem-mongrel,安装yum install rubygem-mongrel 2、编辑/etc/sysconfig/puppetmaster,添加下面2行 PUPPETMASTER_POR...

作者: serwei 发布时间: 01-05

利用Apache的deflate模块压缩HTTP传输量

为了节约带宽,减少网络传输量,加快网速,我们决定对网页进行压缩后再传输给客户. 可以选择gzip或者gzip来压缩. 我们的服务器软件是Apache 2.2.3 / CentOS 5 Apache2.x版本自带了deflate模块,我们可以直接使用(Apache 1.x 使用 modgzip). 配置: vim /etc/httpd/conf/httpd.conf /mod_deflate 查找 应该能找到 LoadModule deflate_module modules/mod_deflate.so 如果前面有#注...

作者: realmon 发布时间: 01-04

模拟鼠标事件的处理

板子上的USB接口坏掉了,为了重现有鼠标时的状态,现做一个模拟鼠标: input.h usbmouse.h struct mouse_my g_mt; int mouse_state; #define BUFFER 800 #define SERV_PORT 7838 void *read_uart_mouse(void *para) { int sockfd; //socklen_t len; socklen_t src_len; struct sockaddr_in servaddr, cliaddr; char msg[BUFFER]; sockfd = socket(AF_INET, SOCK_DGRAM, 0); ...

作者: willwwei 发布时间: 01-04

cache软件设计

cache软件设计 haproxy作为一个7层负载均衡软件,在很大程度上可以支撑高可扩展的应用服务架构。但是在目前的高性能服务架构设计中,不可或缺的引入了cache层。这样导致应用服务架构层次越来越多。一般情况下会是如下所示: L4(四层负载均衡)——>L7(七层负载均衡)——>cache(反向代理)——>server(原始服务器) 在热点比较集中的情况下,可以考虑把L7和cache合并。处于这...

作者: cbin_07 发布时间: 01-04

修改dbid

可以通过nid命令来修改数据库的dbid或者db_name 修改后需要关闭数据库,用open resetlogs打开,旧的备份都将失效 参考一下测试 最初的dbid如下: DBID NAME ---------- ----- 904273405 FOX c:>nid target=/ Connected to database FOX (DBID=904273405) Control Files in database: D:\ORACLE\ORADATA\FOX\CONTROL01.CTL D:\ORACLE\ORADATA\FOX\CONTROL02.CTL Change datab...

作者: lovegigi1999 发布时间: 01-04

解决: 动态 MMap 没有空间了。请增大 APT::Cache..

装完ubuntu 10.04后就无法更新了,出现如下问题E: 动态 MMap 没有空间了。请增大 APT::Cache-Limit 的大小。当前值:25165824。(man 5 apt.conf)E: 处理 linux-headers-2.6.24-25 (NewVersion1)时出错E: Problem with MergeList /var/lib/apt/lists/debian.ustc.edu.cn_ubuntu_dists_hardy-updates_main_binary-i386_PackagesE: 无法解析或打开软件包列表或状态文件。E: _ca...

作者: lin_13824307069 发布时间: 01-05

Netfilter源码分析--6、NAT

六、NAT 6.1、简介 网络地址转换源(NAT)分为(Source NAT,SNAT)和目的NAT(Destination NAT, DNAT)2种不同的类型。SNAT是指修改数据包的源地址(改变连接的源IP)。SNAT会在数据包送出之前的最后一刻做好转工作。地址伪装 (Masquerading)是SNAT的一种特殊形式。DNAT 是指修改数据包的目标地址(改变连接的目的IP)。DNAT 总是在数据包进入以后立即转发,端口转发,负载平衡和透明...

作者: jazy333 发布时间: 01-05

container_of()宏的简要解析[转载!!!]

作者: 和c/c++相关 2010/11/16 简介:这是container_of()宏的简要解析的详细页面,介绍了和c/c++,有关的知识、技巧、经验,和一些c/c++源码等。 在学习linux驱动的过程中,遇到一个宏叫做container_of。 该宏定义在include/linux/kernel.h中,首先来贴出它的代码: 1. 439/** 2. 440 * container_of - cast a member of a structure out to the containing structure 3. 44...

作者: lxp-linux 发布时间: 01-06