From: WALDEMAR KOZACZUK <jwkozac...@gmail.com>
Committer: GitHub <nore...@github.com>
Branch: master
Revised main README.md
---
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -4,8 +4,16 @@ OSv Applications
Introduction
------------
-This repository contains the necessary glue to compile a bunch of
-applications for OSv.
+OSv has been designed to implement subset of Linux ABI to allow running
single Linux application.
+However in its earlier days OSv could not run Linux binaries "as is" due
to some limitations in its
+dynamic linker, kernel memory placement and other bugs. Fairly recently
most of these problems
+have been addressed and now it is possible to run many **completely
unmodified Linux binaries** like
+Java, Node.JS, Python 2 and 3, iperf 3, etc.
+
+This repository contains the necessary glue to build many applications for
OSv.
+Most of the C apps get built as a shared library, but given what is
written in the paragraph above,
+these days it should be possible in most cases to run the same Linux
application
+from host **as is** unless some patch is necessary.
Each of the subdirectories here does NOT contain the original application
code. This makes this repository very small, and free of license issues.
@@ -15,28 +23,33 @@ a Makefile to compile it for OSv (if compilation is
required), and a
manifest of which files from the application should be copied into the
OSv image.
+Please note that some of the apps contain ```Capstanfile``` which means
that the app
+can alse be built using
[capstan](https://github.com/cloudius-systems/capstan#capstan).
+
How to use
----------
-Each one of the subdirectories in this repository is an application.
-To add one, say, "cassandra", to your OSv image, all you need to do
-is to
- cd cassandra
- ./GET
-
-and then add to the modules list in the "config.json" file the following
-specification:
- {
- "name": "cassandra",
- "type": "dir",
- "path": "/home/nyh/osv-apps/cassandra"
- },
-
-(with the path set to where you put the osv-apps directory).
-
-Then run "make clean; make" of OSv, and you're done - you have an
-image with Cassandra on it! check out osv-apps/cassandra/start-cassandra
-for an example command to run a guest with cassandra.
-
-You can, of course, add multiple applications to config.json, and get
-an image which includes multiple applications.
+Each one of the subdirectories in this repository is an application or
a "runtime" (JRE, Python or Node runtime).
+In order to build any of the apps, one would clone full OSv repo that
links this repo automatically as
+its child under ```/apps``` subfolder. Please see the [main OSv
page](https://github.com/cloudius-systems/osv#building) for details on how
to setup OSv development environment.
+
+The simplest app is the ```native-example``` and it can be built and run
on OSv like so:
+```bash
+# In the main OSv directory, run this to build the image:
+./scripts/build image=native-example # This compiles OSv kernel and
native-example app
+# and fuses all into an image located at ./buid/release/usr.img
+#
+# Run this to run the image
+./scripts/run.py # This always runs the latest built image
+```
+
+If you want to build and run any JVM app (Java, Scala, Kotlin, Clojure),
you would do something similar:
+```bash
+./scripts/build image=openjdk8-zulu-full,java-example # Please
run ./scripts/build --help for more information
+./scripts/run.py
+```
+Please note that ```openjdk8-zulu-full``` can be replaced with any
other "Java runtime" app from this repo (see other openjdk* apps). It may
seem that we are building two apps to run on OSv, but in reality the files
from both ```openjdk8-zulu-full``` (JRE binaries) and ```java-example```
(Java ```*.class``` files) are overlaid on top of each other to fuse single
image just like with Docker images.
+
+Linux applications from host
+----------
+Please note the apps whose name ends with ```-from-host```, are the latest
addition to demo creating images out of native Linux images from host.
--
You received this message because you are subscribed to the Google Groups "OSv
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to osv-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/osv-dev/000000000000e557fd058f294f47%40google.com.