• windows下批量修改文件夹下(递归)文件编码格式,默认为GBK 转 UTF-8

    该程序为绿色程序,运行程序位于自身的文件夹下,点击运行batchiconv,会转换本文件夹的上级文件夹及其递归子文件夹下的所有文件,但是batchiconv程序所在文件夹不会被转换 控制台下运行方式为:batchiconv.exe gbk utf-8 $dir $dir为你想要转换的文件夹路径

    2019-01-13
    9
  • RTSP 协议 规范 pdf

    该协议用于C/S模型,是一个基于文本的协议,用于在客户端和服务器端建立和协商实时流会话。   实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法。   实时流协议(RTSP)建立并控制一个或几个时间同步的连续流媒体。尽管连续媒体流与控制流交换是可能的,通常它本身并不发送连续流。换言之,RTSP充当多媒体服务器的网络远程控制。RTSP连接没有绑定到传输层连接,如TCP。在RTSP连接期间,RTSP用户可打开或关闭多个对服务器的可传输连接以发出RTSP请求。此外,可使用无连接传输协议,如UDP。RTSP流控制的流可能用到RTP,但RTSP操作并不依赖用于携带连续媒体的传输机制。   协议支持的操作如下:   (1)从媒体服务器上检索媒体:用户可通过HTTP或其它方法提交一个演示描述。如演示是组播,演示式就包含用于连续媒体的的组播地址和端口。如演示仅通过单播发送给用户,用户为了安全应提供目的地址。   (2)媒体服务器邀请进入会议:媒体服务器可被邀请参加正进行的会议,或回放媒体,或记录其中一部分,或全部。这种模式在分布式教育应用上很有用,会议中几方可轮流按远程控制按钮。   (3)将媒体加到现成讲座中:如服务器告诉用户可获得附加媒体内容,对现场讲座显得尤其有用。如HTTP/1.1中类似,RTSP请求可由代理、通道与缓存处理

    2011-06-08
    50
  • 深入理解计算机系统(英文版)

    ·AMAZON五星图书,最伟大计算机科学教材之一; ·卡耐基梅隆大学计算机学院院长,IEEE和ACM双院士倾力推出; ·超过80所美国和世界一流大学计算机专业选用本书为教材。 本书被赞誉为价值超过等重量黄金的无价资源宝库;第一本将软件和硬件理论结合讲述的教程;覆盖计算机导论、体系结构和处理器设计等多门课程;经过大量学生使用,效果优秀,并获教师和学生一致推崇;完善的教学网站,为教师和学生提供在线支持。所有想写出更快、更可靠程序的开发人员必读之书!   所有想写出更快、更可靠程序的开发人员必读之书!   ★ AMAZON五星图书,最伟大计算机科学教材之一   ★ 卡耐基梅隆大学计算机学院院长,IEEE和ACM双院士倾力推出   ★ 超过80所美国和世界一流大学计算机专业选用本书为教材   看看指导教师们是如何评价这本书的:   “我坚信从程序员的角度来看计算机系统对教会学生计算机的内部结构非常有帮助。”——Kostas Daniilidis,宾夕法尼亚大学   “这本书讲述事物的方法与众不同,但是和我想要的课程进行方式类似。”——John Greiner,Rice大学   “这是一项出色的工作,是这一领域教学方法的一次革命。”——Michael Scott,罗切斯特大学   作者Randal E. Bryant是卡耐基梅隆大学的计算机科学系主任,ACM和IEEE双院士(Fellow),其研究成果多次获得ACM和IEEE颁发的大奖。   本书提供了大量的例子和练习及部分答案。尤其值得一提的是,对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解。 内容简介 从程序员的视角,看计算机系统! 本书适用于那些想要写出更快、更可靠程序的程序员。通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成的。粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统和网络互连环境。而通过程序员的视角,读者可以清晰地明白学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。它还有助于为进一步学习计算机体系结构、操作系统、编译器和网络互连做好准备。 本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响应用和系统程序员的。例如,在讲述数据表示时,本书说明了用来表示数字的表示方法是有限的,它能够近似地表示整数和实数,但是这种表示方法是有限制的,程序员必须了解。在讲述高速缓存时,本书讨论了矩阵代码中的循环变量的顺序是如何影响程序的性能的。在讨论网络互连时,本书描述了并发服务器如何能有效地处理来自多个客户端的请求。 本书基于Intel兼容(IA32)机器,在Unix或者相关的操作系统(例如,Linux)上执行C程序。虽然书中包括了一些帮助读者将Java转化成C的提示,但是还是要求读者对C或者C++有一定的了解。 您可以通过本书的Web网站www.csapp.cs.cmu.edu获得完整的资料,包括实验和作业,授课笔记和代码示例。 本书英文版久负盛名,被众多专业人士称为“最伟大的计算机教材”之一,著名的美国卡内基梅隆大学计算机科学系一直将本书作为教材使用,程序员眼中的透彻讲述计算机系统的扛鼎之作。作者Randal E. Bryant是卡耐基梅隆大学的计算机科学系主任,ACM和IEEE双院士(Fellow),其研究成果多次获得ACM和IEEE颁发的大奖。   本书共分十三章,分别介绍了信息的表示和处理、程序的机器级表示、处理器体系结构、存储器层次结构、静态和动态链接、虚拟存储器、系统级I/O、网络编程和并发编程等精彩内容。其目的是解释计算机系统的所有本质概念,并向读者展示这些概念是如何实际地影响应用程序的正确性、性能和实用性。与其他主要针对系统构造人员的系统类书籍不同,这本书是写给程序员的,是从程序员的角度来描述的。本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白。本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户应用。   本书提供了大量的例子和练习及部分答案。尤其值得一提的是,对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解。 作者简介 Randal E. Bryant 1973年获得密歇根大学(University of Michigan)学士学位,随即就读麻省理工学院(Massachusetts Institute of Technology)的研究生院,并在1981年获计算机博士学位。他在加州理工学院(California Institute of Technology)做了三年助教,从1984年至今一直是卡内基梅隆大学(Carnegie Mellon)的教师。他现在是计算机科学的主任级教授和计算机科学系的系主任。他同时还受邀于电子和计算机工程系。 他从事本科和研究生计算机系统方面课程的教学超过20年。在讲授计算机体系结构课程多年后,他开始把关注点从如何设计计算机转移到程序员如何在更好地了解系统的情况下编写出更有效和更可靠的程序。他和O’Hallaron教授一起在卡内基梅隆大学开设了“计算机系统导论”课程,那便是此书的基础。他还教授一些算法和编程方面的课程。 Bryant教授的研究涉及帮助硬件设计者验证其系统正确性的软件工具的设计。其中,包括几种类型的模拟器,以及用数学方法来证明设计正确性的形式化验证工具。他发表了100多篇技术论文。包括Intel、Motorola、IBM和Fujitsu在内的主要计算机制造商都使用他的研究成果。他还因他的研究获得过数项大奖。其中包括Semiconductor Research Corporation颁发的两个发明荣誉奖和一个技术成就奖,美国计算机学会(Association for Computer Machinery,ACM)颁发的Kanellakis理论与实践奖,还有电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)授予的W. R. G. Baker奖和50年金质奖章(a Golden Jubilee Medal)。他同时是ACM和IEEE的院士。 David R. O’Hallaron 1986年在维吉尼亚大学(University of Virginia)获得计算机科学的博士学位。在通用电气工作一段时间后,于1989年作为系统科学家成为卡内基梅隆大学的教员。他目前是计算机科学系和电子及计算机工程系的副教授。 他教授一些本科生和研究生的计算机系统方面的课程,例如计算机体系结构、计算机系统绪论、并行处理器设计和Internet服务。和Bryant教授一起,他开设了“计算机系统导论”课程,那便是此书的基础。 O’Hallaron教授和他的学生从事计算机系统领域的研究。特别的,他们开发了一些软件系统,帮助科学家和工程师在计算机上模拟自然界。其中最著名的是Quake项目,一群计算机科学家、土木工程师和地震学家致力于在强烈地震中预测大地运动的能力,这些强烈地震包括南加洲、古巴、日本、墨西哥和新西兰的大地震。同Quake项目中其它人员一起,他获得了CMU计算机科学院颁发的Allen Newell优秀研究奖章。他为Quake项目创立的基准程序,183.equake,被SPEC(Standards Performance Evaluation Corporation)选入非常有影响的SPEC CPU和OMP(Open Mp)基准程序包中。 目录 译序 关于术语的翻译 前言 关于作者 第1章 计算机系统漫游 1.1 信息就是比特+上下文 1.2 程序被其他程序翻译成不同的格式 1.3 了解编译系统如何工作是大有益处的 1.4 处理器读并解释储存在存储器中的指令 1.5 高速缓存 1.6 形成层次结构的存储设备 1.7 操作系统管理硬件 1.8 利用网络系统和其他系统通信 1.9 下一步 1.10 小结 第1部分 程序结构和执行 第2章 信息的表示和处理 2.1 信息存储 2.2 整数表示 2.3 整数运算 2.4 浮点 2.5 小结 第3章 程序的机器级表示 3.1 历史观点 3.2 程序编码 3.3 数据格式 3.4 访问信息 3.5 算术和逻辑操作 3.6 控制 3.7 过程 3.8 数组分配和访问 3.9 异类的数据结构 3.10 对齐(alignment) 3.11 综合:理解指针 3.12 现实生活:使用GDB调试器 3.13 存储器的越界引用和缓冲区溢出 3.14 *浮点代码 3.15 *在C程序中嵌入汇编代码 3.16 小结 第4章 处理器体系结构 4.1 Y86指令集体系结构 4.2 逻辑设计和硬件控制语言HCL 271 4.3 Y86的顺序(sequential)实现 4.4 流水线的通用原理 4.5 Y86的流水线实现 4.6 小结 第5章 优化程序性能 5.1 优化编译器的能力和局限性 5.2 表示程序性能 5.3 程序示例 5.4 消除循环的低效率 5.5 减少过程调用 5.6 消除不必要的存储器引用 5.7 理解现代处理器 5.8 降低循环开销 5.9 转换到指针代码 5.10 提高并行性 5.11 综合:优化合并代码的效果小结 5.12 分支预测和预测错误处罚 5.13 理解存储器性能 5.14 现实生活:性能提高技术 5.15 确认和消除性能瓶颈 5.16 小结 第6章 存储器层次结构 6.1 存储技术 6.2 局部性 6.3 存储器层次结构 6.4 高速缓冲存储器 6.5 编写高速缓存友好的代码 6.6 综合:高速缓存对程序性能的影响 6.7 综合:利用你程序中的局部性 6.8 小结 第2部分 在系统上运行程序 第7章 链接 7.1 编译器驱动程序 7.2 静态链接 7.3 目标文件 7.4 可重定位目标文件 7.5 符号和符号表 7.6 符号解析 7.7 重定 7.8 可执行目标文件 7.9 加载可执行目标文件 7.10 动态链接共享库 7.11 从应用程序中加载和链接共享库 7.12 *与位置无关的代码(PIC) 7.13 处理目标文件的工具 7.14 小结 第8章 异常控制流 8.1 异常 8.2 进程 8.3 系统调用和错误处理 8.4 进程控制 8.5 信号 8.6 非本地跳转 8.7 操作进程的工具 8.8 小结 第9章 测量程序执行时间 9.1 计算机系统上的时间流 9.2 通过间隔计数(interval counting)来测量时间 9.3 周期计数器 9.4 用周期计数器来测量程序执行时间 9.5 于gettimeofday函数的测量 9.6 综合:一个实验协议 9.7 展望未来 9.8 现实生活:K次最优测量方法 9.9 得到的经验教训 9.10 小结 第10章 虚拟存储器 10.1 物理和虚拟寻址 10.2 地址空间 10.3 VM作为缓存的工具 10.4 VM作为存储器管理的工具 10.5 VM作为存储器保护的工具 10.6 地址翻译 10.7 案例研究:Pentium/Linux存储器系统 10.8 存储器映射 10.9 动态存储器分配 10.10 垃圾收集 10.11 C程序中常见的与存储器有关的错误 10.12扼要重述一些有关虚拟存储器的关键概念 10.13 小结 第3部分 程序间的交互和通信 第11章 系统级I/O 11.1 Unix I/O 11.2 打开和关闭文件 11.3 读和写文件 11.4 用RIO包进行健壮地读和写 11.5 读取文件元数据 11.6 共享文件 11.7 I/O重定向 11.8 标准I/O 11.9 综合:我该使用哪些I/O函数? 11.10 小结 第12章 网络编程 12.1 客户端-服务器编程模型 12.2 网络 12.3 全球IP因特网 12.4 套接字接口 12.5 Web服务器 12.6 综合:TINY Web服务器 12.7 小结 第13章 并发编程 13.1 基于进程的并发编程 13.2 基于I/O 多路复用的并发编程 13.3 基于线程的并发编程 13.4 多线程程序中的共享变量 13.5 用信号量同步线程 13.6 综合:基于预线程化的并发服务器 13.7 其他并发性问题 13.8 小结 附录A 处理器控制逻辑的 HCL描述 A.1 HCL参考手册 A.2 SEQ A.3 SEQ+ A.4 PIPE 附录B 错 误 处 理 B.1 Unix系统中的错误处理 B.2 错误处理包装函数 B.3 csapp.h头文件 B.4 csapp.c源文件 参考文献 索引

    2011-06-08
    0
  • C标准库函数集(头文件索引)

    本文包括大部分C标准库函数,但没有列出一些用途有限的函数以及某些可以简单的从其 他函数合成的函数,也没有包含多字节和本地化函数。 标准库中的各个函数、类型以及宏分别在以下标准头文件中说明

    2011-06-02
    3
  • linux设备驱动程序(中文第三版)+2[1].6内核

    1.3. 设备和模块的分类 1.4. 安全问题 1.5. 版本编号 1.6. 版权条款 1.7. 加入内核开发社团 1.8. 本书的内容 2. 建立和运行模块 2.1. 设置你的测试系统 2.2. Hello World 模块 2.3. 内核模块相比于应用程序 2.3.1. 用户空间和内核空间 2.3.2. 内核的并发 2.3.3. 当前进程 2.3.4. 几个别的细节 2.4. 编译和加载 2.4.1. 编译模块 2.4.2. 加载和卸载模块 2.4.3. 版本依赖 2.4.4. 平台依赖性 2.5. 内核符号表 2.6. 预备知识 2.7. 初始化和关停 2.7.1. 清理函数 2.7.2. 初始化中的错误处理 2.7.3. 模块加载竞争 2.8. 模块参数 2.9. 在用户空间做 2.10. 快速参考 3. 字符驱动 3.1. scull 的设计 3.2. 主次编号 3.2.1. 设备编号的内部表示 3.2.2. 分配和释放设备编号 3.2.3. 主编号的动态分配 3.3. 一些重要数据结构 3.3.1. 文件操作 3.3.2. 文件结构 3.3.3. inode 结构 file:///F|/sea/学习/linux驱动编写/Linux 设备驱动 Edition 3/index.html(第 2/7 页)2006-7-21 16:03:06 Linux 设备驱动 Edition 3 3.4. 字符设备注册 3.4.1. scull 中的设备注册 3.4.2. 老方法 3.5. open 和 release 3.5.1. open 方法 3.5.2. release 方法 3.6. scull 的内存使用 3.7. 读和写 3.7.1. read 方法 3.7.2. write 方法 3.7.3. readv 和 writev 3.8. 使用新设备 3.9. 快速参考 4. 调试技术 4.1. 内核中的调试支持 4.2. 用打印调试 4.2.1. printk 4.2.2. 重定向控制台消息 4.2.3. 消息是如何记录的 4.2.4. 打开和关闭消息 4.2.5. 速率限制 4.2.6. 打印设备编号 4.3. 用查询来调试 4.3.1. 使用 /proc 文件系统 4.3.2. ioctl 方法 4.4. 使用观察来调试 4.5. 调试系统故障 4.5.1. oops 消息 4.5.2. 系统挂起 4.6. 调试器和相关工具 4.6.1. 使用 gdb 4.6.2. kdb 内核调试器 4.6.3. kgdb 补丁 4.6.4. 用户模式 Linux 移植 4.6.5. Linux 追踪工具 4.6.6. 动态探针 5. 并发和竞争情况 5.1. scull 中的缺陷 file:///F|/sea/学习/linux驱动编写/Linux 设备驱动 Edition 3/index.html(第 3/7 页)2006-7-21 16:03:06 Linux 设备驱动 Edition 3 5.2. 并发和它的管理 5.3. 旗标和互斥体 5.3.1. Linux 旗标实现 5.3.2. 在 scull 中使用旗标 5.3.3. 读者/写者旗标 5.4. Completions 机制 5.5. 自旋锁 5.5.1. 自旋锁 API 简介 5.5.2. 自旋锁和原子上下文 5.5.3. 自旋锁函数 5.5.4. 读者/写者自旋锁 5.6. 锁陷阱 5.6.1. 模糊的规则 5.6.2. 加锁顺序规则 5.6.3. 细 -粗- 粒度加锁 5.7. 加锁的各种选择 5.7.1. 不加锁算法 5.7.2. 原子变量 5.7.3. 位操作 5.7.4. seqlock 锁 5.7.5. 读取-拷贝-更新 5.8. 快速参考 6. 高级字符驱动操作 6.1. ioctl 接口 6.1.1. 选择 ioctl 命令 6.1.2. 返回值 6.1.3. 预定义的命令 6.1.4. 使用 ioctl 参数 6.1.5. 兼容性和受限操作 6.1.6. ioctl 命令的实现 6.1.7. 不用 ioctl 的设备控制 6.2. 阻塞 I/O 6.2.1. 睡眠的介绍 6.2.2. 简单睡眠 6.2.3. 阻塞和非阻塞操作 6.2.4. 一个阻塞 I/O 的例子 6.2.5. 高级睡眠 6.2.6. 测试 scullpipe 驱动 file:///F|/sea/学习/linux驱动编写/Linux 设备驱动 Edition 3/index.html(第 4/7 页)2006-7-21 16:03:06 Linux 设备驱动 Edition 3 6.3. poll 和 select 6.3.1. 与 read 和 write 的交互 6.3.2. 底层的数据结构 6.4. 异步通知 6.4.1. 驱动的观点 6.5. 移位一个设备 6.5.1. llseek 实现 6.6. 在一个设备文件上的存取控制 6.6.1. 单 open 设备 6.6.2. 一次对一个用户限制存取 6.6.3. 阻塞 open 作为对 EBUSY 的替代 6.6.4. 在 open 时复制设备 6.7. 快速参考 7. 时间, 延时, 和延后工作 7.1. 测量时间流失 7.1.1. 使用 jiffies 计数器 7.1.2. 处理器特定的寄存器 7.2. 获知当前时间 7.3. 延后执行 7.3.1. 长延时 7.3.2. 短延时 7.4. 内核定时器 7.4.1. 定时器 API 7.4.2. 内核定时器的实现 7.5. Tasklets 机制 7.6. 工作队列 7.6.1. 共享队列 7.7. 快速参考 7.7.1. 时间管理 7.7.2. 延迟 7.7.3. 内核定时器 7.7.4. Tasklets 机制 7.7.5. 工作队列 8. 分配内存 8.1. kmalloc 的真实故事 8.1.1. flags 参数 8.1.2. size 参数 8.2. 后备缓存 file:///F|/sea/学习/linux驱动编写/Linux 设备驱动 Edition 3/index.html(第 5/7 页)2006-7-21 16:03:06 Linux 设备驱动 Edition 3 8.2.1. 一个基于 Slab 缓存的 scull: scullc 8.2.2. 内存池 8.3. get_free_page 和其友 8.3.1. 一个使用整页的 scull: scullp 8.3.2. alloc_pages 接口 8.3.3. vmalloc 和 其友 8.3.4. 一个使用虚拟地址的 scull : scullv 8.4. 每-CPU 的变量 8.5. 获得大量缓冲 8.5.1. 在启动时获得专用的缓冲 8.6. 快速参考 9. 与硬件通讯 9.1. I/O 端口和 I/O 内存 9.1.1. I/O 寄存器和常规内存 9.2. 使用 I/O 端口 9.2.1. I/O 端口分配 9.2.2. 操作 I/O 端口 9.2.3. 从用户空间的 I/O 存取 9.2.4. 字串操作 9.2.5. 暂停 I/O 9.2.6. 平台依赖性 9.3. 一个 I/O 端口例子 9.3.1. 并口纵览 9.3.2. 一个例子驱动 9.4. 使用 I/O 内存 9.4.1. I/O 内存分配和映射 9.4.2. 存取 I/O 内存 9.4.3. 作为 I/O 内存的端口 9.4.4. 重用 short 为 I/O 内存 9.4.5. 在 1 MB 之下的 ISA 内存 9.4.6. isa_readb 和其友 9.5. 快速参考 10. 中断处理 10.1. 准备并口 10.2. 安装一个中断处理 10.2.1. /proc 接口 10.2.2. 自动检测 IRQ 号 10.2.3. 快速和慢速处理 file:///F|/sea/学习/linux驱动编写/Linux 设备驱动 Edition 3/index.html(第 6/7 页)2006-7-21 16:03:06 Linux 设备驱动 Edition 3 10.2.4. 实现一个处理 10.2.5. 处理者的参数和返回值 10.2.6. 使能和禁止中断 10.3. 前和后半部 10.3.1. Tasklet 实现 10.3.2. 工作队列 10.4. 中断共享 10.4.1. 安装一个共享的处理者 10.4.2. 运行处理者 10.4.3. /proc 接口和共享中断 10.5. 中断驱动 I/O 10.5.1. 一个写缓存例子 10.6. 快速参考 11. 内核中的数据类型 11.1. 标准 C 类型的使用 11.2. 安排一个明确大小给数据项 11.3. 接口特定的类型 11.4. 其他移植性问题 11.4.1. 时间间隔 11.4.2. 页大小 11.4.3. 字节序 11.4.4. 数据对齐 11.4.5. 指针和错误值 11.5. 链表 11.6. 快速参考

    2011-06-02
    3
  • eXosip开发者手册

    eXosip开发者手册 本手册指导开发者利用exoSip 栈开发用户代理

    2010-04-19
    10
  • Rational Rose 2003 破解文件

    过程如下: 1.先用rational.exe,lmgrd.exe覆盖到你的安装目录的Rartional\commen\下 2.然后改license.dat里面的 SERVER yourPC ANY DAEMON rational "C:\Program Files\Rational\Common\rational.exe" 改成 SERVER 你的机器名 ANY DAEMON rational "你的安装目录\rational.exe" 3.将Flexlm.cpl拷贝到C:\winnt\system32\下, 在控制面板里运行FlexLm License Manager, 在Setup面板配置文件路径,lmgrd.exe->你的安装目录\Common\lmgrd.exe License File为你改过的license.dat 4.在Control面板点击Start,如果成功的话点击Status按钮将显示 你的机器名:license server UP (MASTER) 说明成功了 失败的话重启一下FlexLm License Manager就没问题了。 5.如果弹出对话框License Key Administrator Wizard后, 选定Point to a Rational License Server to get my licenses,单击下一步, Server Name文本框中填写你的机器号(可能已经填好),单击完成。 (成功的话会出现两屏的licenses) 再次运行RationalRose就应该就没问题了。

    2010-03-26
    3
关注 私信
上传资源赚积分or赚钱