Giter Club home page Giter Club logo

baremetal-lwip's Introduction

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

baremetal-lwip's People

Contributors

bszcz avatar ianseyler avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.