[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT/RUBY PATCH v3 6/6] README.md: Update with info about building and running



Thank you for all the changes, Costin!

Reviewed-by: Stefan Teodorescu <stefanl.teodorescu@xxxxxxxxx>

On Mon, Dec 16, 2019 at 3:48 PM Costin Lupu <costin.lupu@xxxxxxxxx> wrote:
>
> Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
> ---
>  README.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++----
>  1 file changed, 67 insertions(+), 4 deletions(-)
>
> diff --git a/README.md b/README.md
> index 7a8d380..d0ccfed 100644
> --- a/README.md
> +++ b/README.md
> @@ -1,9 +1,72 @@
> -Ruby for Unikraft
> -=============================
> -
> +# Ruby for Unikraft
>  This is the port of Ruby for Unikraft as external library.
>
> -TODO
> +## Build
> +Ruby depends on the following libraries, that need to be added to `Makefile` 
> in
> +this order:
> +
> +* `pthreads`, e.g. `pthread-embedded`
> +* C++ libraries: `compiler-rt`, `libcxx`, `libcxxabi`, `libunwind`
> +* `libc`, e.g. `newlib`
> +* network stack, e.g. `lwip`
> +* optional extensions: `openssl`, `zlib`.
> +
> +A mandatory build dependency is the Ruby interpreter itself, because it is
> +needed to properly configure the original sources.  If you want to build the
> +extensions as well, then you will also need to have them installed on your
> +build system (e.g. `openssl`, `zlib`).
> +
> +## Root filesystem
> +### Creating the filesystem
> +Ruby interpreter needs a filesystem which should contain its libraries.
> +Therefore, the filesystem needs to be created before running the VM.  You can
> +do this by running the following command:
> +
> +```bash
> +make ruby-rootfs path=<some directory>
> +```
> +
> +It will create the filesystem in the directory you choose where it will 
> install
> +the Ruby libraries. In order to achieve this, the original code needs to be
> +configured and build with paths relative to the provided root directory. 
> These
> +two steps are executed transparently, all you have to do is just running the
> +above `make` command.
> +
> +### Using the filesystem
> +The same steps presented in the same subsection of the Python 3 port README
> +should be followed.
> +
> +## Running modes
> +The next step is to pick a running mode. We currently support the following
> +running modes:
> +
> +1. **Ruby script**. You can use any file available in the root filesystem.  
> You
> +should use Qemu's `-append` option to pass parameter to Python interpreter,
> +e.g. `-append "vfs.rootdev=test -- <some file in rootfs>"`.  Please notice 
> that
> +we are using `test` for the 9pfs mounting tag. For brevity we will skip 
> setting
> +the mounting tag in the next examples.
> +
> +2. **Ruby shell**. You can run the interactive Ruby shell, which is just a 
> Ruby
> +script, with the parameters: `-append "-- /bin/irb"`.
> +
> +3. **Command line**. You can provide a one line script using the `-e` option,
> +e,g. `-append "-- -e 'puts \"Hello World\"'"`.
> +
> +4. **Ruby unit testing (developers only)**. With this mode you can check what
> +functionality is completely supported by the Ruby port. Please be aware that
> +this mode is unstable and some of the tests may block. In order to run all 
> the
> +unit tests you should use the following parameters: `-append "-- 
> /lib/ruby/2.6.0/test/runner.rb --exclude=dtrace --exclude=mkmf 
> --exclude=win32ole --exclude=rdoc"`.
> +
> +We also provide a configuration option for building `miniruby`, a 
> minimalistic
> +version of the Ruby interpreter build in the same way as for Linux. 
> `miniruby`
> +does not have any extension or encoding, therefore its usage is limited. You
> +can either use it for running simple scripts or simple one liners.
> +
> +### Memory usage
> +Some of the unit tests may require a lot of memory to run; for this
> +reason please allow for at least 1G of memory for unit testing (e.g.,
> +`-m 1G` in Qemu).
>
> +## Further information
>  Please refer to the `README.md` as well as the documentation in the `doc/`
>  subdirectory of the main unikraft repository.
> --
> 2.20.1
>

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.