课题基金 / 基金详情

CSR: Small: Operating Systems Kernels in High-Level Languages

CSR: Small: Operating Systems Kernels in High-Level Languages
CSR:小:高级语言的操作系统内核
批准号:
1617487
负责人:
Robert Morris
金额:
$50.0万
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2016
资助国家:
美国
项目状态:
已结题
起止时间:
2016-10-01 至 2019-09-30

项目摘要

项目成果

Robert Morris的其他基金

相似基金

相关文献

中文摘要
翻译
大多数软件依赖于底层操作系统内核的正确性和效率,因为内核协调对存储、网络和内存等资源的访问。内核通常是用低级语言实现的,例如,Linux内核是用C语言编写的;这些语言效率很高,但很难正确使用。相比之下,用高级语言实现内核原则上可以减少程序员的工作量和减少bug的发生率。本研究将探讨用高级语言实现内核的成本和收益。内核使用C语言的主要原因是性能。C语言允许内核为内存管理、线程调度、中断等定义自己的高性能机制。相比之下,高级语言倾向于在这些领域规定特定的机制,这些机制很难改变。一个潜在的问题是,高级语言经常通过垃圾收集来提高安全性,但是垃圾收集被普遍认为太慢,无法在内核中使用。该项目将首先调查性能:用高级语言编写的内核是否能和用c编写的内核一样快。该项目将使用Go语言实现内核,Go语言是一种类型安全、垃圾收集的语言,对线程有很好的支持。然后,计划将性能与现有的C内核(如Linux、OpenBSD和FreeBSD)进行比较。预计将需要面对效率和功能方面的挑战,特别是在对大型内核数据结构(如文件和页面缓存)使用垃圾收集时。该项目的第二个重点领域将是利用高级语言在使用C时不实际的情况下实现多核内核内并行性。C阻碍了对瞬态线程的灵活使用,因为程序员必须提供逻辑来决定最后一个线程何时完成每个共享对象的使用,然后可以释放这些线程。当垃圾收集器自动执行此任务时,线程的广泛使用要容易得多。该计划是通过在多核上使用内部工作线程实现fork和exec等复杂的系统调用来利用Go的垃圾收集。团队将评估最终的性能和可伸缩性改进是否可以超过垃圾收集和线程开销的成本。知识价值。这项工作将定量地阐明语言选择对内核性能的影响,这是一个目前主要被理解为轶事的问题。垃圾收集与内核使用内存的特定方式之间的相互作用特别值得理解。对内核内并行性的研究将利用高级语言支持来利用在C内核中不切实际的技术。更广泛的影响。这项工作具有广泛影响的潜力,因为大多数软件都严重依赖于操作系统内核提供的服务。为内核使用更好的语言可能会减少bug的流行,并增加内核开发人员提供所需新特性的难度。提供可靠的证据来支持最终转向语言技术,这应该使内核更可靠,更容易开发,这是预期的结果。
英文摘要
Most software depends on the correctness and efficiency of the underlying operating system kernel, since the kernel mediates access to resources such as storage, network, and memory. Kernels are typically implemented in low-level languages, for example, the Linux kernel is written in the C language; such languages are efficient but difficult to use correctly. In contrast, implementing kernels in high-level languages could in principle result in both reduced programmer effort and reduced incidence of bugs. This research will explore the costs and benefits of implementing kernels in high-level languages.The main reason kernels use C is performance. C allows a kernel to define its own high-performance mechanisms for memory management, thread scheduling, interrupts, etc. In contrast, high-level languages tend to prescribe specific particular mechanisms in these areas, which are difficult to change. One potential problem is that high-level languages are often garbage-collected to improve safety, but garbage collection is widely viewed as too slow to use in kernels.This project will first investigate performance: whether a kernel written in a high-level language can be as fast as a kernel written in C. The project will implement a kernel using the Go language, a type-safe, garbage-collected language with good support for threads. Then, the plan is to compare performance with existing C kernels such as Linux, OpenBSD, and FreeBSD. It is expected there will be a need to face efficiency and functionality challenges, particularly in the use of garbage collection for large kernel data structures such as file and page caches.The project's second area of focus will be to exploit the high-level language to achieve multi-core in-kernel parallelism in situations that are not practical when using C. C impedes flexible use of transient threads, since the programmer must supply the logic to decide when the last thread has finished using each shared object, which can then be freed. Extensive use of threads is much easier when a garbage collector automates this task. The plan is to exploit Go's garbage collection by implementing complex system calls such as fork and exec using internal worker threads on multiple cores. The team will evaluate whether the resulting performance and scalability improvement can be made to outweigh the costs of garbage collection and thread overhead.Intellectual merit.This work will shed quantitative light on the effect of language choice on kernel performance, a question that is currently understood mostly anecdotally. The interaction of garbage collection with the specific ways kernels use memory is particularly worth understanding. The investigation of in-kernel parallelism will exploit high-level language support to harness techniques that are impractical in C kernels.Broader impacts.The work has the potential for broad impact because most software depends critically on services provided by the operating system kernel. Using a better language for the kernel would likely reduce the prevalence of bugs and increase the ease with which kernel developers can provide desirable new features. Providing solid evidence to support an eventual switch to language technology which ought to make kernels more reliable and easier to develop is the intended outcome.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
Collaborative Research: Drivers and effects of latent phage activation in marine SAR11
  • 批准号:
    2201310
  • 项目类别:
    Standard Grant
  • 资助金额:
    $69.37万
  • 财政年份:
    2022
  • 负责人:
    Robert Morris
  • 依托单位:
CSR: Medium: Collaborative Research: Soup: Flexible Storage and Processing for On-Line Applications
Characterizing the contribution of bacteria from the SUP05 clade to autotrophic and heterotrophic carbon cycling across ocean gradients
  • 批准号:
    1558483
  • 项目类别:
    Standard Grant
  • 资助金额:
    $84.56万
  • 财政年份:
    2016
  • 负责人:
    Robert Morris
  • 依托单位:
Mixotrophic bacteria and the cryptic marine sulfur cycle: Mechanisms of carbon assimilation and sulfur oxidation in the Arctic96BD-19 GSO clade
  • 批准号:
    1232840
  • 项目类别:
    Continuing Grant
  • 资助金额:
    $37.33万
  • 财政年份:
    2012
  • 负责人:
    Robert Morris
  • 依托单位:
国内基金
海外基金
昼夜节律性small RNA在血斑形成时间推断中的法医学应用研究
  • 批准号:
  • 项目类别:
    省市级项目
  • 资助金额:
    --
  • 批准年份:
    2024
  • 负责人:
  • 依托单位:
tRNA-derived small RNA上调YBX1/CCL5通路参与硼替佐米诱导慢性疼痛的机制研究
  • 批准号:
  • 项目类别:
    省市级项目
  • 资助金额:
    10.0万元
  • 批准年份:
    2022
  • 负责人:
    张祥忠
  • 依托单位:
Small RNA调控I-F型CRISPR-Cas适应性免疫性的应答及分子机制
Small RNAs调控解淀粉芽胞杆菌FZB42生防功能的机制研究
  • 批准号:
    31972324
  • 项目类别:
    面上项目
  • 资助金额:
    58.0万元
  • 批准年份:
    2019
  • 负责人:
    高学文
  • 依托单位: