下载本文的PDF版本 PDF

超越代码仓库

开源生态系统研究人员的最佳实践

Amanda Casari、Julia Ferraioli 和 Juniper Lovato

开源远不止是一个代码仓库——它是一个由人类贡献者组成的多层次的丰富生态系统,他们以多种身份协同合作,共同完成一项创造性的事业。因此,在研究开源生态系统时,必须考虑许多相互作用的部分,才能理解整体的动态。对开源生态系统的研究最终是对社会技术生态系统的研究。研究人员应注意在研究中保留“社会-”要素,并了解他们的方法和结果可能如何影响整个开源生态系统。

本文通过多个总体最佳实践,描述了开源生态系统研究的最佳实践。它为开展严谨、合乎道德、尊重的研究提供了实用指南,这些研究旨在维护所考虑的开源生态系统的完整性。

 

引言

开源项目和生态系统已经发展成为支撑现代社会的重要社会技术系统。13 作为 STEM(科学、技术、工程和数学)领域的重要组成部分,开源本身也在许多学科下进行研究,包括科学学、经济学、数据伦理学、计算机科学、心理学、社会学等等。

对开源生态系统进行全面且科学合理的审查,将有助于:

• 为关键漏洞披露和修复设定互惠互利的最佳实践期望。26

• 分析生态系统层面的动态,以识别影响项目生命周期发展的局部因素。28

• 识别对历史上少数群体人口产生人口层面影响的细粒度开发实践。

当开源项目和关于开源的开放数据被视为“免费”的研究机会时,可能会迅速出现升级的情况。当研究人员未能考虑开源的人为因素时,会通过以下方式损害开源生态系统:

• 增加对通常不堪重负的志愿者团体的需求。25

• 影响未设计为支持研究用例的昂贵基础设施系统。7

• 将重要的开源系统视为已知问题学术研究的试验台,而未征得社区的同意或回馈以纠正这些问题。6

许多关于开源的现有研究选择研究软件仓库而不是生态系统。16 开源仓库最常指版本控制系统中记录的工件,偶尔包括围绕仓库本身的交互。开源生态系统指的是仓库的集合、社区、他们的互动、激励措施、行为规范和文化。开源的去中心化性质使得对生态系统进行整体分析成为一项艰巨的任务,社区和身份以有机且不断发展的方式交汇。

尽管存在这些复杂性,但对软件安全和供应链日益增加的审查使得在进行关于开源的研究时,采取基于生态系统的方法至关重要,如图 1 所示。本文提供了使用从开源生态系统收集的数据进行研究的指南和最佳实践,鼓励研究团队以尊重的方式与社区合作。

 

Beyond the Repository: Best practices for open source ecosystems researchers - Four overlapping areas of consideration

Beyond the Repository: Best practices for open source ecosystems researchers - Four overlapping areas of consideration

 

1. 始终将开源生态系统视为“生产中”的系统。

开源触及全球关键任务系统,并对全球人口产生越来越大的影响。19 其中一些系统无法在预定的维护窗口之外进行修补,甚至根本无法修补。它们可能是为个人胰岛素泵供电的系统,3 模拟水质,21 或决定弱势群体获得福利资格的系统。2

构成开源生态系统的基础设施和社区不是实验性测试环境。6 在开源生态系统中运行行为或技术实验可能会以未知和不可估量的方式影响世界的基础设施。在某些情况下,这种影响可能会对生态系统的参与者和最终用户造成真实且持久的伤害,而最终用户在生态系统中没有任何代理权。正如一项公共指南中所述:

 

“不要用你的测试影响其他用户;这包括测试你不拥有的仓库或组织中的漏洞。”15

 

此外,由于开源影响着人们的生活,而他们对此一无所知,因此不可能获得实验的知情同意(即使是出于最好的意图)。开源生态系统可能因其在过程和结果中都拥抱透明性而吸引研究人员,成为研究的理想候选者。但是,研究人员应将这些生态系统视为永久“生产中”的系统,并在设计实验时格外谨慎。

最佳实践: 确保如果实验有可能影响开源生态系统或人口,则这些实验是独立的、没有副作用的,并且在需要时是可逆的。

 

2. 假设维持系统运行的人员的经济激励和可用性分布不均。

开源生态系统的构成在几十年中发生了变化,从主要由无偿贡献者组成,转变为由无偿和有偿贡献者混合组成。由于对贡献者和维护者直接经济支持的差异,参与开源的程度因经济因素而异。5 此外,这些经济激励(和抑制因素)可能在可用数据中不存在或观察不一致。24

经济激励也可能根本无法直接观察到。考虑到公司倾向于使用开源参与来筛选潜在候选人,同样也使用自己的参与来招聘潜在候选人,18 贡献者可能会将他们的参与视为对其自身经济和声誉利益的投资。这也使得开源中的工作倾向于可以衡量或以其他方式量化的工作;诸如设计或可访问性测试之类的工作通常不会出现在可用数据中,因此在经济和声誉上都不受鼓励。31

最佳实践: 在对开源生态系统的人口进行任何分析时,都应包含并记录那些排除或抑制参与的因素。10

 

这些因素可能反映在数据中,或缺乏数据中,代表不同类型的(可能重叠的)偏差:

补偿偏差。 对于许多拥有相关技能或在其专业领域中可能是异常的人来说,无偿参与通常不是一个可行的选择。

访问偏差。 设备和/或可靠的互联网连接可能在个人工作环境之外无法访问。

地理偏差。 潜在的贡献者可能因地理位置而遇到参与障碍,例如制裁或工作时间差异。

未分配时间偏差。 有家庭责任、残疾或正在经历经济困难的个人,可用于参与的时间较少。

在分析开源生态系统的经济性和可持续性时,研究人员必须考虑到所选数据可能无法完全描绘出正在执行的工作。此外,他们应仔细且明确地检查他们的结论如何可能因仅仅因为数据方便而过度重视某些类型的工作,从而加剧开源生态系统中的不平等现象。

 

3. 以尊重附加许可证的方式检查所有在线信息,或假设最高级别的创作者所有权——对于软件、数据、内容以及所有内容。

“公开”发布并不自动意味着信息可用于重用——无论是在代码、文献还是研究中。在研究开源生态系统时,请确保相关数据的使用遵循附加到项目或系统的许可和政策。

开源生态系统数据的使用可能像识别附加到仓库的许可证一样简单。23 随着平台和第三方应用程序在开源社区和基础设施管理中的使用增加,不能安全地假设附加到项目的源许可证适用于社区使用的所有资源或用于组织开源工作的所有资源。研究每个平台的条款和条件以及这些平台中每个组织的特定社区准则。

例如,维基共享资源明确声明了其关于可识别人物照片的准则:

 

“在处理人物照片时,除了摄影师和图像所有者的担忧之外,我们还需要考虑拍摄对象的合法权利以及发布照片的伦理道德。”8

 

开源社区还经常使用免费或开源软件构建和托管自己的基础设施,这些基础设施对软件、存储在其中的数据和社区准则具有许可证和权限的组合。必须理清所有这些,以找出最高限制性政策。

最佳实践: 如果没有关于第三方如何以及在何种条件下可以使用信息的指南或文档,则应认为该信息不可用于研究目的,并将其从数据中排除。

 

4. 清晰明确地说明您的观察、抽样方法以及数据来源的文档。

虽然行业通常使用术语开源来指代创建遵守 OSD(开源定义)22 的软件的集体运动和开发实践,但整个开源生态系统包含许多以复杂方式相互作用(或不相互作用)的子生态系统。鉴于语言的歧义和误解的可能性,研究问题应尽可能具体地识别相关人群和子生态系统。避免对可能不适用于或无法在子生态系统中测试的开源进行概括。

开源中的实践、沟通机制和工具发展迅速且差异很大。这可能导致可用数据的异质性高于平均水平。

最佳实践: 当执行和发布基于定量数据的研究时,请记录数据收集过程的参数,包括适用的时间跨度、可用数据和相关人群。尽可能包含或参考14 所收集或使用数据的文档。

 

由于关于开源的数据集很少,因此很容易将新的研究建立在可能无法跨时间范围、人群或技术转移的预先存在或“方便的数据”上。请注意,现有数据集可能无法代表正在考虑的子生态系统。27 在将一个子生态系统的结论应用于另一个子生态系统时要谨慎,并确保方法包括基线的测试和重建。

同样,倾向于可以按研究复制的结果,而不是依赖从先前研究中得出的结论。这最大限度地减少了在方法中循环使用错误或放大开源生态系统中偏差的可能性。确保在发布任何解释或结论时都包含数据、代码和方法。

 

5. 使用社区最佳实践并改进已有的生态系统计划,即使这在科学上不是“新颖的”。

在开源中没有“沉默”或“超然的观察者”角色。研究人员或分析师能够在社区中产生的影响,以及他们正在建立的技术社会声誉,将直接关系到他们对其工作如何影响他人及其各自工作量的考虑。每个开源生态系统都有自己书面和不成文的规则,用于提交反馈、提出改进建议以及在发生技术紧急情况时识别责任方。研究人员不能忽视这些规范,即使这些规范与他们科学社区的晋升和成就途径相反。

科学和行业研究并不总是奖励对开源社区成员改进其工作和了解其自身空间有用的同类发现。

最佳实践: 使用已建立的社区渠道和实践报告在研究期间做出的任何值得注意的发现,而不是丢弃可能没有新颖科学价值的问题。

 

成为改进应用科学开源的内部反馈循环的一部分,不仅有助于研究人员所属的社会技术系统,而且还增加了研究人员与其社区之间的技术社会信任。

隐私和安全研究人员有自己的社区准则和实践,这些准则和实践可能并不总是适用于一般的开源生态系统。当研究渗透到新的生态系统中时,尤其重要的是要寻找沟通规范和已知问题。大多数生态系统都有已建立的计划和管理机构,以便在公开发布之前报告漏洞发现。11 这适用于任何出版物,无论是博客还是科学论文,并防止社区感到被研究人员针对。

 

6. 从选择加入的来源中寻求真实数据,而不是推断方法。

开源缺乏基本社会科学基线人口数据,可用于比较研究。这可能导致在呈现调查结果或选择无监督方法时缺乏问责制,这些方法允许在没有比较性真实数据来验证发现的情况下得出结论。

最佳实践: 在检查开源中的社会结构时,避免使用科学上不健全且可能进一步疏远或抹杀亚人群的算法方法。1

 

研究人员必须认真对待在数据选择、清理和特征识别期间采取的步骤,特别是关于身份的分类和易于简化的归纳为单一类别。例如,人们作为有偿工作的一部分所做的开源贡献可能与他们不代表雇主时所做贡献和工作的空间不同。人们不容易坐在一个单一维度的集群中。

应保护个人参与特定生态系统的背景,并且不应期望跨系统进行。身份可能是暂时的——重复询问个人的身份很重要,因为这些自我选择的词语可能会随着时间和贡献领域的不同而变化。允许人们在特定背景下选择自己的 demographic 和身份标记,可以让个人最准确地代表自己。

由于许多开源社区与多个信息来源合作,因此将所有工作和数据与特定个人联系起来可能具有挑战性。但是,身份可能专门是社区、平台或空间的因素。个人可能能够在某些社区中毫无畏惧地代表自己,但在其他社区则不能。因此,在受试者无法大规模调查中自我识别时,每位研究人员都需要在数据系统中执行反别名操作之前,咨询自己学科的数据伦理实践。

 

7. 在限定社会技术生态系统的研究问题范围时,保留“社会-”要素。

在限定研究问题范围时,不要将问题简化为仅仅是协作社区产生的技术要素和工件,以及人类对生态系统动态的影响。开源是一个多维生态系统,涉及技术和社会系统互连网络之间的相互作用。使用混合方法方法和多学科合作可以帮助揭示正在检查的系统中的这些关键维度。

如果您试图了解开源软件工件系统,那么了解创建该系统的背景可能同样重要,而许多背景可能在代码或系统中的元数据中不可见。了解谁创建了工件、通过什么方式以及在什么情况下创建的工件,是理解最终产品质量和结构的关键方面。为了避免遗漏影响社会技术生态系统的结构(或结构)和动态的关键变量,考虑社会背景也很重要。12,20

最佳实践: 与开源社区成员、合作伙伴和社会科学家合作,他们可以调查输出背后的背景框架,以便充分捕获任何开源生态系统,并避免研究结果中出现暗数据问题。17

 

8. 如果收集关于社区中人员的数据,请获得被研究社区的同意并与他们协商。

在开始数据收集时,让受影响社区的成员参与到从设计过程到实施的研究生命周期中,并通过沟通任何发现。与社区协商有助于理解开源生态系统、招募参与者、验证结果以及理解结果对社区的潜在影响。同样重要的是,在研究流程结束时与社区合作伙伴协商沟通结果,以避免对社区的误解。

