个人收集的一些库、工具、技术介绍
转自:http://blog.csdn.net/subfate/article/details/49835727
搞开发有好多个年头了,经常不时地因工作需要接触到各类工具,有的是通过搜索得到,用完就扔了,也没个记录。最近心血来潮,专门写个文章收集个人在工作中使用过的工具以及库。万一哪天自己用到,也好找一些。
注:由于本人主要工作环境为GNU/Linux和嵌入式,也因工需要其它的技术。因此接触的东西比较多,很是杂乱无章。平台类的有arm、x86,嵌入式的从uboot/bios到kernel到rootfs到SDL和MFC(MS的MFC)。视频标准也接触过h264、h265,还接触过ffmpeg。以太网标准也看了两页,连了有线网络,无线如WIFI、4G也有涉猎。(后续接触到了什么再更新吧)
一、GNU环境
1、GNU官网
地址:www.gnu.org
上面有许多GNU环境中使用的工具。
2、linux kernel
内核大本营,除了kernel源码外,还有其它很多有用的工具。比如ethtool就在https://www.kernel.org/pub/software/network/ethtool/
地址:
www.kernel.org
内核源码:https://www.kernel.org/pub/linux/kernel/
3、根文件系统系统busybox
嵌入式中常见的根文件系统为busybox。该系统特点是所有可执行文件均链接到busybox程序。
地址:http://www.busybox.NET/
4、bios
coreboot,一个开源的bios项目,支持较多平台。
源地址:https://github.com/coreboot/coreboot
playload介绍:http://www.coreboot.org/Payloads
二、视频相关
1、SDL
跨平台的视频库,可整合到MFC、QT中,和ffmpeg也是常见的配搭。
地址:http://www.libsdl.org/
2、ffmpeg
音频视频处理的集大成者,大约每3个月发布一个版本。
地址:http://www.ffmpeg.org/
3、h264/AVC标准
x264:一个h264标准的实现,速度较快,开源。地址:http://www.videolan.org/developers/x264.html
h264/avc软件实现jm代码:http://iphome.hhi.de/suehring/tml/download/
h264bitstream:一个h264码流分析的开源库。可对照h264标准手册阅读此库代码,2013年后不再更新。地址:https://sourceforge.net/projects/h264bitstream/
4、h265/HEVC标准
hevc大本营(论文、标准、软件实现):https://hevc.hhi.fraunhofer.de/
h265标准文档:http://www.itu.int/rec/T-REC-H.265/en
hevc软件实现参考(HEVC Test Mode,hevc测试模型)代码:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/tags/
x265:一个h265的实现,地址:http://www.videolan.org/developers/x265.html (这里只能用hg下载)
另一个x265的下载地址:https://bitbucket.org/multicoreware/x265/downloads
5、硬件加速器VAAPI
(此课题较大较复杂)
地址:http://freedesktop.org/wiki/Software/vaapi/
============================
三、GNU/Linux常用的小工具:
ethtool
一个可以设置网络速率、半全双工、自动协商的工具。
https://www.kernel.org/pub/software/network/ethtool/
net-tools:
各类网络有关的工具
http://www.linuxfoundation.org/collaborate/workgroups/networking/net-tools
vnstat:
监控网络流量。http://humdi.net/vnstat/
hdparm:
硬盘参数设置工具。https://sourceforge.net/projects/hdparm/
libjpeg-turbo:
jpeg编解码的加速版本,对x86和arm架构做了优化。http://libjpeg-turbo.virtualgl.org/
mtd-utils:
mtd有用的工具,如烧写ubi文件系统。http://linux-mtd.infradead.org/
四、未名的
1、代码阅读工具
代码逆向工程生成类图
使用StarUML工具,可以从c++/Java代码生成类图,方便掌握一个工程的整体面貌。成功例子:live555。
2、代码版本控制管理
代码版本控制工具:
有svn、Git、hg。
代码审核:
代码审查工具Gerrit,与git结合。
github上有pull request,可向他人提出review申请。好的例子如coreboot的代码管理。
linux intel wifi驱动:
http://linuxwireless.org/en/users/Drivers/iwlwifi/
http://www.intel.com/content/www/us/en/support/network-and-i-o/wireless-networking/000005511.html