Getting and Building EROS
The EROS project has switched over to the OpenCM configuration management system. The following instructions have been updated to tell you how to use OpenCM to download the EROS system.
1. Obtaining EROS
To download a copy of EROS, you need access to the OpenCM repository on eros-os.org. The first thing to do is to download OpenCM from the OpenCM website and install it on your machine. Be aware that OpenCM is still a ``work in progress.'' We haven't seen serious bugs in it in quite a while, but we still anticipate one or two backwards-incompatible updates in the wire protocol. The good news is that the OpenCM binary is smart enough to tell you when this has occurred.
Unless you are an active EROS developer, you will need a copy of the anonymous access keys for our repository. These can be downloaded from eros-anon.key and eros-anon.pem. The files eros-anon.pem and eros-anon.key should be stored in $HOME/.opencm/users/. The anonymous access keys require no pass phrases.
Once you have OpenCM installed and the keys copied, you can check out the EROS code. We recommend that you use a common containing directory for all of this. I (shap) personally use ~/WORK/ as my common working directory for source code projects.
cd ~/WORK export OPENCM_REPOSITORY=opencm://www.eros-os.org cm -u eros-anon -C eros-xenv checkout PUBLIC/EROS/DEV/eros-xenv cm -u eros-anon -C eros checkout PUBLIC/EROS/DEV/eros cm -u eros-anon -C eros/src/tutorials checkout PUBLIC/EROS/DEV/tutorials
The ``-C'' is important! Without it files will get checked out into your current directory. Unlike CVS, OpenCM keeps its metadata above your working tree - there is generally no per-directory information. We are planning to make checkout more convenient by introducing a notion of OpenCM ``packages,'' but that hasn't happened yet.
2. Building EROS
2.1. Building the Cross Compilation Tools
Now cd into WORK/eros-xenv, and type make. Follow the instructions you are given.
If you have a number of people at your site who are all building EROS, you may wish to place the cross compilers in a commonly shared directory. This can be done by setting the environment variable EROS_XENV to the directory name before building the cross compilers. In our environment, we set EROS_XENV to /user/eros-xenv, because /user is cross mounted by all of the lab machines. If you do not override it, the default value for EROS_XENV will be $HOME/eros-xenv.
Once the make command has completed, you are done with the cross compiler source code, and you can delete the eros-xenv-src directory. Note that if there are changes to the cross environment you will likely need to refetch the whole thing anyway, so there is no point to retaining these files unless you are installing on multiple machines.
Whenever you rebuild the cross-environment, it is very important to build it from scratch with the correct file timestamps. The correct sequence of commands to rebuild the cross environment is:
cd WORK/eros-xenv make clean # Fetch any updates: cm update # Fix the timestamps with: cm revert # Delete the install directory (VERY important). # This might possibly live in some other place # depending on how you built it. rm -rf $HOME/eros-xenv # Finally, remake the cross environment: make xenv
You need to delete the output directory because various stages of the build use previous stages by adding the output directory to the PATH used in later phases. Unfortunately, a 'gcc' command is installed in the output directory, which can lead to various kinds of confusion.
Now that you have the cross environment compiled, you can rebuild the EROS sources by
cd ~/WORK/eros/src make install
2.3. Keeping Up To Date
Once you have it, the EROS tree can be updated by changing to the eros/src directory and typing:
This is presently broken, but will be repaired soon.
Once make update becomes old hat, you may find that you prefer
3. Run-Time Requirements
In order to run this puppy, you'll need the following:
3.1 Disk Space
The research release can run in as little as 20 Mbytes. Doing anything interesting with it will certainly require more. At the moment we are suggesting a 100 Mbyte partition if you just want to fiddle with it, or a 250 Mbyte partition if you have something more serious in mind.
If you feel like planning ahead, use your handy fdisk equivalent to create a partition, and give it type 0x95.To boot from the hard disk, the EROS partition must fall within the bootable range of your machine. It is also possible (even straightforward) to boot EROS from a floppy, which allows non-bootable partitions to be used. The kernel theoretically groks extended partitions, but we have never tested this.
The research release will support the following hardware (all trademarks belong to their respective owners):
EROS does not yet have a self-hosted development environment. We are actively working on bringing up a POSIX-compatible environment, but do not expect that this will make it into the first release. The irony is that we may get Java development support in first (!).
The EROS group currently cross-develops from LINUX. We run RedHat 7.0 (cutting over to 7.1 shortly), but any ELF-based LINUX system should do. Building the EROS system requires G++ 2.7.2 or later. Because EGCS has broken for years, we use cross compilers rather than reusing the native Linux compiler.