Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

从Linux Kernel Coding Style看php代码规范

从Linux Kernel Coding Style看php代码规范

从Linux Kernel Coding Style看php代码规范Linux内核的编码是一种极端情况。需要清晰明朗以供全世界的开发者学习、修改,对代码的质量要求较高。相信linus大神在长期接触各种各式代码后脾气会变得更暴躁,就比如前段时间在某论坛痛斥C++。。。节选,去除不适合PHP程序员阅读的部分。如果你开发PHP程序的核心代码,比如框架,尤其建议好好思考。虽然,它和一些权威的代码规范比如discuz和zend的有所冲突,但是依然能从中受益。linu...
Linux2.6.29.6内核netfilter代码中SNAT的过程跟踪

Linux2.6.29.6内核netfilter代码中SNAT的过程跟踪

内核netfilter是通过iptables进行进行过滤规则设置的,因此snat方可通过IPtables工具设置一定的规则来实现。为了得到snat的工作原理,这里介绍一下它的流程:在挂钩点NF_IP_POST_ROUTING安装上钩子(?),首先将Packet钩住,而后调用nf_nat_rule_find来匹配iptables工具在内核设置的规则链。而具体的匹配算法是在ipt_do_table函数中实现的。Ip_do_table函数流程如下:开始:ipt_...
Linux内核动态加载模块

Linux内核动态加载模块

一、安装内核模块:一般步骤:(1) 在/usr/src/linux/下运行make menuconfig把需要编译成模块的项打上(M),保存并退出。(2) 运行make modules,这一步将在/usr/src/linux/下生成*.o或*.ko文件。(3) 运行make modeules_install来安装,这步会把生成的.o或ko文件拷贝到/lib/modules/`uname -r`/下。如果你只要编译某一个或几个模块,就可以用下面这个快速的方法...
Linux如何在系统启动时自动加载模块

Linux如何在系统启动时自动加载模块

为搞清楚如何在系统启动时自动加载模块,搜索了好久,网上有很多人提出这个问题,但都没有正确的答案,无论是中文社区还是英文社区,大家的回答都没有讲到点子上,无非是围绕 modprobe.conf、modprobe讲来讲去的,要不就是针对特定问题尝试不同的方法。有的还建议把modprobe modulename写入rc.local,却不曾想,rc.local的执行被放在整个启动顺序的很后面,而启动init.d下面定义的服务却在 rc.local前面,那么如果某个...
Linux2.6 内核的 Initrd 机制解析

Linux2.6 内核的 Initrd 机制解析

1.什么是 Initrdinitrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 Linux内核启动前, boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd 的情况下,内核启动被分成了两个阶段,第一阶段先执行 initrd ...
Java字符串按字节数截取长度

Java字符串按字节数截取长度

/**/ /* * 题目: * 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 * * 解释: * 此处的编码方式应该是操作系统默认的GB编码,即汉字占2个字节且第一个字节的最高位是1, * 如果理解为有符号数的话,就是负数;而英文占1个字节,符合ASC2码。 */...
Linux USB 鼠标驱动程序详解

Linux USB 鼠标驱动程序详解

USB 总线引出两个重要的链表!一个 USB 总线引出两个重要的链表,一个为 USB 设备链表,一个为 USB 驱动链表。设备链表包含各种系统中的 USB 设备以及这些设备的所有接口,驱动链表包含 USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)。USB 设备驱动程序(usb device driver)和 USB 驱动程序(usb driver)的区别是什么?USB 设备驱动程序包含 USB 设备的一...
Java多线程synchronized注意的地方

Java多线程synchronized注意的地方

今天用到java来实现多线程环境下的单件模式例子,才发现关于synchronized还是有一些地方需要比较小心的。 synchronized是对当前的实例进行加锁,要注意是“当前实例”,也就是说,假如你有两个实例化对象,那么可以同时访问这两个实例里面的synchronized块。但是,当访问一个实例里面的一个synchronized块时,其余的synchronized是不可同时访问的,原因是整个实例都被加了锁。 那假如说是static synchron...
<< 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 >>