收集关于开源社区的新信息(原始数据)的研究人员应获得研究研究中涉及的个人和团体的直接知情同意。在可能的情况下,通过招募并与相关研究伦理委员会或 IRB(机构审查委员会)合作,直接将成员纳入研究,而不是仅仅从在线平台抓取数据。即使 ToS(服务条款)允许这样做,研究人员也应受到更高的标准约束。关于开源生态系统的数据涉及到人类受试者,即使被认为是公开的,从在线开源社区收集的信息仍可能包含敏感的 PII(个人身份信息)。9

如果使用关于开源社区的二级数据(非直接收集的数据,而是从二级来源获得的数据),请务必检查原始数据收集者是否获得了收集原始数据集的知情同意,以及第三方是否有权使用该数据。虽然数据集的元数据可能指示其他人可以使用它的条件,但在可能的情况下,请通过直接联系原始数据收集者来验证权限。

最佳实践: 获取研究生命周期中收集的任何原始数据的知情同意;了解二级数据的收集方式、收集时间、收集者以及在何种监督下收集。

9. 在处理和共享数据时,找到隐私、伦理道德和透明度之间的平衡。

虽然数据伦理道德和开放数据可能被视为相互对立,但两者都在开源生态系统研究中发挥着重要作用。合乎道德的数据收集和处理确保数据在方法论和社会方面都是健全的,而开放数据确保研究可以被开源和研究社区复制和审查。在可能的情况下,将 FAIR(可查找性、可访问性、互操作性和可重用性)30 和 CARE(集体利益、控制权、责任和伦理道德)原则4 结合起来考虑,以找到开放和合乎道德的数据实践之间的平衡。

最佳实践: 明确标记可能在元数据中涉及人类受试者的数据(例如,数据表、代码簿、数据卡、清晰的 README 文件),以确保透明度。

单独来看可能不被认为是敏感的数据,如果与另一个数据集组合,则可能变得敏感。数据的聚合可以取消识别数据集或暴露关于个人或群体的敏感信息。29 如果组合数据集,请特别注意不要通过组合旨在代表不同个人身份的别名来暴露敏感的个人信息。

开放性本身不一定是好事。如果作为开源生态系统研究的一部分收集或聚合的数据可能以有害或不道德的方式牵连到社区,则研究人员有责任与被牵连的社区、IRB 和数据伦理学家协商,以找到使研究可重复且不发布原始数据的最佳方法。

 

结论

开源生态系统远远超出它们产生的代码仓库。对这些生态系统的研究必须考虑到开源的复杂性,包括对研究本身下游影响的考虑。研究人员在限定范围、计划、执行和发布研究时,应将数据伦理道德、研究最佳实践、尊重和公平以及生态系统完整性放在首位。

虽然本文概述了许多属于这些主题的考虑因素,但开源生态系统的复杂性、规模和快速增长需要一种不断发展的研究方法,并可能导致形成额外的建议。这些补充或扩展很可能仍属于一个或多个总体主题,并且以这种方式将它们置于上下文中可能对未来的研究和研究人员有所帮助。开源生态系统和对其进行研究的实践将继续受益于周到且认真的方法,这些方法融入了这些最佳实践。

 

参考文献

1. Aguera y Arcas, B., Mitchell, M., Todorov, A. 2017. 面相学的新装。Medium; https://medium.com/@blaisea/physiognomys-new-clothes-f2d4b59fdd6a.

2. 公共事务助理部长。2016. 3.14 开源软件。卫生与公共服务部; https://www.hhs.gov/open/2016-plan/open-source-software.html.

3. Burnside, M. J., Lewis, D. M., Crocket, H., Meier, R., Williman, J., Sanders, O. J., Jefferies, C. A., Faherty, A. M., Paul, R., Lever, C. S., Wheeler, B. J., Jones, S., Frewen, C. M., Gunn, T., Lampey, C., De Bock, M. 2022. 286-OR CREATE 试验:在 1 型糖尿病中比较开源自动胰岛素输送与传感器增强泵疗法的随机临床试验。糖尿病 71 (Supplement_1); https://diabetesjournals.org/diabetes/article/71/Supplement_1/286-OR/146634/286-OR-The-CREATE-Trial-Randomized-Clinical-Trial.

4. Carroll, S. R., Garba, I., Figueroa-Rodríguez, O. L., Holbrook, J., Lovett, R., Materechera, S., Parsons, M., Raseroka, K., Rodriguez-Lonebear, D., Rowe, R., et al. 2020. 土著数据治理的 CARE 原则。数据科学杂志 19(1), 43; https://datascience.codata.org/articles/10.5334/dsj-2020-043/.

