Linux & QNX
文章平均质量分 66
shrekmu
企者不立;跨者不行;自见者不明;自是者不彰;自伐者无功;自矜者不长。
展开
-
Linux下Ping的实现代码
#include #include #include #include #include #include #define PACKET_SIZE 4096#define ERROR 0#define SUCCESS 1// 效验算法unsigned short cal_chksum(unsigned short *addr, int len){原创 2007-02-06 20:55:00 · 3787 阅读 · 0 评论 -
QNX中库的链接与资源管理
一、链接 系统中会提供一些共同的库,如printf()、malloc()、write()等。 静态链接(Statically link)是说程序与特定的库文件在链接时链在一起,这时我们不能改变这种链接状态,除非我们重新链接。静态链接的程序通常以.a结尾,如libc.a。 动态链接(Dynamically link)是说程序中包含了所需要链接库的加载信息,并在运行时加载并链接这些库原创 2010-05-06 15:11:00 · 1606 阅读 · 0 评论 -
QNX的文件系统
QNX支持多种文件系统。多数文件系统都是挂在指定路径下的资源管理器。QNX的文件系统有如下特点: ・文件系统能够动态启动和终了 ・多个文件系统可能同时运行 ・提供给程序一个与配置和文件系统数无关的、统一的路径空间和接口 ・一个点上的文件系统对于其他点时透明的?一、简介1、Filesystem的种类 ・Image:一个特殊的文件系统,在Image中提供各翻译 2010-05-08 11:05:00 · 3574 阅读 · 0 评论 -
关于QNX文件系统的悲剧
公司最近开发的系统中偶尔会发生文件的损坏和目录的丢失,在调查的过程中发现使用自己不了解的东西总是要付出代价的。这里记录下调查的过程: 首先在测试环境了作了以下两个实验: ①长时间连续读写文件 ②写文件中断电 实验①在15小时的连续读取中没有发生文件损坏及目录丢失、实验②20次的断电实验中也没有发生即存文件的损坏,这是唯一的一个好消息,说明这个问题发生的机率很低。原创 2010-05-08 18:38:00 · 1749 阅读 · 1 评论 -
QNX的字符IO
一、简介 字符设备是一种通过一组串行字节进行IO操作的设备,与块设备(如硬盘)不同。PC上的典型字符设备有: ・serial ports:串口 ・parallel ports:并口 ・text-mode consoles:字符模式的控制台 ・pseudo terminals(ptys):虚拟终端 程序通常使用标准的open()、close()、read()、wr翻译 2010-05-09 14:10:00 · 1475 阅读 · 0 评论 -
QNX4文件系统与文件系统的恢复
QNX4 文件系 统 是 QNX Neutrion 默 认 的操作系 统 ,它使用与 QNX4 文件系 统 一 样 的磁 盘结 构,由 fs-qnx4.so 提供,当使用 devc-* 加 载 QNX4 文件系 统时 自 动 加 载 。它使用 (extent-based) , 带 指 纹 的位 图 分配方式,有效防止了数据 丢 失,并且更容易恢复。 ・ 基于 POSIX 文件系统翻译 2010-05-10 16:20:00 · 2243 阅读 · 0 评论 -
QNX的启动
v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 0 2翻译 2010-05-16 16:22:00 · 2889 阅读 · 0 评论 -
Hardware connection
QNX Neutrino在启动时会启动一个设备管理器(device enumerator),它会监测多数硬件的驱动。这个管理器会根据/etc/system/enum/devices里定义的信息,来定义在添加或移除硬件是系统应该作什么。一、PCI/AGP 设备 你可以使用下面的命令来查询你使用的控制器的型号: pci -vvv二、USB设备 USB Bus(Univ翻译 2010-05-16 13:23:00 · 1064 阅读 · 0 评论 -
QNX字符模式下图片显示工具的实现
QNX字符模式下图片显示工具的实现原创 2010-12-02 10:22:00 · 1628 阅读 · 0 评论 -
Linux下的常用命令
1、ps 查看系统的进程 ps -Al | grep java2、kill 杀死进程 kill 20331 数字为ps查出来的进程号3、tail 参看文件 tail -f /opt/jboss-4.2.0.GA/log/200709071802.log -n 500 -f 为持续更新 -n 为初始显示的行数4、rm 删除 rm -fr /opt/jboss-原创 2007-09-07 18:18:00 · 931 阅读 · 0 评论 -
QNX中的多核处理介绍
QNX Neutrino支持以下几种多核处理模式 ・AMP(Asymmetric multiprocessing):非对称式多核处理 每个内核独立,各自运行一个操作系统 ・SMP(Symmetric multiprocessing):对称式多核处理 在SMP中,多个内核紧密耦合,并由操作系统的单个实例控制。SMP本质上是令多核器件从软件角度看是一个处理器的“核技原创 2010-05-03 14:19:00 · 1226 阅读 · 0 评论 -
QNX Neutrino工具版内核 [procnto-instr]
QNX Neutrino提供了一个叫procnto-instr工具版本的内核,它能够让你通过跟踪、解析来实时监视运行中的系统。工具模式[Instrumented module]是非侵入性的,也就是说你不用为了监视去修改你的程序。具体可参照[System Analysis Toolkit Users Guide]。原创 2010-05-03 13:44:00 · 1357 阅读 · 0 评论 -
QNX核心和所提供服务的简介
QNX核心[procnto]主要使用c语言实现,性能的提升与核心大小的提炼都是通过算法和数据接口的重新设计来实现的,而不是使用汇编来实现。 procnto中是包含的一下一下几种服务(进程与线程,同步服务,时钟服务,中断服务),估计为几种机能[threads、message passing、signals(信号量)、clocks、timers、interrupt handlers、sema原创 2010-05-02 10:07:00 · 2185 阅读 · 0 评论 -
Linux下使用shell改文件内容
#!/bin/sh#Parameter Checkif [ $# -ne 1 ]; then echo "Usage: `basename $0` newIp" echo "Examples:" echo " `basename $0` 172.60.0.128" exit 1fiJNLP_NAME="runClient.jnlp"TEMP_NAME="temp.jnlp"IP_REG原创 2007-02-12 17:18:00 · 1109 阅读 · 0 评论 -
如何在while和for中使用ssh
最近在写一个自动更新的shell,可是发现如果在使用while循环从一个文件中读取ip地址,然后访问就只能读取第一行纪录。代码如下:while read LINEdo echo *******************************************$LINE ssh 192.168.10.233 lsdone 但是如果使用for就没有这个问题,非常的原创 2008-06-05 11:23:00 · 2693 阅读 · 1 评论 -
如何强制停止JBoss
#!/bin/bash# output functionoutput(){ _LOG=`date +%Y/%m/%d" "%H:%m:%S`" "$1 echo $_LOG}THEATER_IP=$1# Stop Theaters Jbossif ps auxwww | grep -w jboss | egrep -v grep|stopJboss.sh > /dev/原创 2008-06-05 14:48:00 · 1793 阅读 · 0 评论 -
自动更新的shell,配合stopJboss.sh使用
#!/bin/shUSER="root"SERVER_PATH="/usr/local/jboss-4.2.1.GA/server/dcs1.5"# output functionLOGFILENAME=`date +%Y/%m/%d" "%H:%m:%S`.logoutput(){ _LOG=`date +%Y/%m/%d" "%H:%m:%S`"原创 2008-06-05 17:52:00 · 502 阅读 · 0 评论 -
Linux中任务的定时执行
语法: crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]说明: crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程原创 2009-07-06 12:27:00 · 501 阅读 · 0 评论 -
LINUX中xargs命令的使用
ps -ef | awk $6=="?" && /JZ[A-z0-9_]*/.sh/{print $2} | xargs kill -KILL 用途:关闭系统中符合条件的进程。原创 2010-01-25 13:09:00 · 514 阅读 · 0 评论 -
QNX简介
最近公司的一个项目是基于QNX的,在这里整理一下QNX的简介。 简介 QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进原创 2010-04-30 12:44:00 · 2187 阅读 · 0 评论 -
QNX的进程管理
QNX Neutrino中的Process Manager包含了以下三个方面: ・Process management[进程管理]:对进程的创建,销毁和进行的属性如UID(user ID)和GID(group ID)进行管理。 ・Memory management[内存管理]:管理进程的地址空间和共享库,和进程内的共享内存。 ・Pathname management[路径管理原创 2010-05-03 17:23:00 · 1654 阅读 · 0 评论 -
QNX中的进程间通信(IPC)
在QNX Neutrino中消息传递(Message passing)是IPC的主要形式,其他形式也都是基于消息传递来实现的。QNX中提供了如下一个形式的IPC: Serive: Implemented in: ・Message-passing Kernel ・Signals原创 2010-05-03 12:49:00 · 2741 阅读 · 0 评论 -
80x86寄存器
80x86寄存器 【注意】本文使用到的汇编指令的语法是Intel汇编语法,除此之外的内容与汇编语法无关 【80x86寄存器】 32位CPU所含有的寄存器有: ・4个32位通用寄存器(EAX、EBX、ECX和EDX) ・2个32位变址和指针寄存器(ESI和EDI) 2个32位指针寄存器(ESP和EBP) ・6个[16位(段选择符)+隐藏部分(描述符缓冲)]段寄存器(转载 2013-02-18 16:27:13 · 4054 阅读 · 0 评论