Drivers have a special status among the developer community that sees them as mysterious and inaccessible. We think their extensive communication with the hardware and their need of high performance are the cause of this bad reputation. According to a widely held view, these two requirements cannot be met using high level languages. However high level languages' compilers and runtimes made great progress these past years to enhance the performance of programs. The use of these languages can also reduce by a significant amount the number of bugs and security issues introduced by the programmers by taking care of some error-prone parts like memory allocation and accesses. We also think that using high level languages can help to demystify the drivers' development. With this project, we try to develop a driver for a network card, the Intel 82599, in C\#. Our goal is to find out the feasibility of such a development and the performance of such a driver. We will also be able to tell what could be missing today in C\# to write a driver. We base our driver on the model proposed by Pirelli (2020) and its implementation in C.
翻译:司机在开发者社区中具有特殊地位,他们认为开发者认为自己是神秘的和无法进入的。 我们认为,他们与硬件的广泛沟通以及他们高性能的需要是造成这种不良声誉的原因。 根据广泛的看法,这两种要求都无法用高水平语言满足。尽管高水平语言的编制者和运行时间在过去几年里在提高程序绩效方面取得了很大进展。使用这些语言也可以通过处理记忆分配和存取等易出错误的部分来大量减少程序员带来的错误和安全问题的数量。我们还认为,使用高水平语言可以帮助解开驾驶员发展的神秘性。根据这个项目,我们试图为网络卡开发一个驱动器,即C ⁇ 的Intel 82599。我们的目标是找出这种开发的可行性和这种驱动器的性能。我们还能够告诉程序员在C ⁇ 中可能缺少什么来写驾驶员。我们用Pirelli (2020) 提出的模型及其在C 上的应用。