
Linux
羽盛
做过windows下软件开发,数据库开发, 嵌入式开发。
目前主要在嵌入式开发领域。
展开
-
eCos与uC/OS-II内核实现的比较
=======================线程结构信息:eCos使用cyg_thread类表示线程,用cyg_thread_info结构存储线程信息,而UC/OS使用TCB结构表示任务=======================调度单位:eCos调度以线程为单位,状态有CREATING SUSPENDED RUNNING(包括准备运行和正在运行) SLEEPSET(包括S转载 2014-02-28 17:43:21 · 1266 阅读 · 0 评论 -
Linux IP Masquerade
P Masquerade 是 Linux 发展中的一种网路功能.如果一台 Linux 主机使用 IP Masquerade功能连线到网际网路上,那麽接上它的电脑(不论是在同一个区域网路上或藉由数据机连线)也可以接触网际网路,即使它们没有获得正式指定的 IP 位址.这使得一些电脑可以隐藏在闸道(gateway) 系统後面存取网际网路而不被发现,看起来就像只有这个系统在使用网际网络转载 2009-05-18 14:12:00 · 3317 阅读 · 0 评论 -
rp_filter
The rp_filter can reject incoming packets if theirsource address doesn’t match the network interface that they’rearriving on, which helps to prevent IP spoofing. Turning this on,however, has i转载 2009-05-18 11:05:00 · 4509 阅读 · 0 评论 -
Linux下的定时器:alarm()与setitimer()
Linux下的定时器:alarm()与setitimer()<!--google_ad_client = "pub-7070616161311657";/* 网站右侧300x250创建于08-12-26 */google_ad_slot = "7486809895";google_ad_width = 300;google_ad_height = 250;//-转载 2009-05-04 16:00:00 · 986 阅读 · 1 评论 -
__setup 在内核中的作用
__setup(//做了一次完整的盗贼,我毫无修改的抄袭了一次,但有时间会做量身裁减的//from http://www.linuxforum.net/forum/printthread.php?Cat=&Board=linuxK&main=470221&type=thread关于__setup 在内核中的作用 问题::比如在printk.c有这样一句 __setup("co转载 2009-04-22 13:29:00 · 3197 阅读 · 0 评论 -
linux启动时挂载rootfs的几种方式
根文件系统(在样例错误消息中名为 rootfs)是 Linux 的最基本的组件。根文件系统包含支持完整的 Linux 系统所需的所有内容。它包含所有应用程序、配置、设备、数据等 Linux 中,rootfs 是必不可少的。PC 上主要实现有 ramdisk 和直接挂载 HD(Harddisk,硬盘)上的根文件系统;嵌入式中一般不从 HD 启动,而是从 Flash 启动,最简单的方转载 2009-04-22 13:26:00 · 1834 阅读 · 0 评论 -
netlink socket编程之why & how
netlink socket编程之why & how 作者: Kevin Kaichuan He@2005-1-5 翻译整理:duanjigang @2008-9-15duanjigang1983@126.com>原文: http://www.linuxjournal.com/article/7356 开发和维护内核是一件很繁杂的工作,因此,只有那些最重要或者与系统性能息息转载 2009-04-21 11:50:00 · 717 阅读 · 0 评论 -
内核和用户空间共享内存的实现例程-proc和mmap
之所以想写这篇帖子,是有两个方面原因。其一是内核版有一个关于《内核可以从线性地址直接计算物理地址,用来做什么呢?》的讨论,偶说计算出物理地址可以共享给用户空间读写。dreamice兄说能否说一下详细的应用。其二是alb*版主提到wheelz曾经写过这样一个例程,拜读了一把,发现在传递物理地址和内存大小上,wheelz的例程还有些不够灵活。alb*版主提到可以通过文件的方式实现动态的传转载 2009-04-21 11:31:00 · 819 阅读 · 0 评论 -
Linux 用户态与内核态的交互——netlink 篇
[size=4]Linux 用户态与内核态的交互——netlink 篇[/size]作者:Kendo2006-9-3这是一篇学习笔记,主要是对《Linux 系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载:http://www-128.ibm.com/developerworks/cn/linux/l-netlink/i转载 2009-04-21 10:57:00 · 636 阅读 · 0 评论 -
kill 、killall、pkill、xkill pgrep
终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文转载 2009-04-21 10:03:00 · 722 阅读 · 0 评论 -
cut 命令
本原创文章属于《Linux大棚》博客,博客地址为http://roclinux.cn。文章作者为rocrocket。 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅。===[正文开始]1 一两句话描述一下cut命令吧!正如其名,cut的工作就是“剪”,具体的说就是在文件中负责剪切数据用的。cut是以每一行为一个处理对象的,这种机制和sed是一样的。原创 2009-04-09 18:22:00 · 1125 阅读 · 0 评论 -
短延迟 usleep , msleep, nanosleep select
关于短延迟 sleep usleep nanosleep select udelay(unsigned long usecs);mdelay(unsigned long msecs);前者用软件循环指定的微妙数,后者调用前者达到延迟毫秒级。udelay函数只能用于获取较短的时间延迟,因为loops_per_second值的精度只有8位,所以,当计算更长的延迟时会积累出转载 2009-04-14 16:44:00 · 5958 阅读 · 0 评论 -
GMT和PST--关于时区的知识
GMT和PST--关于时区的知识 1、概念和换算2、日期中的时区标志3、在Oracle 9i中正确转换时区4、redhat9终端方式下更改时区5、java下的时区......GMT和PST--关于时区的知识 我们在网上浏览,在虚拟时空漫游世界时,经常会遇到时区的困扰,这篇文章是什么时间发布的?邮件是什么时间发出的?GMT和PST各代表什么意思,如何换算?等等.我通过互联网搜集了一些小知识,原创 2009-03-31 10:21:00 · 5016 阅读 · 0 评论 -
FIFO 有名管道
有名管道相关的关键概念管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(namedpipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过FIFO相互通信(能够访问该路径的进程以及FIF转载 2009-04-15 14:38:00 · 751 阅读 · 0 评论 -
编码转换
#include #define BUFLEN 200char inbuf[BUFLEN];char outbuf[BUFLEN];char* pin = inbuf;char* pout = outbuf;…打开文件,读入GB2312数据到inbuf,数据长度为 lenint inleft = len;int outleft = BUFLEN;转载 2009-05-21 10:42:00 · 538 阅读 · 0 评论 -
TTY 1
获得当前终端名称Linux系统中提供了ttyname函数,用于判断某个打开的文件描述符是否是某个终端设备。如果是,则返回终端设备的名称,该函数的具体信息如表6.1所示。表6.1 ttyname函数说明:ttyname函数用于返回终端的名称,其中fd为打开终端而获得文件描述符。表6.1 ttyname函数头文件转载 2009-05-25 17:41:00 · 1042 阅读 · 0 评论 -
LINUX: USB-SERIAL / PL2303 工作流程
LINUX: USB-SERIAL / PL2303 工作流程原创 2010-07-28 14:53:00 · 2738 阅读 · 0 评论 -
linux 下线程使用(使用pthread_create)
线程创建的Linux实现我们知道,Linux的线程实现是在核外进行的,核内提供的是创建进程的接口do_fork()。内核提供了两个系统调用__clone()和fork (),最终都用不同的参数调用do_fork()核内API。当然,要想实现线程,没有核心对多进程(其实是轻量级进程)共享数据段的支持是不行的,因此,do_fork()提供了很多参数,包括CLONE_VM(共享内存空间)、CLONE_FS(共享文件系统信息)、CLONE_FILES(共享文件描述符表)、CLONE_SIGHAND(共享信号句柄转载 2010-07-02 16:53:00 · 1218 阅读 · 0 评论 -
understanding linux usb ehci device driver(1) 1
转自: http://www.diybl.com/course/6_system/linux/Linuxjs/2007917/71729.html 大概一年多前,曾经在linux下调试过VIA的一款ehci host controller,当时受项目进度以及知识积累所限,未能深入理解EHCI以及linux下的软件层面实现. 随着个人USB技术的不断积累, 近期在工作之余, 写转载 2010-04-06 14:26:00 · 3680 阅读 · 0 评论 -
ubuntu: 配置网络方法
对 ubuntu不熟悉,前几天装了一个学习, 第一步装上后,就是配置网络,安装软件 1. 配置网络方法: 设置IP地址好像不能在界面管理工具上。 需要如下: Sudo vi /etc/network/intefaces添加Auto eth0Iface eth0 inet Address NewworkNetmaskGete原创 2010-03-24 10:24:00 · 738 阅读 · 0 评论 -
kernel_thread flags 参数
kernel_thread()函数用于创建一个内核线程,该函数的原型如下:pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)flags参数是什莫?kernel_thread()这样调用do_fork():do_fork(flags|CLONE_VM|CLONE_UNT转载 2009-09-25 17:37:00 · 1674 阅读 · 0 评论 -
shell中引号的使用方法
shell中引号的使用方法shell使用引号(单引号/双引号)和反斜线("/")用于向shell解释器屏蔽一些特殊字符.反引号(")对shell则有特殊意义.如:abc="how are you" (bash/pdksh)set abc = "how are you" (tcsh)这个命令行把三个单词组成的字符串how are you作为一个整体赋值给变量abc.abc转载 2009-06-29 13:19:00 · 3644 阅读 · 3 评论 -
i2c-core,i2c总线驱动和i2c设备驱动的关系
2c-client的驱动放在drivers/i2c/chips,就是某个具体i2c设备的驱动底层i2c总线的驱动放在drivers/i2c/busses,就是跟CPU相关的i2c接口drivers/i2c/algos放着i2c上的算法,什么算法,就是如何实现i2c总线上的时序,当然,如果drivers/i2c/busses的CPU相关代码有实现的话就不会用这一部分i2c-core.c更转载 2009-09-01 17:28:00 · 2198 阅读 · 0 评论 -
Linux环境进程间通信: 共享内存
转自: http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需原创 2009-06-19 17:41:00 · 697 阅读 · 0 评论 -
P2P UPD打洞原理
转自:http://blog.pfan.cn/fengfei/18828.html首先先介绍一些基本概念: NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Network原创 2009-06-12 14:54:00 · 764 阅读 · 0 评论 -
完整正确的wav文件格式分析详解
完整正确的wav文件格式分析详解 作者:曹京 日期:2006年7月17日一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“原创 2009-06-11 17:01:00 · 1850 阅读 · 0 评论 -
关于换行符号,在SMS程序中进行解析时,在linux系统 windows系统的不同
关于换行符号,在SMS程序中进行解析时,在linux系统 windows系统的不同 linux: /n 0x0awindow: /r/n 0x0d 0x0a SMS通过GSM模块发送接收短信, 一般通过AT命令实现的。 在发送AT命令后解析返回的字符串,需要注意的是 windows:下0x0d 0x0a linux下:原创 2009-06-03 16:07:00 · 1873 阅读 · 0 评论 -
strip
strip经常用来去除目标文件中的一些符号表、调试符号表信息,以减小程序的大小,在rpmbuild包的最后就用到。其支持的选项如下:>strip -h用法:strip 输入文件从文件中删除符号和节 选项为: -I --input-target= Assume input file is in format -O --output-target=原创 2009-06-03 16:02:00 · 1068 阅读 · 0 评论 -
TTY 3
TTY 线路设置当一个用户要改变一个 tty 设备的线路设置或者获取当前线路设置, 他调用一个许多的不同 termios 用户空间库函数或者直接对这个tty 设备的节点调用 ioctl. tty 核心转换这 2 种接口为许多不同的 tty 驱动函数回调和 ioctl 调用.18.3.1. set_termios 函数大部分 termios 用户转载 2009-05-31 15:39:00 · 879 阅读 · 0 评论 -
linux tty pty pts 概念 区别
linux tty pty pts 概念 区别 转自: http://blog.chinaunix.net/u/6436/showart_1003495.html 基本概念:1. tty(终端设备的统称):tty一词源于Teletypes,或者telety转载 2009-05-31 13:57:00 · 774 阅读 · 0 评论 -
TTY 2
6.4.4 使用tcgetattr函数与tcsetattr函数控制终端为了便于通过程序来获得和修改终端参数,Linux还提供了tcgetattr函数和tcsetattr函数。tcgetattr用于获取终端的相关参数,而tcsetattr函数用于设置终端参数。这两个函数的具体信息如表6.2所示。表6.2 tcgetattr函数和tcsetattr函数头文件转载 2009-05-25 17:43:00 · 1199 阅读 · 1 评论 -
LINUX 的Singal 信号 定义 说明
转载:http://blog.youkuaiyun.com/ljx0305/archive/2008/09/09/2904056.aspxSIGHUP 终止进程 终端线路挂断SIGINT 终止进程 中断进程SIGQUIT 建立CORE文件终止进程,并且生成core文件SIGILL 建立CORE文件 非法指令SIGTRAP 建立转载 2009-04-01 14:16:00 · 2554 阅读 · 0 评论 -
mmap 的使用
对Linux内核内存管理搞了好久了,其中对于mmap如何使用,有很长一段时间存在疑惑,后来在看Linux进程间通信机制的时候看到一篇文章,觉得它对mmap的使用方法讲得很是详细,看过之后,我想大部分人都会理解mmap。因为只有会用了,才能真正理解其实现原理。该文的链接:http://www-128.ibm.com/developer ... c/part5/index1.html转载 2009-04-03 17:04:00 · 1057 阅读 · 0 评论 -
linux 知识
echo "set nu">>~/.vimrc vi 显示行号原创 2009-01-20 11:28:00 · 477 阅读 · 0 评论 -
/proc-filesystem
/proc文件系统/proc 文件系统是一个假的文件系统。它不存在在磁盘某个磁盘上。而是由核心在内存中产生。用于提供关于系统的信息(originally about processes, hence the name)。下面说明一些最重要的文件和目录。/proc 文件系统在proc man页中有更详细的说明。 /proc/1 关于进程1的信息目录。每个进程在/p转载 2009-01-14 14:22:00 · 825 阅读 · 0 评论 -
ISO C90 forbids mixed declarations and code
该警告, 是因为在 c语言 函数中, 变量的声明, 必须在执行语句之前,原创 2008-11-20 15:29:00 · 2600 阅读 · 0 评论 -
Linux/Unix命令之Ethtool
Linux/Unix命令之Ethtool描述:Ethtool是用于查询及设置网卡参数的命令。概要:ethtool ethX //查询ethX网口基本设置ethtool –h //显示ethtool的命令帮助(help)ethtool –i ethX //查询ethX网口的相关信息 ethtool –d ethX //查询ethX网口注册性信息ethtoo转载 2008-11-19 09:26:00 · 1054 阅读 · 0 评论 -
timer_list
nclude/linux/timer.h里声明。 struct timer_list { struct timer_list *next; struct timer_list *prev; unsigned long expires; unsigned long data;转载 2009-01-12 10:25:00 · 3122 阅读 · 0 评论 -
Linux 关机重启流程分析
1.概述在linux下的关机和重启可能由两种行为引发,一是通过用户编程,一是系统自己产生的消息。 用户和系统进行交互的方式也有两个,一个是系统调用:sys_reboot,另一个就是apm或则acpi的设备文件,通过对其操作也可以使系统关机或者重启。 2.通过系统调用sys_reboot的重启这个系统调用定义了一系列的MAGIC_NUMBER,在调用的开始部分首先检查MAGIC_转载 2009-01-12 13:19:00 · 1667 阅读 · 0 评论 -
LINUX标准输入输出
FILE* fopen(const char* filename, const char* opentype); int close(FILE* fp); opentype可选:r rb只读 文件需存在 w wb只写 如果存在就截断文件为0 不存在就创建一个新文件 a ab添加 如果存在保持不变 不存在就创建一个新文件 r+ rb+更新 文件需存在 w+ wb+更新 如果存在就截断文件为0 不存在原创 2009-01-04 14:16:00 · 1275 阅读 · 0 评论