- 博客(106)
- 收藏
- 关注
转载 深入理解Linux网络技术内幕——设备的注册与初始化(二)
设备注册于设备除名 设备注册与设备除名一般有register_netdev和unregister_netdev完成。这两个是包裹函数,负责上锁,真正起作用的是其调用的register_netdevice和unregister_netdevice。参见:net/core/dev.c。 下图描述了设备注册过程中的一些状态变化 ...
2015-02-08 11:00:00
546
转载 深入理解Linux网络技术内幕——设备的注册与初始化(一)
副标题:设备注册相关的基本结构的原理框架设备注册与删除时间 设备在下列两种情况下进行注册:1)加载NIC驱动时2)插入热插拔设备时 这里NIC与热插拔设备有些不同。a.对于非热插拔NIC来说,NIC的注册是伴随着其驱动的发生的,而NIC可以内建到内核,也可以作为模块载入,如果内建入内核,则NIC设备和初始化均发生在引导时,如果NIC作为模块加载...
2015-02-06 11:38:00
421
转载 深入理解Linux网络技术内幕——内核基础架构和组件初始化
引导期间的内核选项 Linux允许用户把内核配置选项传给引导记录,再有引导记录传给内核,以便对内核进行调整。 start_kernel中调用两次parse_args,用于引导期间配置用户输入数据。 parse_param是一个函数,用于解析输入的内核配置选项的参数字符串。字符串的格式为:name_variable=value。寻址特定关键字,...
2015-02-05 16:02:00
291
转载 深入理解Linux网络技术内幕——PCI层和网络接口卡
概述 内核的PCI子系统(即PCI层)提供了不同设备一些通用的功能,以便简化各种设备驱动程序。 PCI层重要结构体如下:pci_device_id 设备标识,根据PCI标志定义的ID,而不是Linux本地的。pci_dev 类似于网络设备的net_device。每个PCI会被分配一个net_dev实例。...
2015-02-05 14:17:00
258
转载 深入理解Linux网络技术内幕——网络设备初始化
概述 内核的初始化过程过程中,与网络相关的工作如下所示: 内核引导时执行start_kernel,start_kernel结束之前会调用rest_init,rest_init初始化内核线程init(在Linux3-12中为kernel_init)。asmlinkage void __init start_kernel(void){ ....
2015-02-03 14:25:00
345
转载 深入理解Linux网络技术内幕——用户空间与内核空间交互
概述: 内核空间与用户空间经常需要进行交互。举个例子:当用户空间使用一些配置命令如ifconfig或route时,内核处理程序就要响应这些处理请求。 用户空间与内核有多种交互方式,最常用的有以下四种:通过/proc虚拟文件系统,通过/sys虚拟文件系统,通过ioctl系统调用,通过Netlink socket。 其中编写程序时最常使用ioctl,这四种方式...
2015-01-30 14:29:00
93
转载 深入理解Linux网络技术内幕——Notification内核通知表链
为什么要有内核通知表链: Linux由多个相互依赖的子系统组成。其中一些子系统可能需要对其他子系统的一些事件感兴趣。这样子系统之间需要一些通信机制来实现这一功能。 在接触Notification Chain之前,我们可能想到通过轮询来实现,事件发生时,子系统轮询所有其他的子系统,看看有没有对这一事件感兴趣的,有没有需要执行的子函数。If (su...
2015-01-29 14:26:00
143
转载 程序员技术练级攻略
转载自:点击打开链接月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web...
2015-01-05 09:43:00
69
转载 网桥
转载自:网桥网桥 网桥(Bridge)像一个聪明的中继器。中继器从一个网络电缆里接收信号, 放大它们,将其送入下一个电缆。相比较而言,网桥对从关卡上传下来的信息更敏锐一些。 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。网络1...
2014-12-25 10:24:00
251
转载 几种视频编码器的编译及使用方法
转载自:最简单的视频编码器:编译最近研究了一下几种常见的视频编码器:x264,x265,vpx。本文简单记录一下它们的编译方法。x264,x265,vpx这三个开源的视频编码器可以说是当今“最火”的视频编码器。x264现在占据着H.264视频编码器的半壁江山;x265则是目前实现H.265标准最好的开源视频编码器,并且在未来可能接替x264;而vp...
2014-12-22 08:57:00
191
转载 一位程序员工作10年总结的13个忠告
转载自:一位程序员工作10年总结的13个忠告 该文后面有一个评论也一起转载了。展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告。走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程 序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得...
2014-12-19 08:37:00
51
转载 tcpdump学习笔记
简介 简单的说,tcpdump就是一个抓包工具,类似Wireshark。 tcpdump可以根据使用者的定义过滤/截取网络上的数据包,并进行分析。tcpdump可以将数据包的头部完全接货下来进行分析。支持网络层、协议层、主机、端口等特定规则的过滤。tcpdump的使用快速入门 首先接收两个选项-i 指定网络接口-w 将...
2014-12-18 13:59:00
326
转载 软件工程师鄙视链
軟體工程師的鄙視鏈2014/12/12/在網誌裡鬼扯才是正經事/110 Replies最近這幾年在世界各地突然吹起了一股全民寫程式的風潮,連美國總統歐巴馬都在寫 JavaScript 了,但是身為一介靠寫程式(以及在上班時間胡亂上網)來謀生的 developer(所謂的 developer 就是「軟體工程師」的比較潮的說法),想要提醒...
2014-12-17 12:22:00
175
转载 kill与kill -9的区别
有时候我们使用kill无法杀掉一个进程,但是用kill -9却可以,why? 首先看一下kill的功能,man手册对kill描述如下:KILL(1) Linux User's Manual KI...
2014-12-09 10:17:00
275
转载 git 错误 fatal: loose object...is corrupt
错误描述:error: object file .git/objects/9a/83e9c5b3d697d12a2e315e1777ceaf27ea1bab is emptyfatal: loose object 9a83e9c5b3d697d12a2e315e1777ceaf27ea1bab (stored in .git/objects/9a/83e9c5b3d697d...
2014-12-02 12:20:00
330
转载 网络模型各层设备
物理层中继器、集线器数据链路层交换机、网桥网络层路由器一、物理层1.中继器 中继器是最简单的网络互联设备,连接同一个网络的两个或多个网段。完成物理信号的复 制、调整和放大功能,以此从而增加信号传输的距离。中继器只将任何电缆段上的数据发送到另一段电缆上,并不管数据中是否有错误数据或不适于网段的数据。2.集线器 集线器也称HUB,属于共享型设备,接收数据广播发出,在局域网内...
2014-12-01 21:03:00
221
转载 字节序与大小端
为什么会有字节序问题1. 内存以8bit为一个地址单位:早期的处理器地址以8bit为一个单位(8位处理器),也就是说一次可以访问8bit的数据,后来出现了16位,32位甚至64位的处理器,但为了兼容最早的8位处理器,因此沿用8bit为一个地址单位。2. 大于8位的处理器,如32位处理器,虽然每个8bit(一个字节)存储数据的方式是一样的,但是针对整形这样的有多个字节的数据...
2014-11-26 09:26:00
89
转载 用于调试的printf函数和自定义log函数
1. 用宏定义调试用的DPRINT#define DEBUG_ENABLE#ifdef DEBUG_ENABLE#define DPRINT(fmt, args...) fprintf(stderr, "[DPRINT...][%s %d] "fmt"\n", __FILE__, __LINE__, ##args); #else#define DPRINT(fmt...
2014-11-26 09:24:00
533
转载 网络编程I/O函数介绍
read和write#include <unistd.h>ssize_t read(int fd, void *buf, size_t count);ssize_t write(int fd, const void *buf, size_t count);参数:fd: 文件描述符buf:数据缓冲区,用于保存要从fd读取或写入的数据c...
2014-10-30 12:07:00
111
转载 将VIM打造成强大的IDE
转载自:所需即所获:像 IDE 一样使用 vim如侵犯您的版权,请联系:2378264731@qq.com-----------------------------------------------------------------------【正文】开始前,我假设你:0)具备基本的 vim 操作能力,清楚如何打开/...
2014-10-14 09:02:00
749
转载 IGMP技术总结
转载自: IGMP技术总结本博客(http://blog.csdn.net/livelylittlefish)贴出作者(三二一、小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!1.IGMP简介IGMP是Internet Group Management Protocol(互联网组管理协议)的简称。它是TCP/IP协议族...
2014-09-24 19:01:00
104
转载 无线网络通信技术完全介绍
转载自:无线网络通信技术完全介绍如侵犯您的版权,请联系2378264731@qq.com根据国际上所采用的通信技术种类可将无线传感器网络划分为无线广域网(WWAN)、无线城域网(WMAN)、无线局域网(WLAN)、无线个域网(WPAN)、低速率无线个域网(LR-WPAN)。以下是对各类网络各自常见和常用的通信技术进行简单介绍。1无线广域网(WWAN...
2014-09-23 14:25:00
1315
转载 多网卡下,vlc发送IGMP组播报告包
这两天测试IGMP遇到一个问题,环境描述如下:我的vlc客户端安装在windows下,该PC有两张网卡,本地连接1接公司网,本地链接2 接路由器。wireshark坚挺本地链接2,以测试路由的IGMP功能。结果vlc加入一个多播组时,wireshark没有都是加入组的包。。原因:报告包都发往本地链接1了。我的本地链接1的IP是172.*.*.* 而路由器是1...
2014-09-23 11:15:00
915
转载 WIFI 基础知识
转载自:wifi基本知识如侵犯您的版权,请联系:2378264731@qq.com1. IE802.11简介标准号IEEE 802.11bIEEE 802.11aIEEE 802.11gIEEE 802.11n标准发布时间1999年9月1999年9月2003年6月2009年9月...
2014-09-22 11:15:00
104
转载 WiFi无线网络参数 802.11a/b/g/n 详解
转载自:WiFi无线网络参数 802.11a/b/g/n 详解如转载侵犯您的版权,请联系:2378264731@qq.com802.11a/b/g/n,其实指的是无线网络协议,细分为802.11a、802.11b、802.11g、802.11n等。这几种不同的无线协议、都是由802.11演变而来的。 802.11是IEEE最初制定的一个无...
2014-09-22 10:46:00
5702
转载 vim使用技巧
(一)各种文本操作各种跳转h,j,k,lh左移一个字符,j下移一行,k上移一行,l右移一个字符w,bw 下一个单词,b上一个单词0,$行首,行尾G,gg,30%3G跳到第3行,gg跳到第一行行首,30%:30%处%括号匹配f,/f:字符查找,/:单词...
2014-09-19 14:32:00
65
转载 IGMP 因特网组管理协议
IGMP(Internet Group Management Protocol)作为因特网组管理协议,用于多播。 与ICMP一样,IGMP也被当作 IP 层的一部分,IGMP报文也通过IP数据报进行传输。 IGMP 在TCP/IP中负责局域网IP多播组成员管理的协议。用来在多播路由器与其局域...
2014-09-19 11:18:00
210
转载 IP多播(组播)
IP多播是实现数据一对多通信的模式。从一个源点传送到多个目的地,数据只拷贝一份。这里说的数据只拷贝一份,是指在每一条需要它的两个点之间,数据只有一份。如下图为《计算机网络》(谢希仁)第五版中单播与多播示意图。 因特网上的多播成为IP多播。多播组 实现多播,必然就需要有多播组。多播组需要有自己的标识符...
2014-09-19 10:34:00
650
转载 Ubuntu12.04 中文输入法设置
1、ibus输入法Ubuntu系统安装后已经自带了ibus输入法,在英语环境下默认不启动。配置ibus自动启动可 以在ubuntu系统菜单上选择System(系统)--- Preferences(首选项) --- Startup Applications(启动应用程序),在该窗口中点“添加“按钮,增加一个程序:Name(名称): ibu...
2014-09-19 09:22:00
301
转载 周鸿祎:互联网成功十大案例
转载自:周鸿祎:互联网成功十大案例如侵犯您的权益,请联系:windeal12@qq.comTOP10 百度早期如何打动用户?当年百度的市场份额能获得这么多,真的是搜索技术比谷歌做得好?不是,是因为百度有MP3搜索。民工兄弟们交流的时候肯定不会说:我在用一个搜索引擎,使用了高级的搜索技术。他们会说:有一个网站,上面可以免费听歌,可以免费下歌,...
2014-09-18 12:38:00
260
转载 sed用法详解
转载自:SED单行脚本快速参考(Unix 流编辑器)如侵犯您的版权,请联系:Windeal12@qq.com-------------------------------------------------------------------------SED单行脚本快速参考(Unix 流编辑器) 2005年12月29...
2014-09-18 11:59:00
146
转载 awk与sed:一个关于多行处理的例子
前几天在CSDN上看到一个帖子http://bbs.csdn.net/topics/390848841,楼主贴了下面的问题:例:123456789012345678901234567890如何能把上面数据转换成123456789012345678901234567890 看了几位网友的回复,觉得还是挺有意思,也收获了一些知识,因为部分网友只给出了解决...
2014-09-17 15:53:00
76
转载 igmpproxy源代码学习——igmpProxyInit()
igmpproxy源代码学习——igmpProxyInit()函数详解,igmpproxy初始化在运行igmpproxy的主程序igmpproxyRun()之前需要对igmpproxy进行一些配置,这些配置都是在igmpProxyInit()中完成的。要进行的配置主要有:信号处理配置物理网络接口配置加载配置文件的加载虚拟网络设备初始...
2014-09-17 11:07:00
444
转载 获取网络接口信息——ioctl()函数与结构体struct ifreq、 struct ifconf
转载请注明出处:windeal专栏Linux 下 可以使用ioctl()函数 以及 结构体 struct ifreq 结构体struct ifconf来获取网络接口的各种信息。ioctl首先看ioctl()用法ioctl()原型如下: #include <sys/ioctl.h> ...
2014-09-16 17:57:00
543
转载 unix网络编程——ioctl 函数的用法详解
转载自:unix网络编程——ioctl 函数的用法详解[置顶]unix网络编程——ioctl 函数的用法详解分类:2.2. 网络2012-11-26 21:393833人阅读评论(2)收藏举报目录(?)[+]1.介绍Linux网络程序与内核交互的方法是通过ioctl来实现的,io...
2014-09-16 10:42:00
193
转载 九大排序算法再总结
转载自:九大排序算法再总结九大排序算法再总结分类:【算法导论】2013-01-03 21:4614723人阅读评论(5)收藏举报目录(?)[+]如果要转载,需要注明出处:http://blog.csdn.net/xiazdong本文是http://blog.csdn....
2014-09-15 17:23:00
69
转载 浅谈《剑指offer》原题:不使用条件、循环语句求1+2+……+n
转载自:浅谈《剑指offer》原题:求1+2+……+n如侵犯您的版权,请联系:windeal12@qq.com《剑指offer》上的一道原题,求1+2+……+n,要求不能使用乘除法,for、while、if、else、switch、case等关键字以及条件判断语句(a?b:c)。第一次看到这道题大约有一年的时间了,在霸笔网易的时候,当时我就...
2014-09-15 17:11:00
101
转载 vim+ctags用法
vim用法 在VIM编辑器的环境下用“:make”就可以编译程序,如果程序中有错误,就会显示出来。 下列命令可以快速定位,并修改错误错误 “:cl”列出错误 “:cn”让光标指向下一个错误 “:cp”让光标指向上一个错误 “:cnew”从头开始 ...
2014-09-15 15:33:00
167
转载 Shell学习笔记——算数运算与条件测试
算数运算1. 使用let命令 #!/sbin/bashvar1=2var2=3let sum=var1+var2echo $sum使用let命令式,变量前不需要加$号只用于整数运算,不适用浮点数2. 使用$[...][]的使用与let类似#!/sbin/bashvar1=2var2...
2014-09-15 10:17:00
134
转载 core文件介绍
原文链接:http://team.eyou.com/?p=27如有侵犯您的版权,请联系windeal12@qq.comlinux下,产生core文件,和不产生core文件的条件:当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问题的地方。最常出现的,几乎所有C程序员都出现过的错误就是“段错误”了。也...
2014-09-15 10:09:00
510
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人