内核网络堆栈的Go语言实现与分析  

An implementation and analysis of a kernel network stack in Go

在线阅读下载全文

作  者:柴艳娜[1] CHAI Yanna(Information and Network Management Office,Chang’an University,Xi’an 710064,China)

机构地区:[1]长安大学信息与网络管理处,陕西西安710064

出  处:《电子设计工程》2021年第13期34-37,42,共5页Electronic Design Engineering

摘  要:现代操作系统的内核均由诸如C等低级语言进行开发,虽然C语言的底层操作能力对内核很有帮助,但是也因此带来许多缺陷和漏洞。用高级语言开发的内核可以规避很多潜在风险,但是可能付出的代价是性能的降低。文中用Go语言实现内核的网络堆栈子系统,与用C语言开发的子系统进行对比,设计实验场景测试其各种性能参数,用以评估用高级语言开发内核的优势和缺点,从而得出使用高级语言开发内核模块是切实可行的。该文主要实现的网络协议包括Ethernet、ARP、IPv4、ICMP、UDP和TCP。The kernels of modern operating systems are implemented by lower-level language such as C.Although the low-level functionalities of C are helpful within 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.

关 键 词:内核 网络堆栈 TCP/IP协议栈 Go语言 LINUX 

分 类 号:TP309[自动化与计算机技术—计算机系统结构]

 

参考文献:

正在载入数据...

 

二级参考文献:

正在载入数据...

 

耦合文献:

正在载入数据...

 

引证文献:

正在载入数据...

 

二级引证文献:

正在载入数据...

 

同被引文献:

正在载入数据...

 

相关期刊文献:

正在载入数据...

相关的主题
相关的作者对象
相关的机构对象