课题基金 / 基金详情

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语言编写的;这样的语言效率很高,但很难正确使用。相比之下,用高级语言实现内核原则上可以减少程序员的工作量并减少错误的发生。这项研究将探索在高级语言中实现内核的成本和收益。内核使用C语言的主要原因是性能。C允许内核为内存管理、线程调度、中断等定义自己的高性能机制。相比之下,高级语言往往在这些领域规定特定的特定机制,这些机制很难更改。一个潜在的问题是,高级语言经常被垃圾回收以提高安全性,但人们普遍认为垃圾回收太慢,不能在内核中使用。这个项目将首先调查性能:用高级语言编写的内核是否可以像用C编写的内核一样快。该项目将使用GO语言实现内核,GO语言是一种类型安全的垃圾回收语言,具有良好的线程支持。然后,计划将性能与现有的C内核(如Linux、OpenBSD和FreeBSD)进行比较。预计将需要面对效率和功能挑战,特别是在对大型内核数据结构(如文件和页面缓存)使用垃圾回收方面。该项目的第二个重点领域将是利用高级语言在使用C语言时不实际的情况下实现多核内核内并行。C阻碍了瞬时线程的灵活使用,因为程序员必须提供逻辑来决定最后一个线程何时完成使用每个共享对象,然后这些共享对象可以被释放。当垃圾回收器自动执行此任务时,线程的广泛使用就容易得多。该计划是通过在多核上使用内部工作线程实现复杂的系统调用(如fork和exec)来利用GO的垃圾收集。该团队将评估由此产生的性能和可伸缩性改进是否可以超过垃圾收集和线程开销的成本。这项工作将定量揭示语言选择对内核性能的影响,这是一个目前大多以轶事形式理解的问题。垃圾收集与内核使用内存的特定方式的交互尤其值得理解。内核内并行性的研究将利用高级语言支持来利用在C内核中不切实际的技术。Broader的影响。这项工作具有广泛影响的潜力,因为大多数软件严重依赖操作系统内核提供的服务。为内核使用更好的语言可能会减少错误的流行,并增加内核开发人员提供所需新功能的简易性。提供确凿的证据支持最终转向语言技术,这应该会使内核更可靠、更容易开发,这是预期的结果。
英文摘要
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
  • 负责人:
    高学文
  • 依托单位: