论文部分内容阅读
随着UEFI(Unified Extensible Firmware Interface)的发展,在计算机进入操作系统之前,可以做的工作越来越多。这其中尤以安全性的增强以及网络功能的完善为甚,它们已经成为了UEFI中关注与研究应用的热点。但是,符合UEFI规范的网络协议栈的实现却与非UEFI的网络协议栈存在非常大的差别,这在很大程度上阻碍了UEFI中网络功能的发展。为了让更多的工程师能够加入UEFI网络应用程序的开发过程中来,本文在UEFI网络协议栈的基础之上,设计实现了一个抽象层。通过抽象层的转换,可以使得一般符合BSD socket的程序通过编译,运行在UEFI环境下。第一章对UEFI BIOS目前国内外概况和发展趋势进行了简要的描述,明确提出了UEFI较传统BIOS的优缺点。接着,对UEFI内整体框架和启动过程中阶段的划分进行了较为深入的分析。在此基础上,对本论文研究内容的选题、研究意义、先进性进行了论述。第二章首先介绍了UEFI中最常用的驱动模型,随后较为详细的介绍了UEFI环境下的网络协议栈的分层模型以及实现这个协议栈所用到的一些重要机制。最后,通过较为简单的MNP层的工作流程,介绍了UEFI中协议栈工作的过程,包括一些函数的调用。这些知识为后面的网络层到BSD Socket抽象做了铺垫。第三章在对BSD socket协议栈进行介绍的基础上,与UEFI协议栈进行了比较,并在章节最后提出了抽象层的设计模型。第四章具体介绍了抽象层的设计模型以及具体实现较为细节的内容。以Socket、Bind、和Sendto函数为例,显示了抽象函数的具体工作流程。第五章主要介绍了开发环境以及在NT32平台上对一个Ping命令抽象后的可执行性进行了验证。第六章对全文的工作做了总结与展望。