linux

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年4月11日

摘要: 在Linux的用户空间,我们经常会调用系统调用,下面我们跟踪一下read系统调用,使用的Linux内核版本为Linux2.6.37。不同的Linux版本其中的实现略有不同。在一些应用中我们可以看到下面的一些定义:#define real_read(fd, buf, count ) (syscall(SYS_read, (fd), (buf), (count))) 其实真正调用的还是系统函数syscall(SYS_read),也就是sys_read()函数中,在Linux2.6.37中的利用几个宏定义实现。 Linux 系统调用(SCI,system call interface)的实现机制实. 阅读全文
posted @ 2011-04-11 23:17 h13 阅读(21771) 评论(2) 推荐(2) 编辑

摘要: 开发者的技术成长是个永恒的话题。《如何成为一个专家级的开发者》文中虽然界定了专家的概念和开发者成长为专家级的一般路径,但却忽视了一个问题:为什么只有少数人能成长为开发高手和专家级程序员?一般程序员与开发高手的差距在哪里? 事实上,我们一直在关注这一问题,并就此进行了数月的调查走访,受访的十几位技术专家对此问题的回答有些出乎我们的意料,也与众多入门级开发者所想象的“差距”大不相同。 入门者说 我们在一些具有1-2年开发经验的程序员就“你与开发高手的差距在哪里”的问题进行调查,得到的答案大致可以归纳为以下几种:项目经验。多数入门级程序员认为,大量的项目经验是提高自身技术水平的关键;高手们往往具有. 阅读全文
posted @ 2011-04-11 22:56 h13 阅读(322) 评论(0) 推荐(0) 编辑

摘要: skb_put() 增长数据区的长度来为memcpy准备空间. 许多的网络操作需要加入一些桢头, 这可以使用skb_push来将数据区向后推, 为头留出空间. 请参见下图: ---------------------------------------- | head | data | | ---------------------------------------- skb_put ----------------------------------------- | head | data | put_data | | ---------------------------------- 阅读全文
posted @ 2011-04-11 13:36 h13 阅读(5112) 评论(0) 推荐(0) 编辑