- 博客(102)
- 资源 (8)
- 收藏
- 关注
转载 linux 分页机制
1.分段机制 80386的两种工作模式 80386的工作模式包括实地址模式和虚地址模式(保护模式)。Linux主要工作在保护模式下。 分段机制 在保护模式下,80386虚地址空间可达16K个段,每段大小可变,最大达4GB。 从逻辑地址到线性地址的转换由80386分段机制管理。段寄存器CS、DS、ES、SS、FS或GS标识一个段。这些段寄存器作为段选择器,用来选择该段的描述符。 分段
2009-06-05 09:30:00
2461
原创 更改虚拟机硬盘大小
担心创建的虚拟机硬盘容量太大会占用真正的硬盘空间,把硬盘的容量设置得很小,可是等到给虚拟机装好系统后再装其他的软件,才发现硬盘容量不够用了。如果重建虚拟机,还要重新再装一遍操作系统,非常麻烦,而在VMware中又不能直接修改虚拟机的硬盘容量大小,真是麻烦。经过多方请教高人,终于找到了解决之道。其实在VMware安装目录下就有一个vmware-vdiskmanager.exe程序,它是一个命令行工具
2009-04-18 22:32:00
8763
3
转载 Linux系统调用--msgsnd/msgrcv函数详解
【msgsnd/msgrcv系统调用】 功能描述: 在消息队列上进行收发消息。为了发送消息,调用进程对消息队列必须有写权能。接收消息时必须有读权能。 用法: #include #include #include int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);ssize_t msg
2008-08-04 22:31:00
10767
转载 Linux 环境进程间通信(六)
一个套接口可以看作是进程间通信的端点(endpoint),每个套接口的名字都是唯一的(唯一的含义是不言而喻的),其他进程可以发现、连接并且与之通信。通信域用来说明套接口通信的协议,不同的通信域有不同的通信协议以及套接口的地址结构等等,因此,创建一个套接口时,要指明它的通信域。比较常见的是unix域套接口(采用套接口机制实现单机内的进程间通信)及网际通信域。1、背景知识linux目前的网络内
2008-08-04 11:04:00
552
转载 Linux环境进程间通信(五): 共享内存(上)
采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝。对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件。实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域。而是保持共享区域,直到通信完毕为止,
2008-08-04 11:02:00
391
原创 进程间通讯(五):共享内存(下)
系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射特殊文件系统shm中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应特殊文件系统shm中的一个文件(这是通过shmid_kernel结构联系起来的),后面还将阐述。1、系统V共享内存原理进程间需要共享的数据被放在一个叫做IPC共享内存区域的地方,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地
2008-08-04 11:02:00
584
转载 Linux环境进程间通信(四): 信号灯
一、信号灯概述信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。信号灯有以下两种类型:二值信号灯:最简单的信号灯形式,信号灯的值只能取0或1,类似于互斥锁。 注:二值信号灯能够实现互斥锁的功能,但两者的关注内容不同。信号灯强调共享资
2008-08-04 11:00:00
384
转载 Linux环境进程间通信(二): 信号(下)
一、信号生命周期从信号发送到信号处理函数的执行完毕对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个重要的阶段,这三个阶段由四个重要事件来刻画:信号诞生;信号在进程中注册完毕;信号在进程中的注销完毕;信号处理函数执行完毕。相邻两个事件的时间间隔构成信号生命周期的一个阶段。 下面阐述四个事件的实际意义:信号"诞生"。信号的诞生指的是触发信号的事件发
2008-08-04 10:59:00
276
转载 Linux环境进程间通信(二): 信号(上)
一、信号及信号来源信号本质 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基
2008-08-04 10:57:00
228
转载 Linux环境进程间通信(一)
1、 管道概述及相关API应用1.1 管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道; 只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程); 单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自
2008-08-04 10:52:00
253
转载 POSIX 线程详解三
条件变量详解在 上一篇文章结束时,我描述了一个比较特殊的难题:如果线程正在等待某个特定条件发生,它应该如何处理这种情况?它可以重复对互斥对象锁定和解锁,每次都会检查共享数据结构,以查找某个值。但这是在浪费时间和资源,而且这种繁忙查询的效率非常低。解决这个问题的最佳方法是使用 pthread_cond_wait() 调用来等待特殊条件发生。 了解 pthread_cond_wait() 的作
2008-08-04 10:43:00
251
转载 POSIX 线程详解二
互斥我吧!在 前一篇文章中 ,谈到了会导致异常结果的线程代码。两个线程分别对同一个全局变量进行了二十次加一。变量的值最后应该是 40,但最终值却是 21。这是怎么回事呢?因为一个线程不停地“取消”了另一个线程执行的加一操作,所以产生这个问题。现在让我们来查看改正后的代码,它使用 互斥对象(mutex)来解决该问题: thread3.c#include #include
2008-08-04 10:42:00
264
转载 POSIX 线程详解 一
线程是有趣的了解如何正确运用线程是每一个优秀程序员必备的素质。线程类似于进程。如同进程,线程由内核按时间分片进行管理。在单处理器系统中,内核使用时间分片来模拟线程的并发执行,这种方式和进程的相同。而在多处理器系统中,如同多个进程,线程实际上一样可以并发执行。那么为什么对于大多数合作性任务,多线程比多个独立的进程更优越呢?这是因为,线程共享相同的内存空间。不同的线程可以存取内存中的同一个变量
2008-08-04 10:41:00
265
转载 AWK实例一
第一个 Awk您应该会看到 /ect/passwd 文件中的内容,本文使用该文件来解释 awk 的工作原理。当调用 awk 时,我们指定 /etc/passwd 作为输入文件。Awk 在执行期间对 /etc/passwd 文件中的每一行依次执行 print 命令。所有输出都发送到 stdout,可以得到类似 cat 命令的结果。现在解释代码块 { print }。在 Awk 中,花括号用于
2008-08-04 10:34:00
550
转载 AWK实例二
多行记录awk 是一种用于读取和处理结构化数据(如系统的 /etc/passwd 文件)的极佳工具。/etc/passwd 是 UNIX 用户数据库,并且是用冒号定界的文本文件,它包含许多重要信息,包括所有现有用户帐户和用户标识,以及其它信息。在我的 前一篇文章 中,我演示了 awk 如何轻松地分析这个文件。我们只须将 FS(字段分隔符)变量设置成 ":"。 正确设置了 FS 变量之后,就
2008-08-04 10:33:00
313
转载 AWK实例三
格式化输出虽然大多数情况下 awk 的 print 语句可以完成任务,但有时我们还需要更多。在那些情况下,awk 提供了两个我们熟知的老朋友 printf() 和 sprintf()。是的,如同其它许多 awk 部件一样,这些函数等同于相应的 C 语言函数。printf() 会将格式化字符串打印到 stdout,而 sprintf() 则返回可以赋值给变量的格式化字符串。如果不熟悉 print
2008-08-04 10:32:00
320
转载 使用AWK处理二进制文件
本文主要是介绍如何将AWK和其他Unix下的文本处理工具组合起来,使得一个只能处理文本文件的工具,同样可以处理二进制数据文件中的数据。AWK是Unix下的一款功能强大的文本格式化和抽取工具。利用这个工具,可以对复杂的文本文件进行整理,提取其中的全部或者部分数据,按照需要的格式予以显示。需要说明的是,AWK的强大功能只针对纯文本文件。对于带有很多不可显示字符的二进制数据文件,单凭AWK就无能为力
2008-08-04 10:31:00
603
转载 Sed 实例三
强健的 sed在 第二篇 sed 文章中,我提供了一些示例来演示 sed 的工作原理,但是它们当中很少有示例能实际做特别 有用的事。在这篇 sed 系列的最后文章中,我要改变那种方式,并使用 sed 来做实际的事。我将为您显示几个示例,它们不仅演示 sed 的能力,而且还做一些真正巧妙(和方便)的事。例如,在本文的后半部,将为您演示如何设计一个 sed 脚本来将 .QIF 文件从 Intuit
2008-08-04 10:30:00
235
转载 Sed 实例一
进入 sed如果可以使编辑文件的过程自动化,以便用“批处理”方式编辑文件,甚至编写可以对现有文件进行复杂更改的脚本,那将太好了。幸运的是,对于这种情况,有一种更好的方法 -- 这种更好的方法称为 "sed"。sed 是一种几乎包括在所有 UNIX 平台(包括 Linux)的轻量级流编辑器。sed 有许多很好的特性。首先,它相当小巧,通常要比您所喜爱的脚本语言小很多倍。其次,因为 sed 是
2008-08-04 10:29:00
286
转载 BASH 实例二
接收自变量在 介绍性文章 中的样本程序中,我们使用环境变量 "$1" 来引用第一个命令行自变量。类似地,可以使用 "$2"、"$3" 等来引用传递给脚本的第二和第三个自变量。这里有一个例子: #!/usr/bin/env bash echo name of script is $0 echo first argument is $1 echo second
2008-08-04 10:27:00
221
转载 使用 Bash shell脚本进行功能测试
功能测试是软件开发的一个关键部分 -- 而已经装入 Linux 的 Bash 可以帮您轻而易举地完成功能测试。在本文中,Angel Rivera 将说明如何运用 Bash shell 脚本通过行命令来执行 Linux 应用程序的功能测试。由于此脚本依赖于命令行的返回码,因而您不能将这种方法运用于 GUI 应用程序功能测试是开发周期的一个阶段,在这个阶段中将测试软件应用程序以确保软件的函数如预期
2008-08-04 10:26:00
227
转载 Bash 测试和比较函数
测试在任何一种编程语言中,学习了如何给变量分配值和传递参数之后,都需要测试这些值和参数。在 shell 中,测试会设置返回的状态,这与其他命令执行的功能相同。实际上,test 是个内置命令!test 和 [内置命令 test 根据表达式expr 求值的结果返回 0(真)或 1(假)。也可以使用方括号:test expr 和 [ expr ] 是等价的。 可以用 $? 检查返回值;可以
2008-08-04 10:25:00
305
转载 Bash 实例一
环境变量在 bash 和几乎所有其它 shell 中,用户可以定义环境变量,这些环境变量在以 ASCII 字符串存储。环境变量的最便利之处在于:它们是 UNIX 进程模型的标准部分。这意味着:环境变量不仅由 shell 脚本独用,而且还可以由编译过的标准程序使用。当在 bash 中“导出”环境变量时,以后运行的任何程序,不管是不是 shell 脚本,都可以读取设置。一个很好的例子是 vipw
2008-08-04 10:22:00
261
原创 Makefile学习笔记----make内嵌函数
一、字符串处理函数 1.$(subst FROM,TO,TEXT)函数名称:字符串替换函数—subst。函数功能:把字串“TEXT”中的“FROM”字符替换为“TO”。返回值:替换后的新字符串。 2.$(patsubst PATTERN,REPLACEMENT,TEXT)函数名称:模式替换函数—patsubst。函数功能:搜索“TEXT”中以空格分开的单词,将否符合模式“TAT
2008-07-24 15:28:00
409
原创 Makefile学习笔记-----------------Makefile的条件执行
条件语句只能由于控制make实际执行的makefile文件部分,它不能控制规则的shell命令执行过程. 条件判断的基本语法CONDITIONAL-DIRECTIVETEXT-IF-TRUEendif 关键字"ifeq":此关键字用来判断参数是否相等。"ifneq":判断参数是否不相等。"ifdef":判断一个变量是否定义。"ifndef":与ifdef
2008-07-24 11:52:00
235
原创 Makefile学习笔记-------------Makefile中的变量
Makefile中变量的特征:Makefile中变量的特征:1.Makefile中变量和函数的展开(除规则的命令行以外),是在make读取makefile文件时进行的。这里的变量包括了使用"="定义和使用指示符"define"定义的。2.变量可以用来代表一个文件名列表、编译选项列表、程序运行的选项参数列表、搜索源文件的目录列表、便以输出的目录列表等等。3.变量名是不包括":"、"#
2008-07-22 17:34:00
344
原创 Makefile学习笔记--------隐含变量
AR:函数库打包程序,可创建静态库.a文档。默认是"ar".AS:汇编程序。默认是"as"。CC:C编译程序。默认是"cc"。CXX:C++编译程序。默认是"g++"。CO:从RCS中提取文件的程序。默认是"CO"。CPP:C程序的预处理器(输出是标准输出设备)。默认是"$(CC) -E"。FC:编译器和预处理Fortran和Ratfor 原文件的编译器。默认是"f77"。
2008-07-22 15:36:00
489
原创 Makefile学习笔记---------自动化变量
$@代表规则中的目标文件名。如果目标是一个文档(Linux中,一般称.a文件为文档),那么它代表这个文档的文件名。在多目标的模式规则中,它代表的是哪个触发规则被执行的目标文件名。$%规则的目标文件是一个静态库文件时,代表静态库的一个成员名。例如,规则的目标是“foo.a(bar.o)”,那么,“$%”的值就为“bar.o”,“$@”的值为“foo.a”。如果目标不是函数库文件,其值为空。$规则的第
2008-07-22 15:30:00
2958
原创 Linux下的多线程编程
1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线
2008-07-17 17:18:00
294
原创 如何设置socket的Connect超时(linux)
1.将打开的socket设为非阻塞的,可以用fcntl(socket, F_SETFL, O_NDELAY)完成(有的系统用FNEDLAY也可). 2.发connect调用,这时返回-1,但是errno被设为EINPROGRESS,意即connect仍旧在进行还没有完成.3.在读套接口描述符集(fd_set rset)和写套接口描述符集(fd_set wset)中将当前套接口置位(用FD_ZER
2008-07-17 00:16:00
3517
转载 http 1.1 中文版
超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的协议。它是一种通用的,不分状态(stateless)的协议,除了诸如名称服务和分布对象管理系统之类的超文本用途外,还可以通过扩展它的请求方式,错误代码和报头[47]来完成许多任务。HTTP的一个特点是数据表示方式的典型性和可协商性允许独立于传输数据而建立系统。HTTP在1990年WWW全球信息刚刚起步的时候就得到了应
2008-07-15 11:24:00
1775
转载 RTP:实时应用程序传输协议 中文版
RFC3550 RTP:实时应用程序传输协议 摘要本文描述RTP(real-time transport protocol),实时传输协议。RTP在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。数据传输功能由一个控制协议(
2008-03-24 16:31:00
6438
4
转载 RTP与RTCP协议介绍
1流媒体( Streaming Media) 1.1流媒体技术是网络技术和多媒体技术发展到一定阶段的产物。术语流媒体既可以指在网上传输连续时基媒体的流式技术,也可以指使用流式技术的连续时基媒体本身。在网上传输音频、视频等多媒体信息目前主要有两种方式:下载和流式传输。采用下载方式,用户需要先下载整个媒体文件,然后才能进行播放。由于网络带宽的限制,下载常常要花很长时间,所以这种处理方式延迟很大。而
2008-03-22 20:17:00
1250
转载 MPEG-2TS码流编辑的原理及其应用
在当今数字媒体不断发展、新媒体业务不断涌现的前提下,实践证明襁褓中的新媒体只有两种经营方略可供选择:或是购买并集成整套节目,或是低成本深加工新节目,再不可能去按照传统生产模式去自采自编。低成本的节目生产制作与发布,不仅成为数字媒体经营的主要手段,也成为传统媒体“改革工作流程”的重要举措,进而促成了对新型工作母机和简捷快速流程的迫切需求。 在辽宁新媒体多业务综合服务平台上,先于国际和国内应
2008-03-21 19:36:00
2016
转载 MPEG2 TS小结
应该说真正了解TS,还是看了朋友推荐的《数字电视业务信息及其编码》一书之后,MPEG2 TS和数字电视是紧密不可分割的,值得总结一下其中的一些关系。ISO/IEC-13818-1:系统部分;ISO/IEC-13818-2:视频;ISO/IEC-13818-3:音频;ISO/IEC-13818-4:一致性测试;ISO/IEC-13818-5:软件部分;ISO/IEC-13818-6:数字存储
2008-03-20 23:21:00
2007
转载 Ts流 介绍
在MPEG-II标准中,为了将一个或更多的音频、视频或其他的基本数据流合成单个或多个数据流,以适应于存储和传送,必须对其重新进行打包编码,在码流中还需插入各种时间标记、系统控制等信息,最后送到信道编码与调制器。这样可以形成两种数据流——传送流(TS)和程序流(PS),分别适用于不同的应用,图1给出了单路节目的视音频数据流的复用框图。 传送流(Transport Stream)简称T
2008-03-20 23:16:00
8995
5
转载 改变swap分区大小
创建swap文件 如果你的硬盘空间已经全部分配给其他分区,也没有多余的预算新添购硬盘,我们可以利用swap文件的方式增加虚拟的swap空间,不过执行性能会较实际的swap分区差. 产生swap文件 要创建swap文件,执行dd命令,新增一个256MB的swap文件: # dd if=/dev/zero of=/tmp/myswap bs=32k count=8192 (bs=32k指定每个扇区占用
2008-03-19 22:38:00
1485
转载 图象编码格式
QCIF全称Quarter common intermediate format。QCIF是常用的标准化图像格式。在H.323协议簇中,规定了视频采集设备的标准采集分辨率。QCIF = 176×144像素。 CIF是常用的标准化图像格式(Common Intermediate Format)。在H.323协议簇中,规定了视频采集设备的标准采集分辨率。CIF = 352×288像素 CIF格
2008-03-19 15:13:00
950
转载 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八) MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统
魏永明 (ymwei@minigui.org) 自由撰稿人 2001 年 11 月 1 Linux 图形领域的基础设施 2 Linux 图形领域的高级函数库 3 面向嵌入式 Linux 系统的图形
2008-03-14 12:57:00
428
转载 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(七) MiniGUI 1.1.0 引入的新 GDI 功能和函数之二
魏永明 (ymwei@minigui.org) 自由撰稿人 2001 年 11 月 1 引言 2 曲线和填充生成器 3 绘制复杂曲线
2008-03-14 12:56:00
647
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人