You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12-13Lines changed: 12 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,20 +26,20 @@ We're working towards automating everything with our Jenkins CI server. The test
26
26
***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.
27
27
***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.
28
28
***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/)
31
31
* Exceptions and stack unwinding (currently using [libgcc](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html))
32
32
**Note:* Certain language features, such as threads and filestreams are currently missing backend support.
33
33
***Standard C library** using [newlib](https://sourceware.org/newlib/) from [Red Hat](http://www.redhat.com/)
34
34
***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)
35
35
***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 VirtualBoxand 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.
40
40
* ARP
41
41
* Ethernet
42
-
* IPv6 support under active development
42
+
* IPv6 support under development
43
43
44
44
A longer list of features and limitations is on the [wiki feature list](https://github.com/hioa-cs/IncludeOS/wiki/Features)
45
45
@@ -70,14 +70,13 @@ You can now log in to the vagrant build environment and build and run a test ser
70
70
$ ./test.sh
71
71
```
72
72
73
-
74
73
## 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)
76
75
* 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.
78
77
**NOTE:* Graphics is by no means necessary, as all IncludeOS output by default will be routed to the serial port, and in Qemu,
79
78
* 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).
81
80
* You'll need `git` to clone from github.
82
81
83
82
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
89
88
$ ./etc/install_from_bundle.sh
90
89
91
90
**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`
93
92
* Download the latest binary release bundle from github, using the github API.
94
93
* Unzip the bundle to `$INCLUDEOS_INSTALL_LOC` - which you can set in advance, or which defaults to `$HOME`
95
94
* 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
107
106
108
107
**The script will:**
109
108
* 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`
111
110
* 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`.
112
111
* 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.
113
112
* Build a 32-bit version of [LLVM's libc++](http://libcxx.llvm.org/) tailored for IncludeOS.
0 commit comments