很多好东西 larkguo.googlepages.com

来源:互联网 发布:哪个软件打电话免费 编辑:程序博客网 时间:2024/04/29 16:30

数字设计

 

LC3是一个16位单总线CPU,涉及中断、简单IO、栈、系统服务等方面的硬件实现,另外LC3有自己的C语言编译器、汇编器和仿真器,是系统学习计算机软硬件的好途径!以下几篇是LC3的CPU源码、编译器源码、汇编器源码和仿真器源码,源码面前了无秘密,从中可以熟悉从逻辑门电路到完整计算机体系结构再到高级语言实现的全过程。

  • LC-3 CPU VHDL

美国计算机泰斗Yale N. Patt的LC-3 CPU VHDL源码,配合《计算机系统概论》一书学习效果更佳!

  • LC-3 CPU Another VHDL

另一套LC3 CPU VHDL源码及设计文档,对LC3进行了一些取舍和改造,比如NZP改为NZC,更贴近现实CPU硬件架构。使用ASM方法进行VHDL编码,更适合数字设计初学者。

  • LC-3 汇编器源码

LC-3 CPU的汇编器、Linux下的仿真器源码及相关手册。

  • LC-3 编译器源码

LCC for LC3编译器源码,关于LCC编译器源码分析参见《可变目标C编译器》一书。

  •  LC-3资料

LC3的微架构,数据通路及控制,流水线等方面资料。

 

 

VOIP

 

  • Asterisk语音处理

 Asterisk语音处理过程与业务无关,是一个统一的过程,处理对象有RTP和File,不管外界RTP或File输入格式如何,进入Asterisk后默认转换为signedlinear格式,从Asterisk输出(发送或写文件)时再从slinear格式转换为外界RTP或File格式。

  • RTP语音还原工具RTP2Wav

RTP语音还原工具,过滤pcap、cap包中语音保存为wave格式文件,支持g711、g723、g726、g729、ilbc、gsm、speex、L16/SLINEAR、DVI4/ADPCM格式,是voip专业人员的好工具。

rtp2wav下载

  •  语音格式转换工具convert

语音媒体格式转换工具,支持wav、vox、sln、raw、alaw、al、pcm、ulaw、ul、mu、ogg、ilbc、gsm、g729、g726、g723、au、mp3等语音格式相互转换。

convert下载

  • 混音工具mixer

混音工具,支持mp3、wav、vox、sln、raw、alaw、al、pcm、ulaw、ul、mu、ogg、ilbc、gsm、g729、g726、g723、au格式混音,目前只能进行两个文件混音。

mixer下载

  •  使用SIPp进行SIP压力测试

 使用sipp进行sip注册,呼叫,会议压力测试。

 

  • VOIP负载均衡器实现

在Asterisk基础上开发的一个VOIP Loadbalancer,兼容SIP,H323和IAX协议,7种负载均衡策略!
除负载均衡功能外还支持路由重试,号码变换和协议转换功能,功能超强!

  • 使用Asterisk作为SIP和H323网关

Asterisk支持SIP,H323,IAX,MGCP 等VOIP协议,可以用作多种协议网关,本文介绍如何使用Asterisk作为SIP-H323协议网关。

  • SIP路由

通过Request-URI,Via,Record-Route,Route,Contact协议头讲解SIP请求和响应的路由机制。

  • H323协议

全面介绍H323协议。

  • SIP协议

全面介绍SIP协议。

  • SIP平台架构

以SER为例介绍SIP Proxy架构,包括媒体穿越NAT,Radius预付费实现。

  • SER安装

SER基本模块的安装配置,包括数据库,NAT穿越。

  • STUN协议

STUN在SIP穿越NAT中的工作原理和过程。

  • NAT穿越技术

介绍SIP穿越NAT技术,有些也适用于H323。

  • Citron方式穿越NAT

            Citron NAT穿越方法解决私网下H323终端作被叫的问题。

  • T38传真

传真移植到以太网进行传输的技术。

 

TCP/IP协议栈

 

  • VC下的TCP/IP协议栈代码

