| Along with the rapid development of Internet, embedded system has gradually become the focus of today’s information technology industry as the coming of the post-pc era. The embedded system has get a rapid development benefit from the broad market prospect and the market segment of computer system. Unlike early single-chip computer system, embedded system not only has its own independent operating system and application software, but also has the special function such as information management and network communication. With the rapid growth of network bandwidth and data traffic, people’s demand for all kinds of computer system to get rapid access to high-speed network is becoming more and more urgent.The Linux operating system has many prominent advantages, such as its open source code, customizable kernel, powerful network management. The embedded system can takes full advantages of both the Linux operating system and the customization platform. Linux device driver is an important part of Linux operating system. The purpose of this project is to design a Network Interface Controller(NIC) driver for home multimedia gateway controller based on embedded Linux system. This NIC driver needs to meet the conditions of high network data transmission capacity and efficiency.In this article, we first analyzes the Linux network adapter driver how to transmit the network data, and further analysis those factors which influence the performance and efficiency of network data transmission. Secondly, this article analyzes the design of Linux network interface controller driver, it also analyzes the important data structure and the process of key functions. We did some contrastive analysis among the factors which affect the efficiency of data transmission of Linux network interface controller driver based on the previous analysis. Finally, we find an optimization scheme to improve the performance and efficiency of the Linux network interface controller driver for the particular platform we used. This optimization scheme mainly includes descriptors mechanism, pre-allocated accept message buffer and NAPI technology, etc. Based on the analysis and basic technical principle above, this paper establish related model to show the Linux network interface controller driver how to transfer the network data. It selected the calculation method of key parameters in the optimization scheme. The optimization scheme we create is implemented in the end on the base of basic technical principle above. We carried out a lot of testing to verify the feasibility and validity of our scheme. After a series of experiments, the optimization scheme for the specific platform we use prove viable based on a good deal of experimental data. Compared with the normal driver, the new Linux network interface controller driver can improve the performance and efficiency of network data transmission. |