摘要
现代操作系统都会通过内核管理和调度各种硬件资源,内核的安全稳定是操作系统的基础。现代成熟的操作系统内核均由诸如C等低级语言进行开发,比如Linux内核。虽然C语言的底层操作能力对内核很有帮助,但是也因此带来许多缺陷和漏洞。用高级语言开发的内核可以规避很多潜在风险,但是可能付出的代价是性能的降低。完整地实现一个内核是一项巨大的工程,因此该文用Go语言实现内核的网络堆栈子系统,以此研究用高级语言实现操作系统内核的可行性,评估用高级语言开发内核的优势和缺点。该文主要实现的网络协议包括Ethernet, ARP,IPv4,ICMP,UDP和TCP,并且会从代码可读性和性能两个角度与C语言开发的网络堆栈子系统进行比较,从而分析Go语言开发操作系统内核的可行性。