/uDOS

An operating system for ESA 390 and z/Arch.

Primary LanguageCThe UnlicenseUnlicense

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
__/\\\________/\\\__/\\\\\\\\\\\\__________/\\\\\__________/\\\\\\\\\\\___      
 _\/\\\_______\/\\\_\/\\\////////\\\______/\\\///\\\______/\\\/////////\\\_     
  _\/\\\_______\/\\\_\/\\\______\//\\\___/\\\/__\///\\\___\//\\\______\///__    
   _\/\\\_______\/\\\_\/\\\_______\/\\\__/\\\______\//\\\___\////\\\_________   
    _\/\\\_______\/\\\_\/\\\_______\/\\\_\/\\\_______\/\\\______\////\\\______  
     _\/\\\_______\/\\\_\/\\\_______\/\\\_\//\\\______/\\\__________\////\\\___ 
      _\//\\\______/\\\__\/\\\_______/\\\___\///\\\__/\\\_____/\\\______\//\\\__
       __\///\\\\\\\\\/___\/\\\\\\\\\\\\/______\///\\\\\/_____\///\\\\\\\\\\\/__
        ____\/////////_____\////////////__________\/////_________\///////////___
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
A mainframe OS... probably
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
uDOS which stands for Unified Data Operation System. A system whose primary goal
is to provide an opensource system for documenting S390X architectures - in
order to promote hobby operating systems on this obscure archtiecture.

A list of goals is provided below:
- Monolhitic modular kernel
- JCL interpreter out-of-box; integrated tightly with the system
- Integration with graphical windows management systems
- NetKernel-only operation (no graphical user interface and pure networking)
- POSIX ports
- UDI integration with the kernel
- RAM and CPU hot(un)plugging on the run

    *---*   *----------------*      *---------------*
    |IPL|---|      Kernel    |      | The mainframe |
    *---*   |                |      |---------------|
            *----------------*      | z/Arch / S/390|
                    |               | z11   /  S/380|
                    |               | z13  /   S/370|
                    |---------------| z15 /    S/360|
                    |               *---------------*
                    |                       |
                    |                   *-----------*
            *-------------------*       | Devices   |
            | Device drivers    |-------|           |
            |                   |       *-----------*
            *-------------------*
Figure 1.1: I just wanted to make a graph like this.

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Building
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
The following pre-requisites are required in order to properly build uDOS:

hercules-390:
    Emulate a complete z/Architecture system (optional)
    http://www.hercules-390.org/hercules-3.07-w64.msi



Building uDOS requires first, setting up autoconf:
autoreconf
automake --add-missing

Then configuring it:
./configure --target=$TARGET$ --host=$TARGET$

Where $TARGET$ is your cross compiler, note that it should be in PATH, commonly
the cross compiler would be s390x-ibm-linux. But it might be different depending
how you got it.

Finally, run make as one normally would:
make

To run the system and try the new disk use the shell script "make_dasd.sh"

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Naming Conventions
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
UDOS is always capitalized. Except in the "stylized" form in which it is
presented as "uDOS" instead of the aforementioned "UDOS". The lowercase 'u' does
not denote the sign for "pico/nano".
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Conclusion
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Really not much to say. COBOL #1 by the way.