我对具有多线程架构的操作系统感兴趣,例如 Mach 和 BeOS;不依赖于 POSIX 等库来实现多线程。 BSD 和 SunOS 有多线程架构吗?
答案1
“SunOS”这个名称至少涵盖了 2 个操作系统系列。
最初的“SunOS”是4.2BSD衍生的系统,Sun推出了4.1.4之前的版本。 Sun 版本仅在其生命周期即将结束时(即 1994 年左右)处理多 CPU 系统。科罗拉多州 Longmont 的一家公司 Solbourne Computer 制造了多 SPARC-CPU 机器,并修改了 SunOS(不记得版本了)成为多线程。大约 1990 年 5 月,我开始使用多 CPU Solbourne 盒子。
SunOS 系列(更普遍地称为“Solaris”)是 ATT System V 的衍生产品。它绝对可以处理多 CPU 硬件。
您可以并且可以在 SunOS 的两个系列下执行多线程用户态程序。有人推出了一个基于信号处理程序的线程包,该包适用于 SunOS 4.1.x 版本,Solaris 附带了 Pthreads 和其他一些线程包,它们在 API 方面几乎完全相同。可以使 Solaris 线程以 1:1 的比例针对内核线程运行,或者可以在单个内核线程上运行多个用户态线程。
答案2
FreeBSD 的内核是多线程的;用户空间应用程序使用 POSIX pthreads API 来执行多线程处理,但这些 API 是在内核本机多线程功能之上实现的。
最后我知道,OpenBSD 上的 POSIX 线程是在用户空间中实现的,而不是使用基于内核的线程。
答案3
FreeBSD有一个SMP友好的内核,具有多线程执行,内核的许多部分可以独立运行,并且支持抢占。
NetBSD 多年来一直致力于同一件事。 DragonFly BSD 重新开始了这项工作(从 FreeBSD4 开始)并使用消息传递等。
OpenBSD 和 MirBSD 的内核没有完整的 GIANT 无锁 SMP 实现,而后者也不想这样做。
MidnightBSD 与 FreeBSD 7 基本相同。