Linux下动态库的符号冲突、隐藏和强制优先使用库内符号

    我司为客户提供sdk包供开发使用,就是几个so文件,在so文件中我司封装了tinyxml2这个库,客户再做开发时也时候用了tinyxml2这个库,但是所使用的版本是不同的,造成了再运行时,会崩溃。应该是在程序运行时,先加载了他们的tinyxml库,然后我们的sdk在寻找tinyxml库的相关符号是找到的是他们库的符号。

源码编译jemalloc

    jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support.

mpeg-ts封装对时间戮循环到头的处理

    在对H.264/H.265视频流进行mpeg-ts封装时,需要填写pcr/dts/pts信息,但这三个字段均有长度限制,在进行相关时间戮赋值时,需要考虑循环溢出问题。

    ts流中的三个时间戮,pts(33bit)、dts(33bit)、pcr(42bit)

通过sasl的pam认证机制实现对svnserve的自定义用户认证

      上一篇博文中讲解了svnserve使用sasl协议认证的配置方式,并通过sasl的pam认证机制使用linux自带的用户认证信息实现对svnserve的用户认证。在企业中,通常都有自己的用户管理及认证系统,如AD(活动目录),也有自定义的基于 MySQL 的用户信息并通过HTTP接口的方式对外暴露认证接口,这样做可以进行统一用户管理和认证,在企业中,员工只需要维护一份用户信息记录,即可操作所有需要认证的系统。

通过sasl配置svnserve认证方式

    在创建一个代码仓库时,通过 repository/conf/svnserve.conf 可以看到,可以通过启用 password-db 来指定可以访问 svn 代码仓库的用户认证信息,但通过该方式只能是明文形式的,有以下缺点:

    1. 用户名和密码均为明文存储,在实际项目开发过程中,管理员需要每个成员提供明文密码,存在安全隐患;
    2. 用户名和密码需要单独手动添加并独立维护;


Android实现推送方式解决方案

    本文介绍在Android中实现推送方式的基础知识及相关解决方案。推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息。这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告。本文就是来探讨下Android中实现推送功能的一些解决方案,也希望能够起到抛砖引玉的作用。

两个进程之间的描述符传递

    当前的 Unix 系统提供了用于从一个进程向任一其他进程传递任一打开的描述符的方法。也就是说,这两个进程之间无需存在任何亲缘关系,譬如父子进程关系。这种技术要求首先这两个进程之间创建一个 Unix 域套接字,然后使用 sendmsg 在这个套接字上发送一个特殊消息。这个消息由内核专门处理,会把打开的描述符从发送进程传递到接收进程。

HTTPS的原理

    HTTPS=HTTP+SSL, 现有的http是明文传输,不安全,为了能够加密传输就出现了SSL(Secure Sockets Layer)协议,用于对HTTP协议传输的数据进行加密。

Linux环境下swappiness参数的配置

    在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 swap 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 swap 分区;当 swappiness 内容的值为 100 时,表示积极地使用 swap 分区,并且把内存中的数据及时地置换到 swap 分区。

使用samba实现共享

    为了便于在 Windows 上开发,可以在 Linux 上使用 samba 启用目录共享,Windows 用户可以像使用本地磁盘一样读写 Linux 共享目录。

    1. 在 rhel 安装盘的 Packages 目录中查找 samba 的 rpm 安装包,使用如下命令安

使用VLC产生RTSP源的方法

    在编写 RTSP 视频推流服务器和客户端时,为了便于调试,可以部署一套现成的服务端,并使用客户端点播,同时使用 wireshark 抓包,查看客户端与服务端之间的通信内容。

    VLC 作为一个视频播放软件,不仅支持点播 RTSP 内容,同时还可以将指定视频文件作为直播源,通过 RTSP 协议暴露其方法。

    使用 VLC 产生 RTSP 源的方法如下:

使用内存池管理对象内存

    在需要频繁地 new/delete 对象时,很容易造成对象分配慢、内存碎片的产生。为提升应用程序在分配对象内存的效率,可以使用内存池管理对象内存的分配和释放。

    作者按以下方式实现:

    1、编写模板类 CMemoryPool, 为每个类创建一个静态的内存池对象;

    2、内存池类按大块向系统申请内存,将内存以静态双向链表进行关联,形成空闲链表;

    3、分配类对象内存时,从空闲链表淘汰一个元素,并将此结点添加到已分配的双向链表中;


Linux防火墙导致无法连接到应用程序端口

    在远程连接Linux某个服务端口时,发现连接失败,但在同一台服务器内部可使用回环地址来连接。

    这一般是由于Linux防火墙未关闭的原因造成的,可使用如下命令关闭Linux防火墙:

    $ service iptables stop


使用irqbalance服务实现中断负载均衡

    irqbalance用于优化中断分配,当启动irqbalance服务时,irqbalance会尽可能地将中断均匀地分发给各个CPU core.

    如何确定系统中irqbalance的运行状态呢?

    $ service irqbalance status
    irqbalance (pid  19612) is running...