forked from rcore-os/rCore
-
Notifications
You must be signed in to change notification settings - Fork 26
workshop 20190312
Chen edited this page Mar 13, 2019
·
2 revisions
cy, xy, cjj, yzjc, wrj, zqy
设计一种方法,支持在用户态用多种语言快速开发OS组件,通过工具辅助重构成内核态模块。
相关工作:
- Biscuit: Go Runtime => kernel
- ixy: Net driver => user
- Rust: std for user, core for bare metal
- DPDK, FUSE
- Process In Process ??
主要目标:
- 如何用于用户态驱动?
- 如何用于进程通讯IPC?
要考虑的问题:
-
共享设备如何处理?例如网络包需要解析才能知道要分发到哪个进程。
cy: 用户态公共库处理
xy: 只能内核处理
wrj: 内核向用户态暴露一段只读可执行的中断处理例程,解析网络包(如何读到数据是个问题)。如果属于正在执行的进程,则跳转到用户处理函数,否则进入内核态处理。
-
如何修改硬件以更好地适配软件?
例如:网络环境中,FPGA快速响应中断信号
通过程序设计语言的支持,在system call与function call之间快速转换
可能的实现:运行时替换?
- cjj: 真实网卡82599,真机测试
- wrj: 真机测试,性能对比
- yzjc: 用户态中断
- zqy: 多线程与网卡驱动/协议栈