5. Carter, H., Groopman, J. 2021. 开源中的多样性、公平性和包容性。Linux 基金会; https://8112310.fs1.hubspotusercontent-na1.net/hubfs/8112310/LF%20Research/2021%20DEI%20Survey%20-%20Report.pdf.

6. Chin, M. 2021. 一所大学如何被 Linux 内核禁止。The Verge; https://www.theverge.com/2021/4/30/22410164/linux-kernel-university-of-minnesota-banned-open-source.

7. Clark, M. 2021. 安全研究人员找到了一种在 Apple、PayPal 和 Microsoft 系统上运行代码的方法。The Verge; https://www.theverge.com/2021/2/10/22276857/security-researcher-repository-exploit-apple-microsoft-vulnerability.

8. Commons: 可识别人物的照片。2023; 维基共享资源; https://commons.wikimedia.org/wiki/Commons:Photographs_of_identifiable_people.

9. 计算机安全资源中心。个人身份信息。词汇表。国家标准与技术研究所; https://csrc.nist.gov/glossary/term/personally_identifiable_information.

10. D'Ignazio, C., Klein, L. F. 2020. 数据女权主义。强大的思想系列。马萨诸塞州剑桥市:麻省理工学院出版社。

11. Django. Django 的安全策略; https://docs.django.ac.cn/en/4.1/internals/security/.

12. Dunne, J. A., Maschner, H., Betts, M. W., Huntly, N., Russell, R., Williams, R. J., Wood, S. A. 2016. 北太平洋海洋食物网中人类狩猎采集者的作用和影响。科学报告, 6(21179); https://www.nature.com/articles/srep21179.

13. Eghbal, N. 2016. 道路和桥梁:我们数字基础设施背后看不见的劳动。福特基金会; https://www.fordfoundation.org/work/learning/research-reports/roads-and-bridges-the-unseen-labor-behind-our-digital-infrastructure/.

14. Gebru, T., Morgenstern, J., Vecchione, B., Vaughan, J. W., Wallach, H., Daumé III, H., Crawford, K. 2021. 数据集的 Datasheets。 通讯 64(12), 86–92; https://cacm.acm.org/magazines/2021/12/256932-datasheets-for-datasets/abstract.

15. GitHub 安全。2022. GitHub 漏洞赏金; https://bounty.github.com.

16. Gold, N. E., Krinke, J. 2021. 软件仓库挖掘中的伦理道德。实证软件工程 27(1); https://dl.acm.org/doi/10.1007/s10664-021-10057-7.

17. Hand, D. J. 2020. 暗数据:为什么你不知道的事情很重要。新泽西州普林斯顿:普林斯顿大学出版社。

18. Lerner, J., Tirole, J. 2000. 开源的简单经济学。哈佛商学院工作论文。SSRN 电子期刊; https://papers.ssrn.com/sol3/papers.cfm?abstract_id=224008.

19. Lifshitz-Assaf, H., Nagle, F. 2021. 数字经济运行在开源之上。以下是如何保护它。哈佛商业评论 (9 月 2 日); https://hbr.org/2021/09/the-digital-economy-runs-on-open-source-heres-how-to-protect-it.

20. Nissenbaum, H. 2009. 情境中的隐私权。在情境中的隐私, 186–230。加利福尼亚州红木城:斯坦福大学出版社。

21. 研究与开发办公室,USEPA。2014. EPANET; https://www.epa.gov/water-research/epanet.

22. 开源促进会。2007. 开源定义; https://open-source.org.cn/osd.

23. 开源促进会。2023; https://open-source.org.cn.

24. Riehle, D. 2007. 开源软件的经济动机:利益相关者的观点。计算机 40(4), 25–32; https://dl.acm.org/doi/10.1109/MC.2007.147.

25. Ruby, S. 2022. Confluence Mobile 立场文件。Apache 软件基金会; https://cwiki.apache.org/confluence/plugins/servlet/mobile?contentId= 199530455&s=09#content/view/199530455.

26. Schoen, R. 2022. Project Zero 指标漫步。Google Project Zero 博客; https://googleprojectzero.blogspot.com/2022/02/a-walk-through-project-zero-metrics.html.

27. Trujillo, M. Z., Hébert-Dufresne, L., Bagrow, J. 2022. 开源的半影:中心化平台之外的项目维护时间更长、更学术化且更具协作性。EPJ 数据科学 11(31); https://epjdatascience.springeropen.com/articles/10.1140/epjds/s13688-022-00345-7.

