本文主要内容来自于:ivoras
同 TCP 一样, SCTP 提供可靠的传输服务, 确保着数据在网络上有序无误地传输。同 TCP一样, SCTP 是一种面向会话的机制, 这意味着创建端与端之间 SCTP 结合关系先于数据的传输, 并且这种联系一直保持到所有数据传送成功完成。不同于 TCP的是, SCTP 为电话技术信号传输提供了一些重要功能, 与此同时亦有利于其他需要额外的性能和可靠性的应用。
Interrupt filter的设计来源于Darwin(MacOs的核心),主要是为了解决引入SMPng后中断处理的部分问题,它能带来:1、不亚于从前的中断处理模型的性能,2、更短的中断延时,3、更少的中断问题,如中断风暴等。 它的实现方式主要是将中断管理分离为2个逻辑片,filter与ithraed。其中filter运行于中断上下文,检查接收到的中断,服务并代理更多的工作;ithread运行于ithrade上下文,这个阶段是可以阻塞的;对中断的响应发生在filter阶段执行后。
事件审计允许可信的,更好组织的,并且可配置的大量安全相关系统日志,这包括登录、配置变更、文件和网络访问。这些日志记录在入侵检测、系统实时监测和事后分析上有宝贵价值。FreeBSD的实现遵照SUN所公布的BSM API和文件格式,并且与SUN solaris以及Apple Mac OS X的审计实现上具有良好互操作性。
审计框架已经从Current版本合并到RELENG_6,可以在6.2-RELEASE中使用。
这是一个框架实现,可以跟MAC一起使用以创建类似RBAC(如同Solaris或者其他系统那样)的策略,这样可以允许将root权限分离为得更加细致,比如“可以访问网络”或者“可以无视系统空间配额”。目前此工作还在进行中,而且不会包含直接实现了任何功能的策略模块。
目前使用的malloc() 库,调用的是 Poul-Henning Kamp 的 phkmalloc,这一实现已经有了近十年历史。这一实现设计于内存稀缺的时代,在内存分配优先级的考虑上与现在不同,而且当时多线程仍是一个学术问题。尽管如此,它仍然是相当流行的 malloc()实现,并广泛应用于所有的BSD中,甚至某些Linux发行版也使用了。
由于在多处理器系统中运行多线程应用时,它的缺乏效率,一个新的userland内存分配器被创建出来,并被它的创建者Jason Evans命名为jemalloc。它在计算机速度和内存可用性上的改进意味着,相对于phkmalloc——仅在内存使用上保守时使用,jemalloc 更适用于复杂情况,以及在底层属性上——比如CPU缓存位置和并发处理——需要记账时。 (此处似乎需要调整翻译)
这个allocator最终成为这个样子:使用多allocation arenas帮助并发性,针对多线程进行了优化。在单处理器的系统上,只有一个arena,但是在多处理器,或者则多核系统上,就分配4倍于处理器个数的arena。Allocations are divided into broad classes based on their size and those classes are further subdivided. 测试显示,jemalloc显然在多线程应用(比如MySQL)以及制造许多小allocation的应用上面有更佳表现。