From 6f8b484fef9a38826ff048f2d6c73b7a58e031b6 Mon Sep 17 00:00:00 2001 From: Alfred Bratterud Date: Sun, 22 May 2016 21:11:52 +0200 Subject: [PATCH] Update README.md --- README.md | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 0f8112efd5..eb902d694c 100644 --- a/README.md +++ b/README.md @@ -26,20 +26,20 @@ We're working towards automating everything with our Jenkins CI server. The test * **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. * **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. * **C++11/14 support** - * Full C++11/14 language support with [clang](http://clang.llvm.org) v3.6 and later. - * Standard C++ library** (STL) [libc++](http://libcxx.llvm.org) from [LLVM](http://llvm.org/) + * Full C++11/14 language support with [clang](http://clang.llvm.org) v3.8 and later. + * Standard C++ library (STL) [libc++](http://libcxx.llvm.org) from [LLVM](http://llvm.org/) * Exceptions and stack unwinding (currently using [libgcc](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html)) * *Note:* Certain language features, such as threads and filestreams are currently missing backend support. * **Standard C library** using [newlib](https://sourceware.org/newlib/) from [Red Hat](http://www.redhat.com/) * **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) * **A highly modular TCP/IP-stack** written from scratch, still under heavy development. - * TCP: Just enough to serve HTTP - * UDP: Enough to support a high performance DNS service - * DHCP: Basic support, tested on VirtualBox and KVM - * ICMP: Enough to answer ping, no control messages yet + * TCP: Not all the RFC's are impelemented yet, but it's stable and usable, including congestion control and common opitons. + * UDP: More or less complete, enough to support a high performance DNS service + * DHCP: Basic support, tested on VirtualBox, KVM and OpenStack + * ICMP: Enough to answer ping, no integration with the rest of the stack yet. * ARP * Ethernet - * IPv6 support under active development + * IPv6 support under development A longer list of features and limitations is on the [wiki feature list](https://github.com/hioa-cs/IncludeOS/wiki/Features) @@ -70,14 +70,13 @@ You can now log in to the vagrant build environment and build and run a test ser $ ./test.sh ``` - ## Prerequisites for building IncludeOS VM's - * **Ubuntu 14.04 LTS x86_64**, Vanilla, either on a physical or virtual machine (A virtualbox VM works fine) + * **Ubuntu 16.04 or 14.04 LTS, x86_64**, either on a physical or virtual machine (A virtualbox VM works fine) * For the full source build, you'll need at least 1024 MB memory - * 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. + * 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. * *NOTE:* Graphics is by no means necessary, as all IncludeOS output by default will be routed to the serial port, and in Qemu, * The install scripts may very well work on other flavours on Linux, but we haven't tried. Please let us know if you do. - * **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. + * **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). * You'll need `git` to clone from github. 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 $ ./etc/install_from_bundle.sh **The script will:** -* Install the required dependencies: `curl make clang-3.6 nasm bridge-utils qemu` +* Install the required dependencies: `curl make clang-3.8 nasm bridge-utils qemu` * Download the latest binary release bundle from github, using the github API. * Unzip the bundle to `$INCLUDEOS_INSTALL_LOC` - which you can set in advance, or which defaults to `$HOME` * 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 **The script will:** * Install all the tools required for building IncludeOS, and all libraries it depends on: - * `build-essential make nasm texinfo clang-3.6 cmake ninja-build subversion zlib1g-dev libtinfo-dev` + * `build-essential make nasm texinfo clang-3.8 cmake ninja-build subversion zlib1g-dev libtinfo-dev` * 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`. * 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. * Build a 32-bit version of [LLVM's libc++](http://libcxx.llvm.org/) tailored for IncludeOS.