28. Valiev, M., Vasilescu, B., Herbsleb, J. 2018. 开源项目中持续活跃的生态系统层面决定因素:PyPl 生态系统的案例研究。在第 26 届 欧洲软件工程会议和软件工程基础研讨会联合会议论文集, 644–655; https://dl.acm.org/doi/10.1145/3236024.3236062.

29. Wagner, I., Boiten, E. 2018. 隐私风险评估:从艺术到科学,通过指标。在数据隐私管理、加密货币和区块链技术。施普林格国际出版社; https://www.springerprofessional.de/en/privacy-risk-assessment-from-art-to-science-by-metrics/16103664.

30. Wilkinson, M. D., Michel Dumontier, M., Aalbersberg, I. J., Appleton, G., Axton, M., Baak, A., Blomberg, N., Boiten, J.-W., da Silva Santos, L. B., Bourne, P. E., et al. 2016. 科学数据管理和监管的 FAIR 指导原则。科学数据, 3(160018); https://www.nature.com/articles/sdata201618.

31. Young, J.-G., Casari, A., McLaughlin, K., Trujillo, M. Z., Hebert-Dufresne, L., Bagrow, J. P. 2021. 哪些贡献算数?开源中归因的分析。在IEEE/ 第 18 届软件仓库挖掘国际会议 (MSR); https://ieeexplore.ieee.org/document/9463079.

 

Amanda Casari 是 Google 开源项目办公室的研究员和工程师,她在那里共同领导研究和工程,以更好地了解开源生态系统中的风险和弹性。她于 2021 年被任命为佛蒙特复杂系统中心的外聘教员。Amanda 始终对我们旨在创建的系统与涌现的系统之间的差异以及馅饼着迷。

Julia Ferraioli 是一位独立的开源战略家、研究员和从业者,在启动、管理和优化大规模开源项目方面拥有十年的经验。她目前的研究中心围绕开源可持续性、历史和治理。她的社区工作包括共同领导 Open Source Stories,这是一项社区主导的工作,旨在让开源人士及其生活经历更加可见。Julia 是 LaTeX、牛津逗号和小 pull request 的坚定支持者。

Juniper Lovato 是复杂系统和数据科学领域的教育家和研究员。她目前的研究重点是数据伦理道德、群体隐私、复杂系统、故事科学和开源生态系统。她是佛蒙特大学佛蒙特复杂系统中心的合作伙伴关系和外部项目主管,也是佛蒙特大学复杂系统与数据科学博士候选人。

 

版权所有 © 2023,所有者/作者持有。出版权已许可给 。

acmqueue

最初发表于 Queue 第 21 卷,第 2 期
数字图书馆 中评论本文





更多相关文章

Guenever Aldrich, Danny Tsang, Jason McKenney - 程序经理三人和谐曲:献给那些尚未理解的程序经理
本文探讨了系统采购工具箱中的三种工具,这些工具可以加速开发和采购,同时减轻程序风险:OSS、开放标准和 Agile/Scrum 软件开发流程都是 DoD 采购项目管理工具箱的强大补充。


Jessie Frazelle - 开源固件
开源固件可以通过使固件的行为更加可见,并减少其造成危害的可能性,从而帮助将计算带到一个更安全的地方。本文的目标是使读者有能力要求供应商提供更多帮助,以推动这一变革。


Marshall Kirk McKusick, George V. Neville-Neil - FreeBSD 5.2 中的线程调度
繁忙的系统每秒钟做出数千个调度决策,因此做出调度决策的速度对于整个系统的性能至关重要。本文——摘自即将出版的书籍《FreeBSD 操作系统设计与实现》——以开源 FreeBSD 系统为例,帮助我们理解线程调度。最初的 FreeBSD 调度器是在 20 世纪 80 年代为大型单处理器系统设计的。尽管它在今天的环境中仍然运行良好,但新的 ULE 调度器是专门为优化多处理器和多线程环境而设计的。本文首先研究了最初的 FreeBSD 调度器,然后描述了新的 ULE 调度器。


Bart Decrem - 桌面 Linux:你在哪里?
桌面 Linux 已经走了很长一段路——而且这是一段过山车般的旅程。在互联网泡沫的顶峰时期,大约在 Red Hat 首次公开募股时,人们期望 Linux 在短时间内在桌面上腾飞。几年后,在股市崩盘和几家备受瞩目的 Linux 公司倒闭之后,评论员们迅速宣布桌面 Linux 胎死腹中。





© 保留所有权利。

© . All rights reserved.