最近在读Darwin Streaming Server源代码,刚刚开始,随意记录一些信息。

DSS 代码非常旧,MacOS forge上的版本还停留在6.0.3,看样子应该是2003年的陈年老酒,不过即便如此还是有许多值得学习的地方。

说到阅读源码,是让人感到压力山大浑身不自在的事情,无论是别人写的,还是自己写的。好在DSS的Documentation目录下有许多非常值得阅读的资料,可供参考。读完 AboutTheSource.html , DevNotes.html, FAQ.html 和 QTSSAPIDocs.pdf 之后,感觉DSS的代码框架已经一目了然,并且有迫不及待去看相关代码实现的冲动了。

DSS的RTP实现建立在所谓“reliable UDP”之上,何谓“可靠UDP”,让人非常疑惑,在Documentation中找到Reliable RTP Whitepaper,可窥端倪。网上也有介绍苹果自家的“reliable UDP”的设计、实现的相关介绍,可以参考。

这些文档从系统设计的角度介绍了DSS的全貌。系统设计一直是我很感兴趣的一个话题,DSS的系统设计理念很值得学习和思考。模块化、异步执行(不阻塞)、消息队列与派发,这些也都是现代服务器/操作系统的设计理念。

这是阅读学习DSS代码的一篇小小指引,后续会逐渐增加一些自己的发现。