| More than 20 years have passed since the first Personal Computer (PC) was born. However, BIOS (basic input and output system) is still applied in a large scale, which mainly works at controlling the hardware platform to find the boot device and image before OS (operation system). Since the architecture of BIOS is too old to adapt with the speed of PC hardware developing, it brings a big challenge to the whole PC hardware industry. Under this background, EFI (extensible firmware interface) specification is put forword to address this problem. In contrast with BIOS, EFI components are designed based on modules and could be written with C, which enables good extensibility. EFI largely facilitates the whole PC Industry's innovation.At present, EFI has been applied in high end servers and PCs and got populality. Based on EFI, users could use inernet under preboot environment to diagnose problems, download OS image, or boot from network. All these popular applications need to be supported by EFI network stack.This assertation states the research and implementation of TCP/IP network stack under EFI's project framework Tiano. While the requirements of TCP/IP network stack have been defined in RFC documents, the details in design and implementation are determined by its concret running environment.This assertation firstly introduces the main concepts and procedures in EFI specification and its implementation framework Tiano. Then it discusses the differences between EFI and Linux and what these differences bring to network stack: eg, single task executing stack, no peripheral device interruption, and flat management of memory under real mode. All these elements challenge the design and performance of TCP/IP network stack a lot. Next, it lists the design and implementation of EFI TCP/IP network stack, and solutions are given according to those special problems mentioned above. At the last, performance-test datas are given as a result.With the popularizing of EFI, this assertation may be a help to EFI components'developing. |