由mac系统IOKit处理头文件中结构体字节对齐问题引起的思考

背景

在iBook G4机器的Mac OS X 10.5.8系统上使用macports安装libusb时发生了错误,显示是通过gcc7编译到#pragma options align=reset这行时,编译器不认识了,于是报了错。这个问题本身处理并不复杂,但却引起了我的思考,作为一个API的提供者,在头文件中使用是否应当使用结构体,如果使用的话如何使用才正确呢?

阅读更多

包管理器——选择brew还是macports

背景

最近有几个古老的Mac OS X 10.10和10.11设备在使用brew更新包的时候陆续遇到了一些困难,显示有一些包不支持了,必须要卸载掉不然不能正常使用。我突然想起其实还有另外一套包管理系统macports,按照说明它维护的包数量其实也很多,并且对于老版本的OS X支持也不错,是否可以尝试下呢?

阅读更多

2014年CS专业毕业的我缘何当时不懂多线程编程

问题

虽然现在我对多线程编程已经具有比较深入的概念和应用了,但关于在实际应用中使用多线程相关的知识和能力基本都是从2016年开始,在工作中有需求后,才陆续由自己学习和掌握的。鉴于多线程的重要性,我一直觉得在大学中掌握相关技能是十分重要的。这些年来一直有个问题困扰着我,为什么计算机科学与技术专业毕业的我,尽管在学校已经有意识的去理论结合实际展开实践了,但直到在真正工作后才掌握了这部分的技能?

阅读更多

解决Ubuntu 14.04服务器Kernel panic – not syncing: Attempted to kill init exitcode=0x000000b问题

问题

昨天在公司的一台公共服务器上安装了iperf3时,在进行到post-install阶段的libc-bin的trigger阶段后,报告各种失败。然后执行任何命令都直接报Segmentation fault (core dumped)。尝试重启服务器,无法正常启动。插上显示器后发现,在grub2菜单中无论正常进入或使用recovery mode进入都会报Kernel panic - not syncing: Attempted to kill init exitcode=0x000000b,调用栈没有什么参考价值。

那该如何解决呢?

阅读更多

内存速度对于视频编解码性能的影响

背景

公司使用的两个评估板平台,RK3288与RK3399,CPU计算性能单核提升72%,多核提升29%(参见这个链接)。但是针对一款多人音视频引用,尽管使用了硬件编解码,但实际CPU占用,原来是90%,更换到新平台是40%+。经过分析,RK3288平台的内存拷贝环节占据CPU时间较多。内存子系统性能应当对于整体性能和体验具有重要影响,但这一环节之前被我们忽略了。

阅读更多

使用Wireshark抓包解析macOS钉钉视频回放下载地址

背景

上上周末我参加了《陶辉的网络协议集训班》。这是极客时间在疫情环境下做的线上视频直播课,是仿线下段时间集中高强度培训的尝试。这个课程使用钉钉授课,视频回放在钉钉内不提供下载且只能看7天。虽然我知道我即使下载下来也可能不会再看,但是我就是手痒痒想下载下来。那究竟应该如何下载呢?

阅读更多

一款优秀的二进制文件分析编辑工具010Editor

背景

上周四在阅读邮箱里推送的技术文章时,发现了一篇介绍MP4封装格式的文章。这篇文章本身分析的挺好,但吸引我注意力的并不是文章内容本身,而是配图中出现了一款二进制文件分系工具。这个工具一边能方便的展示文件本身,另外一边可以进行内容结构化解析。相信有了这款工具,我在以后分析各种音视频文件或其他二进制文件时会如鱼得水! 但是文章作者并没有说这是什么工具,那这究竟是款什么工具呢?

阅读更多