Skip to content
This repository has been archived by the owner on Nov 28, 2018. It is now read-only.

ReturnInfinity/BareMetal-lwIP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lwIP on BareMetal

A lightweight TCP/IP stack running on an ultra-lightweight kernel

This is a quick and simple proof of concept web server running on top of the lightweight TCP/IP stack lwIP, which in turn is running on top of BareMetal. The BareMetal binary is a mere 16,384 bytes and the web server application is appoximately 170,000 bytes.

BareMetal is a new Exokernel for 64-bit x86-based systems. The kernel, as well as its various device drivers, are written entirely in Assembly for optimal speed, simplicity, and manageability of the code. BareMetal provides raw access to the underlying hardware in order to allow for maximum performance. Applications can be specifically tailored to focus on where performance is needed the most.

More information about BareMetal can be found on the BareMetal homepage at Return Infinity. The source code is available for viewing on GitHub.

lwIP is an open source implementation of the TCP/IP protocol suite that was originally written by Adam Dunkels of the Swedish Institute of Computer Science but now is being actively improved upon by a team of developers throughout the world.

More information about lwIP can be found at the lwIP homepage.

Building the web server

git clone https://github.com/ReturnInfinity/BareMetal-lwIP.git
cd BareMetal-lwIP
make

The resulting httpd.app binary can be added to the BareMetal OS disk iamge.

Running the web server

httpd.app takes 3 arguments - IP address, subnet, and gateway.

> httpd.app 10.0.0.100 255.255.255.0 10.0.0.1

Without arguments the app will use the following:

  • IP: 192.168.242.2
  • SN: 255.255.255.0
  • GW: 192.168.242.1

Changing the web content

The web page content is in httpd_raw/fs/ so make all changes there.

cd httpd_raw
perl makefsdata/makefsdata -s
cd ..
make

About

A quick port of lwIP running on top of BareMetal.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published