Skip to content

Commit a98e063

Browse files
committed
Merge branch 'dev' of github.com:hioa-cs/IncludeOS
2 parents b90689c + 6f8b484 commit a98e063

1 file changed

Lines changed: 12 additions & 13 deletions

File tree

README.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,20 @@ We're working towards automating everything with our Jenkins CI server. The test
2626
* **Extreme memory footprint**: A minimal bootable image, including bootloader, operating system components and a complete C++ standard library is currently 693K when optimized for size.
2727
* **KVM and VirtualBox support** with full virtualization, using [x86 hardware virtualization](https://en.wikipedia.org/wiki/X86_virtualization) whenever available (it is on most modern x86 CPU's). In principle IncludeOS should run on any x86 hardware platform, even on a physical x86 computer, given appropriate drivers. Officially, we develop for- and test on [Linux KVM](http://www.linux-kvm.org/page/Main_Page), which power the [OpenStack IaaS cloud](https://www.openstack.org/), and [VirtualBox](https://www.virtualbox.org), which means that you can run your IncludeOS service on both Linux, Microsoft Windows and Apple OS X.
2828
* **C++11/14 support**
29-
* Full C++11/14 language support with [clang](http://clang.llvm.org) v3.6 and later.
30-
* Standard C++ library** (STL) [libc++](http://libcxx.llvm.org) from [LLVM](http://llvm.org/)
29+
* Full C++11/14 language support with [clang](http://clang.llvm.org) v3.8 and later.
30+
* Standard C++ library (STL) [libc++](http://libcxx.llvm.org) from [LLVM](http://llvm.org/)
3131
* Exceptions and stack unwinding (currently using [libgcc](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html))
3232
* *Note:* Certain language features, such as threads and filestreams are currently missing backend support.
3333
* **Standard C library** using [newlib](https://sourceware.org/newlib/) from [Red Hat](http://www.redhat.com/)
3434
* **Virtio Network driver** with DMA. [Virtio](https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio) provides a highly efficient and widely supported I/O virtualization. Like most implementations IncludeOS currently uses "legacy mode", but we're working towards the new [Virtio 1.0 OASIS standard](http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.html)
3535
* **A highly modular TCP/IP-stack** written from scratch, still under heavy development.
36-
* TCP: Just enough to serve HTTP
37-
* UDP: Enough to support a high performance DNS service
38-
* DHCP: Basic support, tested on VirtualBox and KVM
39-
* ICMP: Enough to answer ping, no control messages yet
36+
* TCP: Not all the RFC's are impelemented yet, but it's stable and usable, including congestion control and common opitons.
37+
* UDP: More or less complete, enough to support a high performance DNS service
38+
* DHCP: Basic support, tested on VirtualBox, KVM and OpenStack
39+
* ICMP: Enough to answer ping, no integration with the rest of the stack yet.
4040
* ARP
4141
* Ethernet
42-
* IPv6 support under active development
42+
* IPv6 support under development
4343

4444
A longer list of features and limitations is on the [wiki feature list](https://github.com/hioa-cs/IncludeOS/wiki/Features)
4545

@@ -70,14 +70,13 @@ You can now log in to the vagrant build environment and build and run a test ser
7070
$ ./test.sh
7171
```
7272

73-
7473
## Prerequisites for building IncludeOS VM's
75-
* **Ubuntu 14.04 LTS x86_64**, Vanilla, either on a physical or virtual machine (A virtualbox VM works fine)
74+
* **Ubuntu 16.04 or 14.04 LTS, x86_64**, either on a physical or virtual machine (A virtualbox VM works fine)
7675
* For the full source build, you'll need at least 1024 MB memory
77-
* In order to support VGA graphics inside a VM, we recommend a lightweight GUI, such as [lubuntu](http://lubuntu.net/blog/lubuntu-1404-trusty-tahr-released) which runs great inside a virtual machine.
76+
* In order to support VGA graphics inside a VM, we recommend a lightweight GUI, such as [lubuntu](https://help.ubuntu.com/community/Lubuntu/GetLubuntu) which runs great inside a virtual machine.
7877
* *NOTE:* Graphics is by no means necessary, as all IncludeOS output by default will be routed to the serial port, and in Qemu,
7978
* The install scripts may very well work on other flavours on Linux, but we haven't tried. Please let us know if you do.
80-
* **Building on a Mac:** we have done a successful build from bundle, directly on a Mac. It's a work in progress, but see [./etc/install_osx.sh](./etc/install_osx.sh) for details.
79+
* **Building on a Mac:** you can build IncludeOS (from bundle only) directly on a Mac by running [./etc/install_osx.sh](./etc/install_osx.sh).
8180
* You'll need `git` to clone from github.
8281

8382
Once you have a system with the prereqs (virtual or not), you can choose a full build from source, or a fast build from binaries:
@@ -89,7 +88,7 @@ Once you have a system with the prereqs (virtual or not), you can choose a full
8988
$ ./etc/install_from_bundle.sh
9089

9190
**The script will:**
92-
* Install the required dependencies: `curl make clang-3.6 nasm bridge-utils qemu`
91+
* Install the required dependencies: `curl make clang-3.8 nasm bridge-utils qemu`
9392
* Download the latest binary release bundle from github, using the github API.
9493
* Unzip the bundle to `$INCLUDEOS_INSTALL_LOC` - which you can set in advance, or which defaults to `$HOME`
9594
* Create a network bridge called `include0`, for tap-networking
@@ -107,7 +106,7 @@ About a minute or two (On a 4-core virtualbox Ubuntu VM, runing on a 2015 MacBoo
107106

108107
**The script will:**
109108
* Install all the tools required for building IncludeOS, and all libraries it depends on:
110-
* `build-essential make nasm texinfo clang-3.6 cmake ninja-build subversion zlib1g-dev libtinfo-dev`
109+
* `build-essential make nasm texinfo clang-3.8 cmake ninja-build subversion zlib1g-dev libtinfo-dev`
111110
* Build a GCC cross compiler along the lines of the [osdev howto](http://wiki.osdev.org/GCC_Cross-Compiler) which we really only need to build `libgcc` and `newlib`.
112111
* Build [Redhat's newlib](https://sourceware.org/newlib/) using the cross compiler, and install it according to `./etc/build_newlib.sh`. The script will also install it to the mentioned location.
113112
* Build a 32-bit version of [LLVM's libc++](http://libcxx.llvm.org/) tailored for IncludeOS.

0 commit comments

Comments
 (0)