[1]柴艳娜.Linux 内核的 Go 语言实现研究[J].计算机技术与发展,2021,31(06):70-75.[doi:10. 3969 / j. issn. 1673-629X. 2021. 06. 013]
 CHAI Yan-na.Research on Implementing Linux Kernel with Go[J].,2021,31(06):70-75.[doi:10. 3969 / j. issn. 1673-629X. 2021. 06. 013]
点击复制

Linux 内核的 Go 语言实现研究()
分享到:

《计算机技术与发展》[ISSN:1006-6977/CN:61-1281/TN]

卷:
31
期数:
2021年06期
页码:
70-75
栏目:
系统工程
出版日期:
2021-06-10

文章信息/Info

Title:
Research on Implementing Linux Kernel with Go
文章编号:
1673-629X(2021)06-0070-06
作者:
柴艳娜
长安大学 信息与网络管理处,陕西 西安 710064
Author(s):
CHAI Yan-na
Dept. of Information and Network Management,Chang’an University,Xi’ an 710064,China
关键词:
Linux 操作系统内核网络堆栈Go 语言TCP / IP 协议栈
Keywords:
Linuxkernelnetwork stackGo programming languageTCP / IP suite
分类号:
TP31
DOI:
10. 3969 / j. issn. 1673-629X. 2021. 06. 013
摘要:
现代操作系统都会通过内核管理和调度各种硬件资源,内核的安全稳定是操作系统的基础。 现代成熟的操作系统内核均由诸如 C 等低级语言进行开发,比如 Linux 内核。 虽然 C 语言的底层操作能力对内核很有帮助,但是也因此带来许多缺陷和漏洞。 用高级语言开发的内核可以规避很多潜在风险,但是可能付出的代价是性能的降低。 完整地实现一个内核是一项巨大的工程,因此该文用 Go 语言实现内核的网络堆栈子系统,以此研究用高级语言实现操作系统内核的可行性,评估用高级语言开发内核的优势和缺点。 该文主要实现的网络协议包括 Ethernet,ARP,IPv4,ICMP,UDP 和 TCP,并且会从代码可读性和性能两个角度与 C 语言开发的网络堆栈子系统进行比较,从而分析 Go 语言开发操作系统内核的可行性。
Abstract:
Modern operating systems manage and schedule various hardware resources with Kernel, so it’s the base that the builtin kernel works well and securely. The modern mature kernels are developed by lower - level language such as C, like Linux kernel.Although the low-level functionalities of C language are helpful to the kernels, they also give rise to many classes of bugs. Kernels written in higher level languages avoid many of these potential issues, at the possible cost of decreased performance. This research evaluates the advantages and disadvantages of a kernel written in a higher-level language. To do this,the network stack subsystem of the kernel was implemented in Go and compared to a representative network stack written in C. Modules for the major networking protocols,including Ethernet, ARP, IPv4, ICMP, UDP, and TCP, were implemented. The analysis of code readability and performance on two network stacks would be made and the conclusion of Go is a viable alternative to C in kernel development would be demonstrated.

相似文献/References:

[1]贾晓冬 孙静波 郑山红.基于Multi—Agent建筑工程概预算系统的设计[J].计算机技术与发展,2010,(04):132.
 JIA Xiao-dong,SUN Jing-bo,ZHENG Shan-hong.Design of a Multi - Agent - Based Construction Project Budget System[J].,2010,(06):132.
[2]田振 蒋新华 陈兴武.一种Linux实时化技术的研究[J].计算机技术与发展,2009,(04):28.
 TIAN Zhen,JIANG Xin-hua,CHEN Xing-wu.Research of a Real - Time Technology with Linux[J].,2009,(06):28.
[3]左黎明.Windows内核恶意代码分析与检测技术研究[J].计算机技术与发展,2008,(09):145.
 ZUO Li-ming.Research of Analysis and Detection of Malicious Code in Windows Kernel[J].,2008,(06):145.
[4]陈海军 申卫昌 史颖.嵌入式系统引导程序详探[J].计算机技术与发展,2006,(01):123.
 CHEN Hai-jun,SHEN Wei-chang,SHI Ying.Research of Boot Program in Embedded System[J].,2006,(06):123.
[5]杨嘉 王移芝.Linux内核调度器算法研究与性能分析[J].计算机技术与发展,2006,(03):95.
 YANG Jia,WANG Yi-zhi.Research and Analysis of Linux Scheduler's Algorithm and Performance[J].,2006,(06):95.
[6]李正平 徐超 陈军宁 谭守标.Linux内核随机数产生器的设计与实现[J].计算机技术与发展,2006,(11):87.
 LI Zheng-ping,XU Chao,CHEN Jun-ning,et al.Design and Implementation of Linux Kernel Random Number Generator[J].,2006,(06):87.
[7]张登银 陈召国.Windows平台下Rootkit进程检测[J].计算机技术与发展,2011,(07):141.
 ZHANG Deng-yin,CHEN Zhao-guo.Rootkit Process Detection under Windows Platform[J].,2011,(06):141.
[8]张文晓 戴航 黄东旭.基于虚拟机的Rootkit检测系统[J].计算机技术与发展,2012,(07):128.
 ZHANG Wen-xiao,DAI Hang,HUANG Dong-xu.A New Rootkit Detection System Based on Virtual Machine[J].,2012,(06):128.
[9]苏朋程. 云计算研究虚拟化技术的研究[J].计算机技术与发展,2017,27(04):28.
 SU Peng-cheng. Investigation on Cloud Computing for Virtualization Technology[J].,2017,27(06):28.

更新日期/Last Update: 2021-06-10