摘要: 本文主要参考赵炯博士的Linux内核完全注释进行操作系统编码实验并根据自己的理解进行注释。文中所有代码都经过本人在boches或vmware上运行测试。这里的代码大概是在2013年进行编写测试,最近进行了整理重新测试。之前的你代码是在Redhat9.0是编译,Windows上在bochs进行调测的。 阅读全文
posted @ 2018-01-01 22:34 Bennnyzhao 阅读(369) 评论(0) 推荐(0) 编辑
摘要: // 当用户进程使用select()或poll()方式访问active属性文件时,用户进程可能会进入阻塞状态,// 该函数用来唤醒因访问active属性文件而阻塞的进程void console_sysfs_notify(void){if (consdev)sysfs_notify(&consdev-... 阅读全文
posted @ 2014-08-21 17:35 Bennnyzhao 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 问题:应用程序如何通过一个字符设备文件找到对应的字符设备?本文主要分析linux-2.6.28内核版本的字符设备抽象层源码文件char_dev.c。该文件代码量不大,但其为linux应用程序访问实际字符型硬件设备搭建了桥梁,进一步限定了linux字符设备驱动的设计框架。 1 // 初始化kobj_... 阅读全文
posted @ 2014-08-17 17:33 Bennnyzhao 阅读(1899) 评论(0) 推荐(0) 编辑
摘要: #!/usr/bin/perl -w# 程序代码只是简单说明获取解析网页内容及匹配模式使用的例子,逻辑并不是很严密use utf8;binmode(STDIN, ':encoding(utf8)');binmode(STDOUT, ':encoding(utf8)');binmode(STDERR,... 阅读全文
posted @ 2014-07-23 23:45 Bennnyzhao 阅读(619) 评论(0) 推荐(0) 编辑
摘要: perl命令行参数默认存储在perl自定义变量@ARGV中。#判断参数个数是否为0,根据上下文环境这里就是==符号,这里@ARGV指的是命令行参数数组元素个数if(@ARGV == 0)# 这里@ARGV指的是命令行参数数组,对数据元素遍历,打印出每个元素,这里的$_为foreach的默认自增变量f... 阅读全文
posted @ 2014-07-23 23:33 Bennnyzhao 阅读(934) 评论(0) 推荐(0) 编辑
摘要: #判断一个变量是否匹配一个空字符串,m!pattern! 与 m/pattern/if($str =~ m!^\s*$!)如果仅仅判断字符串为空,可以使用if($str eq "")# 判断$doc变量是否与给定模式相匹配,模式字符串包含字符,\s表示包含空白,[^]*表示匹配不为字符的任何字符。#... 阅读全文
posted @ 2014-07-23 23:32 Bennnyzhao 阅读(666) 评论(0) 推荐(0) 编辑
摘要: # 使用LWP模块的get函数获取网页内容。use LWP::Simple;my $doc=get("http://www.csdn.net");# 获取网页内容后可以对内容进行提取或者其它处理# 将网页内容打印出来print $doc;# 使用post函数向web服务器提交请求。use LWP::... 阅读全文
posted @ 2014-07-23 23:31 Bennnyzhao 阅读(822) 评论(0) 推荐(0) 编辑
摘要: # 使perl程序支持utf8宽字符编码,不添加下面几行打印中文字符时将出现Wide character in print警告或错误。use utf8;binmode(STDIN, ':encoding(utf8)');binmode(STDOUT, ':encoding(utf8)');binmo... 阅读全文
posted @ 2014-07-23 23:29 Bennnyzhao 阅读(244) 评论(0) 推荐(0) 编辑
摘要: perl中DBI模块为mysql数据库相关操作的接口,首先需要在环境中安装DBI模块。perl处理数据库操作的大致步骤如下:#声明使用DBI模块use DBI;#设置数据库连接参数,指定连接数据库名,数据库所在服务器ip地址,连接用户名,密码# db_name为要连接的数据库名,ip为数据库所在服务... 阅读全文
posted @ 2014-07-23 23:28 Bennnyzhao 阅读(1566) 评论(0) 推荐(0) 编辑
摘要: linux DM9000网卡驱动中设置多播地址函数代码为: 1 static void 2 dm9000_hash_table_unlocked(struct net_device *dev) 3 { 4 board_info_t *db = netdev_priv(dev); 5 struct netdev_hw_addr *ha; 6 int i, oft; 7 u32 hash_val; 8 u16 hash_table[4]; 9 u8 rcr = RCR_DIS_LONG | RCR_DIS_CRC | RCR_RXEN;10 11 ... 阅读全文
posted @ 2014-04-07 15:41 Bennnyzhao 阅读(1344) 评论(0) 推荐(0) 编辑