摘要:
广为人知的iptables命令行Netfilter作为Linux内置的主机防火墙,它可以使用iptables命令处理IPv4协议,也可以使用ip6tables命令处理IPv6协议。在iptables之前,Linux 2.2中使用ipchains来配置防火墙,Linux 2.0中则使用ipfwadm,它基于BSD的ipfw命令实现。以下命令在RHEL 6.x上执行通过,但也适用于其他Linux发行版。1.显示防火墙的状态以root权限运行下面的命令:#iptables-L-n-v参数说明:-L:列出规则。-v:显示详细信息。此选项会显示接口名称、规则选项和TOS掩码,以及封包和字节计数。-n:以 阅读全文
摘要:
Android Hal 分析 -------rockchip Andy 本文是基于android4.0.3.对应其他低版本的代码,可能有所差异,但基本大同小异。 Android的HAL是为了保护一些硬件提供商的知识产权而提出的,是为了避开linux的GPL束缚。思路是把控制硬件的动作都放到了Android HAL中,而linux driver仅仅完成一些简单的数据交互作用,甚至把硬件寄存器空间直接映射到user space。而Android是基于Aparch的license,因此硬件厂商可以只提供二进制代码,所以说Android只是一个开放的平台,并不是一个开源的平台。也许也正是因为An... 阅读全文
摘要:
System Server是Android系统的核心,他在Dalvik虚拟机启动后立即开始初始化和运行。其它的系统服务在System Server进程的环境中运行。/base/services/java/com/android/server/SystemServer.javaJava代码 /** *ThismethodiscalledfromZygotetoinitializethesystem.Thiswillcausethenative*services(SurfaceFlinger,AudioFlinger,etc..)tobestarted.Afterthatitwillcallbac 阅读全文
摘要:
凡是做模拟信号采集的,很少不涉及BT.656标准的,因为常见的模拟视频信号采集芯片都支持输出BT.656的数字信号,那么,BT.656到底是何种格式呢? 本文将主要介绍 标准的 8bit BT656(4:2:2)YCbCr SDTV(标清) 数字视频信号格式,主要针对刚刚入门模拟视频采集的初学者入门之用。1. 帧的概念(Frame) 一个视频序列是由N个帧组成的,采集图像的时候一般有2种扫描方式,一种是逐行扫描(progressive scanning),一种是隔行扫描(interlaced scanning)。对于隔行扫描,每一帧一般有2个场(field),一个叫顶场(top field), 阅读全文
摘要:
作者:王劲男,华清远见嵌入式学院讲师。计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用 R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为 RGB 色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。根据三基色原理,任意一种色光 F 都可以用不同分量的 R、G、B 三色相加混合而成。F = r [ R ] + g [ G ] + b [ B ]其中,r、g、b 分别为三基色参与混合的系数。当三基色分量都为 0(最弱)时混合为黑色光;而当三基色分量都为 阅读全文
摘要:
1 Linux I2C驱动架构Linux下I2C驱动的架构图如下:图1.1 Linux下I2C驱动架构 如上图所示,每条I2C总线会对应一个adapter,而每条I2C总线上则可以有多个client,在linux kernel中,通过I2C core层将I2C client与I2C adapter关联起来,Linux 中I2C驱动代码位于drivers/i2c目录。 Linux中I2C可以分为三个层次,分别为I2C core层、I2C adapter driver层、I2C device driver层。1.1 I2C core层 I2C core是用于维护Linux的I2C核心部分,提供了核 阅读全文
摘要:
1.kobject, ktype, ksetkobject代表sysfs中的目录。ktype代表kobject的类型,主要包含release函数和attr的读写函数。比如,所有的bus都有同一个bus_type;所有的class都有同一个class_type。kset包含了subsystem概念,kset本身也是一个kobject,所以里面包含了一个kobject对象。另外,kset中包含kset_uevent_ops,里面主要定义了三个函数 int (*filter)(struct kset *kset, struct kobject *kobj); const char *(*name)( 阅读全文
摘要:
[转帖] 近日,与一位老乡聊天,他是一位典型的“老凤凰男”,农村出身,家里只有他一人考进了名牌大学,剩下的两个兄弟和三个妹妹均在家中务农,目前人到中年,混到央企中层,处级待遇,对于一个毫无背景、无人指点的内向守旧型的“凤凰男”来说,也算是事业小成。酒过三巡之后,打开话匣子,他感叹自己的事业本不该如此,回首往事,总结出两大牵绊事业的要素:身后的大家族拖累和自己的悟性太低。对于正在混凝土浇筑的大城市中奋力拼搏的“小凤凰男”,这位资深的“老凤凰男”根据自己的亲身经历也提出了几点忠告,现整理如下,以飨后来之人: “在自己强大之前,不要奢望别人主动的帮助你!” 俗话说,狗不嫌家贫,儿不嫌母丑,你无法.. 阅读全文
摘要:
epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。一、epoll的优点支持一个进程打开大数目的socket描述符。IO效率不随FD数目增加而线性下降。二、epoll的使用epoll有2种工作方式:LT和ET。 LT(leveltriggered,水平触发)是缺省的工作方式,并且同时支持block和no-blocksocket.在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任操作,内核还是会继续通知你的,所以,这种模式编程出错误可能性要小一点。传. 阅读全文
摘要:
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024 表示select最多同时监听1024个fd,当然,可以通过修改头文件再重编译内核来扩大这个数目,但这似乎并不治本。epoll的接口非常简单,一共就三个函数:1. int epo. 阅读全文