代码改变世界

三皇五帝

2013-05-25 13:28 by zmkeil, 404 阅读, 0 推荐, 收藏, 编辑
摘要:泛指上古中国的杰出领袖,根据山海经记载,中国上古历史大致如下,好像与搜神记的略有不同,都是神话,看看。天皇氏:研究天文地理,创建天干地支地皇氏:研究日月星辰,昼夜论题的学问人皇氏:兄弟九人,考察大地山川,分治天下世界和谐,人和动物和睦相处有巢氏:人开始有了心机,筑巢,抵御动物侵害燧人氏:钻木取火,烹饪,结绳记事伏羲氏:也称太昊,青帝(东方以木为主德),集大成,研究八卦神农氏:也称炎... 阅读全文

贴近原理层的科技发展

2013-05-25 13:27 by zmkeil, 531 阅读, 2 推荐, 收藏, 编辑
摘要:摘自电子工程专辑2013年2月1日首先,这个题目似乎比较奇怪:什么叫做原理、什么叫做原理层,科技发展又难道还有不同层面的么?不是只有不同产业领域和不同水平的(科技产品)么?那么首先一个解释:这里是指对于科技发展的认识眼光、以及发展方法的;贴近原理的发展,简单说就是不去用"抄板"方式从表面尽快做出产品上市,而是另外一些工作,属于提升内功的、一旦提升就可以持续为多种产品和项目服务的那些东西。而原理实际... 阅读全文

Web配置子系统中的一个缺陷纠正

2013-05-25 01:55 by zmkeil, 629 阅读, 0 推荐, 收藏, 编辑
摘要:1.系统简介就是上一篇中提到的那回事,所用系统是uC/OS,协议栈用的是LwIP(轻量级TCP/IP协议栈)。在uC/OS系统中,协议栈被放在一个task中,并且封装了一套API,供其它task调用来发送数据到网络上,或从网络上接受数据。为提高效率,协议栈的socket实现在该netTask中,而数据buffer实现在各自的task中,即不复制数据,而是task间共享。关于LwIP可以参考... 阅读全文

关于uC/OS的简单学习

2013-05-21 23:10 by zmkeil, 1618 阅读, 2 推荐, 收藏, 编辑
摘要:最近实习期间,公司的一款产品,用的是uC/OS系统。产品已开发差不多完成了,有个小缺陷,组长让我改一改,用了一天时间,把Uc/OS大概看了一下。因为之前有linux内核的基础,看这个还比较简单,不过和Linux还是有些区别的。也没细看,只是把作者的那本uC/OS-iii大概翻了一遍。1.微内核 与Linux的首要区别是,它是一个微内核,内核所实现的功能非常简单,主要包括:一些通... 阅读全文

Luci实现框架

2013-05-14 22:01 by zmkeil, 24817 阅读, 2 推荐, 收藏, 编辑
摘要:1.总述 上一篇总结了uhttpd的工作方式,openwrt中利用它作为web服务器,实现客户端web页面配置功能。对于request处理方式,采用的是cgi,而所用的cgi程序就是luci,工作框架如下图所示: Client端和serv端采用cgi方式交互,uhttpd服务器的cgi方式中,fork出一个子进程,子进程利用execl替换为luci进程空间,并通过setenv环境变... 阅读全文

uhttpd的实现框架

2013-05-14 21:58 by zmkeil, 14567 阅读, 3 推荐, 收藏, 编辑
摘要:uhttpd是一个简单的web服务器程序,以前没怎么接触过,所以这里主要是对web服务器设计的一些学习总结。Openwrt系统中,真正用到的(需要了解的),其实不多,主要就是cgi的处理,包括与cgi程序的信息交互等,最后一节详细描述一下。1.HTTP协议概述HTTP协议是目前互联网使用最广泛的应用层协议。其协议框架很简单,在一个TCP连接中,以一问一答的方式进行信息交互。具体讲,... 阅读全文

PPP协议体系的实现

2013-05-02 22:05 by zmkeil, 5946 阅读, 0 推荐, 收藏, 编辑
摘要:其实PPP不像是一种协议,而更像是一种应用,可以把它看成一个拨号上网的应用软件,拨号成功后,本地主机就可以正常上网了,可以使用TCP/IP等协议,而完全感觉不到PPP的存在。而实际上PPP在网络协议栈中增加了不少东西,但对上层透明。另外PPP一般需要底层工具来支持,如之前讲的PPPoE。 Pppoe协议的实现在协议栈中,且其底层有实际的物理设备(或者vlan设备)支持,关键就在于p... 阅读全文

由PPPOE看Linux网络协议栈的实现

2013-05-01 20:28 by zmkeil, 5466 阅读, 4 推荐, 收藏, 编辑
摘要:这个标题起得比较纠结,之前熟知的PPPOE是作为PPP协议的底层载体,而实际上它也是一个完整的协议,不过它的实现比较简单,由它出发,可以很容易理清楚Linux网络栈的实现方式。1.总述Linux中用户空间的网络编程,是以socket为接口,一般创建一个sockfd = socket(family,type,protocol),之后以该sockfd为参数,进行各种系统调用来实现网络通... 阅读全文

Linux下的虚拟Bridge实现

2013-04-21 23:28 by zmkeil, 16059 阅读, 6 推荐, 收藏, 编辑
摘要:Linux下的Bridge也是一种虚拟设备,这多少和vlan有点相似,它依赖于一个或多个从设备。与VLAN不同的是,它不是虚拟出和从设备同一层次的镜像设备,而是虚拟出一个高一层次的设备,并把从设备虚拟化为端口port,且同时处理各个从设备的数据收发及转发,再加上netfilter框架的一些东西,使得它的实现相比vlan复杂得多。1.Bridge的功能框图它是Linux下虚拟出来br... 阅读全文

Linux下VLAN功能的实现

2013-04-18 20:19 by zmkeil, 11065 阅读, 2 推荐, 收藏, 编辑
摘要:1.Linux网络栈下两层实现1.1简介VLAN是网络栈的一个附加功能,且位于下两层。首先来学习Linux中网络栈下两层的实现,再去看如何把VLAN这个功能附加上去。下两层涉及到具体的硬件设备,日趋完善的Linux内核已经做到了很好的代码隔离,对网络设备驱动也是如此,如下图所示: 这里要注意的是,Linux下的网络设备net_dev并不一定都对应实际的硬件设备,只要注册一个struct n... 阅读全文