Middleware solutions for network interface cards in bare machine computing

Author/Creator ORCID

Date

2019-04-04

Department

Towson University. Department of Computer and Information Sciences

Program

Citation of Original Publication

Rights

There are no restrictions on access to this document. An internet release form signed by the author to display this document online is on file with Towson University Special Collections and Archives. Copyright protected, all rights reserved.

Subjects

Abstract

Bare machine computing (BMC) applications, which run without the support of an operating system (OS) or kernel, are based on the BMC paradigm and programming methodology. The necessary hardware interfaces and network interface card drivers are integrated with the BMC application. This dissertation deals with the design of novel OS-independent device drivers for Ethernet network interface controllers/cards (NICs) used with BMC applications. We first develop OS-independent middleware that allows different Ethernet NIC drivers to be used with BMC applications. Although network interface cards evolve over time with new models and enhanced functionality, it is observed that one could homogenize the design of network interface cards and develop a generic architecture for NICs. We then implement Ethernet bonding on a BMC Web server using device drivers for dual NICs, where both NICs can send packets but only one NIC can receive them. We finally implement Ethernet device drivers for a BMC Web server that can migrate with minimal changes for evolving IBM compatible PCs with Intel NICs. The BMC NIC driver is compared with OS-based drivers to identify design differences and tradeoffs in NIC driver complexity versus their functionality. Currently, device drivers vary depending on platform, vendor and CPU architecture. Our work shows how to implement Ethernet device drivers that are independent of any platform, and a simple API for applications, where applications directly communicate to its underlying hardware. It provides an in-depth understanding of BMC Ethernet device drivers and serves as a foundation to construct BMC and OS-based device drivers that can be made upward compatible with minimal changes.