在wpcap驱动基础上实现的TCP/IP协议栈,包括TCP,UDP,IP,ARP,ICMP协议,可以在VC下调试。

源代码

 

  • LwIP协议栈

一套用于嵌入式系统的开源TCP/IP协议栈,支持Socket。

  • NAT协议

穿越NAT前先了解NAT是什么!

  • Linux NAT实现分析

从代码实现的角度彻底理解NAT。

  • Socks协议

一种通过代理方式帮助TCP和UDP穿越NAT的方法。

  • PPPoE协议栈

把PPP点对点协议移植到以太网上。

  • SNMP协议

SNMP是面向基于IP的网络管理,通过MIB库定义的对象,SNMP监控网络各协议层的状态、修改网络设备配置、接收网络事件警告。

  • FTP协议

FTP文件传输协议。

  • TFTP协议

TFTP简单文件传输协议

 

 嵌入式

 

  • 嵌入式数据库

  嵌入式数据基于文件系统,BerkeleyDB、sqlite和mSql是三种具有代表性的嵌入式数据库:前两者是本地数据库,只能本机访问,不接受网络连接,mSql是网络数据库,可以接收本机或网络上其他机器连接;Berkeley DB不支持SQL,后两者都支持SQL。


  • linux2.6 O(1)调度算法实验

本文从Linux 2.6 代码中提取出O(1)核心算法和相关的数据结构并进行测试。

源代码

 

  • 嵌入式NAT实现代码

从Linux源码中剪裁而来,实现对称NAT功能,很容易移植到嵌入式设备里。

源代码

 

  • 嵌入式MVC模式的web服务器

三个源文件分别实现Model、View、Controller功能,你能领略到C语言也能实现MVC模式,并且很容易移植到你的嵌入式设备。

源代码

 

  •  最简单的51操作系统

实现在时钟触发下两个任务切换,你可以看到任务切换时需要对那些寄存器压栈和出栈操作。

源代码

  

编程技术

 

  • C语言中字符串处理

  字符串处理是编程最重要的基本功之一,C语言中字符串处理远没有Java等语言方便,为方便C语言开发,以下提供了常用字符串处理源码,功能包括字符串分割、带通配符比较、解析文件名、字符串整理、字符串替换、字符串查找、大小写转换、字符串与数字转换、十六进制打印等等。

string下载

  • 线程死锁检测

     死锁是多线程编程中比较难解决的问题,本文介绍一套Linux环境下线程死锁检测代码,对死锁现象及解决办法进行实例演示,并给出所有相关源代码。

  • 代码效率检测

     一个程序中最消耗系统资源的代码量其实非常少,大部分代码实际上只可能执行一次,甚至一次都没有被执行过,对于这些部分进行优化毫无意义,如何才能快速找到一个程序里面值得优化的地方,本文以一个Linux C实例讲解了gprof和cachegrind两个性能检测工具的使用方法。

  • 带工作队列的Posix线程池

单核CPU性能已经很难再提高,多核、超线程CPU可以同时运行更多的线程,使机器性能大幅度提升,多核、超线程CPU已经成为大势所趋,同时多线程编程将成为程序员的必备技能。 
本文介绍一个利用C和Posix Thread实现半同步/半异步(Half-Sync/Half-Async)并发模式。
 

  • C语言多线程垃圾收集实现

C语言的通用垃圾收集器(GC)实现,支持多线程。

  • C语言多线程内存检测实现

一个多线程动态内存管理模块,可以有效地检测C语言中内存泄漏和内存越界等错误。 

  • linux内存调试工具-Valgrind

Linux内存调试的瑞士军刀,让内存不再泄漏!

  • 通用Makefile模版

C,C++通用makefile模版示例。

  • Unix和Win32系统代码移植

 包括Socket,Time,Thread方面的移植。

  • 使用Memcached进行分布式内存缓存

Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。 

  • 面象服务的体系架构(SOA)

靠着彼此能听懂的语言,彼此能看懂的符号交流沟通,网络把世界各地的人联系起来,这是网络的力量!
靠着约定好格式和接口相互通讯调用,SOA站在网络的肩膀上把各行各业的软件联系起来,这就是SOA的伟大!