Update documentation for the upcoming 0.9 release.
This commit is contained in:
parent
d238518c35
commit
d14a9fff72
38
README
38
README
|
@ -1,18 +1,21 @@
|
||||||
The Sortix Operating System
|
The Sortix Operating System
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
Sortix is a small Unix-like operating system developed since 2011 with emphasis
|
Sortix is a small self-hosting Unix-like operating system developed since 2011
|
||||||
on cleaning up traditional Unix design mistakes while retaining compatibility
|
aiming to be a clean and modern POSIX implementation. There's a lot of technical
|
||||||
with third party software. Much third party software has been ported to Sortix
|
debt that needs to be paid, but it's getting better. Traditional design mistakes
|
||||||
and the system is now self-building. The Sortix kernel, standard libraries, and
|
are avoided or aggressively deprecated by updating the base system and ports as
|
||||||
most utilities were written entirely from scratch.
|
needed. The Sortix kernel, standard libraries, and most utilities were written
|
||||||
|
entirely from scratch. The system is halfway through becoming multi-user and
|
||||||
|
while security vulnerabilities are recognized as bugs, it should be considered
|
||||||
|
insecure at this time.
|
||||||
|
|
||||||
Links
|
Links
|
||||||
-----
|
-----
|
||||||
|
|
||||||
For more information, documentation and news, please visit the official website:
|
For more information, documentation and news, please visit the official website:
|
||||||
|
|
||||||
http://sortix.org/
|
https://sortix.org/
|
||||||
|
|
||||||
You can also download the newest release and cutting edge nightly builds at:
|
You can also download the newest release and cutting edge nightly builds at:
|
||||||
|
|
||||||
|
@ -26,15 +29,15 @@ System Requirements
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Sortix has low system requirements. It also works well under virtual machines
|
Sortix has low system requirements. It also works well under virtual machines
|
||||||
such as VirtualBox and Qemu - however Bochs is not officially supported:
|
such as VirtualBox and Qemu:
|
||||||
|
|
||||||
* A 32-bit x86 (with SSE) or 64-bit x86_64 CPU.
|
* A 32-bit x86 (with SSE) or 64-bit x86_64 CPU.
|
||||||
* A few dozen megabytes of RAM - or if you are using a cdrom release with ports
|
* A few dozen megabytes of RAM - or if you are using a cdrom release with ports
|
||||||
then you likely need at least twice the size of the cdrom image.
|
then you likely need at least twice the size of the cdrom image.
|
||||||
* A harddisk or cdrom drive or support for booting from USB.
|
* A harddisk or cdrom drive or support for booting from USB.
|
||||||
* A multiboot compliant bootloader if booting from harddisk.
|
* A multiboot compliant bootloader if booting from harddisk.
|
||||||
* A Parallel ATA harddisk, if you wish to access it from Sortix. SATA is not
|
* A Parallel ATA harddisk, if you wish to access it from Sortix. The AHCI driver
|
||||||
supported yet.
|
has not been merged yet.
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
@ -49,7 +52,7 @@ documentation mirror, for instance:
|
||||||
doc/
|
doc/
|
||||||
|
|
||||||
The official Sortix website:
|
The official Sortix website:
|
||||||
http://sortix.org/doc/
|
https://sortix.org/doc/
|
||||||
|
|
||||||
Building Sortix
|
Building Sortix
|
||||||
---------------
|
---------------
|
||||||
|
@ -74,7 +77,7 @@ License
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Copyright(C) Jonas 'Sortie' Termansen <sortie@maxsi.org> and contributors 2011,
|
Copyright(C) Jonas 'Sortie' Termansen <sortie@maxsi.org> and contributors 2011,
|
||||||
2012, 2013.
|
2012, 2013, 2014.
|
||||||
|
|
||||||
Sortix is distributed in the hope that it will be useful, but WITHOUT ANY
|
Sortix is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
@ -92,12 +95,13 @@ covered by the standard license for the software component they relate to.
|
||||||
|
|
||||||
Unless the license header in the source code states otherwise, the Sortix
|
Unless the license header in the source code states otherwise, the Sortix
|
||||||
kernel, the filesystem servers, the initrd tools, the utilities, the games, the
|
kernel, the filesystem servers, the initrd tools, the utilities, the games, the
|
||||||
benchmark programs, and the tix package management programs are licensed under
|
benchmark programs, regression tests, base programs, editors, shell, init, and
|
||||||
the GNU General Public License, either version 3 or (at your option) any later
|
the tix package management programs are licensed under the GNU General Public
|
||||||
|
License, either version 3 or (at youroption) any later version.
|
||||||
|
|
||||||
|
Unless the license header in the source code states otherwise, the libc library,
|
||||||
|
the libpthread library, and the libdispd library are licensed under the GNU
|
||||||
|
Lesser General Public License, either version 3 or (at your option) any later
|
||||||
version.
|
version.
|
||||||
|
|
||||||
Unless the license header in the source code states otherwise, the libc library
|
|
||||||
and the libdispd library are licensed under the GNU Lesser General Public
|
|
||||||
License, either version 3 or (at your option) any later version.
|
|
||||||
|
|
||||||
The Sortix math library (libm) is licensed as described in the libm/LEGAL file.
|
The Sortix math library (libm) is licensed as described in the libm/LEGAL file.
|
||||||
|
|
112
doc/user-guide
112
doc/user-guide
|
@ -22,11 +22,10 @@ to those of Unix systems and many common Unix commands are available.
|
||||||
Keyboard Layout
|
Keyboard Layout
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Only the US Keyboard layout remains supported at this time. Adding new layouts
|
Only the US Keyboard layout is supported at this time. The whole system uses
|
||||||
to the kernel is simple, but the system only supports ASCII text, making support
|
UTF-8 as the standard text encoding. However, the console has limited font data
|
||||||
for international keyboard layouts pointless at this time. Eventually, a program
|
at this time and it is not possible to enter many characters. A full keyboard
|
||||||
in user-space will be able to decode the keyboard scancodes, making it no longer
|
layout system has been implemented but was not merged in time for this release.
|
||||||
a kernel problem.
|
|
||||||
|
|
||||||
Changing the Video Mode
|
Changing the Video Mode
|
||||||
-----------------------
|
-----------------------
|
||||||
|
@ -94,7 +93,7 @@ This as an incomplete list of the common top level directories in Sortix.
|
||||||
* `/$cputype` - Files for $cputype.
|
* `/$cputype` - Files for $cputype.
|
||||||
* `/$cputype/bin` - Programs for $cputype.
|
* `/$cputype/bin` - Programs for $cputype.
|
||||||
* `/$cputype/lib` - Shared libaries for $cputype.
|
* `/$cputype/lib` - Shared libaries for $cputype.
|
||||||
* `/$cputype/libexec` - Shared libaries for $cputype.
|
* `/$cputype/libexec` - Non-user programs for $cputype.
|
||||||
|
|
||||||
Some of these directories not be present or empty on your installation.
|
Some of these directories not be present or empty on your installation.
|
||||||
|
|
||||||
|
@ -111,17 +110,16 @@ supported:
|
||||||
* History.
|
* History.
|
||||||
* Background tasks ('&').
|
* Background tasks ('&').
|
||||||
* Standard output redirection ('>').
|
* Standard output redirection ('>').
|
||||||
* Piping stdin from a task to stdin of another ('|').
|
* Piping stdout from a task to stdin of another ('|').
|
||||||
* Stopping the currently running task (Control-C, '^C').
|
* Stopping the currently running task (Control-C, '^C').
|
||||||
* Waiting for a task to complete and executing the next (';').
|
* Waiting for a task to complete and executing the next (';').
|
||||||
* Setting environmental variables ('FOO=bar').
|
* Setting environmental variables ('FOO=bar').
|
||||||
* Using $FOO to insert an environmental variable.
|
* Using $FOO to insert an environmental variable.
|
||||||
* Listing all environmental variable ('env').
|
* Listing all environmental variable ('env').
|
||||||
* Setting the hostname ('HOSTNAME=sortix-pc').
|
|
||||||
* Changing the current directory ('cd /home').
|
* Changing the current directory ('cd /home').
|
||||||
* Removing an environmental variable ('unset FOO').
|
* Removing an environmental variable ('unset FOO').
|
||||||
* Clearing all enviromental variables ('clearenv').
|
* Clearing all enviromental variables ('clearenv').
|
||||||
* Executing shell scripts ('sh script param1 param2').
|
* Executing shell scripts ('sh script.sh param1 param2').
|
||||||
* Escaping some special characters ('\').
|
* Escaping some special characters ('\').
|
||||||
* Comments ('#').
|
* Comments ('#').
|
||||||
* Exiting the shell ('exit') ('exit 42').
|
* Exiting the shell ('exit') ('exit 42').
|
||||||
|
@ -142,6 +140,9 @@ These features are missing from the shell:
|
||||||
* Escaping newline characters.
|
* Escaping newline characters.
|
||||||
* And much more; the shell remains hacky.
|
* And much more; the shell remains hacky.
|
||||||
|
|
||||||
|
If a better shell is installed, and the shell is non-interactive, then the sh
|
||||||
|
program will automatically run the superior shell transparently.
|
||||||
|
|
||||||
Included Programs
|
Included Programs
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
@ -217,31 +218,30 @@ known to work at some level of stability:
|
||||||
* bison
|
* bison
|
||||||
* bochs
|
* bochs
|
||||||
* bzip2
|
* bzip2
|
||||||
* cairo
|
* dash
|
||||||
* dbus
|
|
||||||
* diffutils
|
* diffutils
|
||||||
* fontconfig
|
* gawk
|
||||||
* freetype
|
|
||||||
* gcc
|
* gcc
|
||||||
* gettext
|
* gettext (GNU)
|
||||||
* git
|
* git
|
||||||
* grep
|
* grep (GNU)
|
||||||
* groff
|
* groff
|
||||||
* groff
|
* gzip (GNU)
|
||||||
* gzip
|
|
||||||
* hello (GNU)
|
* hello (GNU)
|
||||||
* libassuan
|
* libassuan
|
||||||
* libatk
|
* libatk
|
||||||
* libav
|
* libav
|
||||||
* libcairo
|
* libcairo
|
||||||
* libdaala
|
* libdaala
|
||||||
|
* libdbus
|
||||||
* libexpat
|
* libexpat
|
||||||
* libffi
|
* libffi
|
||||||
|
* libfontconfig
|
||||||
|
* libfreetype
|
||||||
* libgcrypt
|
* libgcrypt
|
||||||
* libgdk-pixbuf
|
* libgdk-pixbuf
|
||||||
* libglib
|
* libglib
|
||||||
* libGL (Mesa)
|
* libGL (Mesa)
|
||||||
* libGLU (Mesa)
|
|
||||||
* libgmp
|
* libgmp
|
||||||
* libgnutls
|
* libgnutls
|
||||||
* libgpg-error
|
* libgpg-error
|
||||||
|
@ -252,26 +252,27 @@ known to work at some level of stability:
|
||||||
* libksba
|
* libksba
|
||||||
* libmpc
|
* libmpc
|
||||||
* libmpfr
|
* libmpfr
|
||||||
|
* libnettle
|
||||||
* libogg
|
* libogg
|
||||||
* libpango
|
* libpango
|
||||||
|
* libpixman
|
||||||
* libpng
|
* libpng
|
||||||
|
* libSDL
|
||||||
|
* libssl (LibreSSL)
|
||||||
|
* libstdc++
|
||||||
* libtheora
|
* libtheora
|
||||||
* libvorbis
|
* libvorbis
|
||||||
* libwayland
|
* libwayland
|
||||||
* libxkbcommon
|
* libxkbcommon
|
||||||
* m4
|
* libz (Sortix)
|
||||||
* make
|
* m4 (GNU)
|
||||||
* nettle
|
* make (GNU)
|
||||||
* openssl
|
|
||||||
* patch (GNU)
|
* patch (GNU)
|
||||||
* pixman
|
|
||||||
* python
|
* python
|
||||||
* quake
|
* quake
|
||||||
* sdl
|
|
||||||
* sed (GNU)
|
* sed (GNU)
|
||||||
* tar (GNU)
|
* tar (GNU)
|
||||||
* xz
|
* xz
|
||||||
* zlib
|
|
||||||
* (and more)
|
* (and more)
|
||||||
|
|
||||||
More software will be ported in the future as the system matures. Your release
|
More software will be ported in the future as the system matures. Your release
|
||||||
|
@ -348,18 +349,21 @@ second extended filesystem and mounts it at an empty directory. The filesystem
|
||||||
may need to be carefully configured as not all ext2 features are currently
|
may need to be carefully configured as not all ext2 features are currently
|
||||||
supported. In particular, only the `large_file` and `filetype` features are
|
supported. In particular, only the `large_file` and `filetype` features are
|
||||||
supported. There is no support for formatting or checking filesystems yet, this
|
supported. There is no support for formatting or checking filesystems yet, this
|
||||||
will have to be done from an external system. You must take care to send the
|
will have to be done from an external system. If the device `/dev/ata0p1`
|
||||||
filesystem server a SIGTERM signal to shut down when you are unfinished,
|
contains an ext2 filesystem, then it can be mounted using:
|
||||||
otherwise the data may not have been synced to disk. This will be done
|
|
||||||
automatically if the root filesystem was mounted by the initrd. If the device
|
|
||||||
`/dev/ata0p1` contasins an ext2 filesystem, then it can be mounted using:
|
|
||||||
|
|
||||||
mkdir /fs
|
mkdir /mnt
|
||||||
extfs /dev/ata0 /fs
|
extfs /dev/ata0 /mnt
|
||||||
|
|
||||||
You can then access the filesystem at `/fs`. There is no real unmount support
|
You can then access the filesystem at `/fs`. You can unmount it safely when you
|
||||||
and if the file system server shuts down, the system may hang trying to
|
are done using it:
|
||||||
communicate with a server that isn't there.
|
|
||||||
|
unmount /mnt
|
||||||
|
|
||||||
|
This will safely shut down the filesystem process and sync to disk. Beware how
|
||||||
|
init doesn't know about your personal mount points and powering off the system
|
||||||
|
will cause all processes to be destroyed, and such mount points will not be
|
||||||
|
shut down gracefully at the moment.
|
||||||
|
|
||||||
Graphical User Interface
|
Graphical User Interface
|
||||||
------------------------
|
------------------------
|
||||||
|
@ -376,45 +380,48 @@ Unix sockets are available.
|
||||||
Building Sortix under Sortix
|
Building Sortix under Sortix
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
You can build Sortix under itself and made modifications to it. It is not yet
|
You can build Sortix under itself and make modifications to it. It is not yet
|
||||||
possible to build all the the third party software used to build itself, but you
|
possible to build all the the third party software used to build itself, but you
|
||||||
can use the system to improve it until it is possible to build third party
|
can use the system to improve it until it is possible to build third party
|
||||||
software under it.
|
software under it.
|
||||||
|
|
||||||
You need a version of Sortix that ships its own source code in `/src` and
|
You need a version of Sortix that ships its own source code in `/src` and
|
||||||
contains a copy of the GNU Compiler Collection (gcc). Additionally, you should
|
contains a copy of the GNU Compiler Collection (gcc). Additionally, you should
|
||||||
be booting from a harddisk so that the new kernel is used after a reboot,
|
be booting from a harddisk so that the new kernel is used after a reboot.
|
||||||
otherwise you will have to be satisfied with only using a new user-land.
|
Otherwise you can only update to a new user-land.
|
||||||
|
|
||||||
You can use the `colormake` program instead of regular `make` if you want
|
You can use the `colormake` program instead of regular `make` if you want
|
||||||
colored output, which eases spotting compile warnings and errors. This program
|
colored output, which eases spotting compile warnings and errors. This program
|
||||||
simply invokes the real `make` and colors its output.
|
simply invokes the real `make` and colors its output.
|
||||||
|
|
||||||
The `/src` directory contains a makefile that eases rebuilding the entire
|
The `/src` directory contains a makefile that eases rebuilding the entire system
|
||||||
system automatically. To rebuild the entire system simply run:
|
automatically. To rebuild the entire system simply run:
|
||||||
|
|
||||||
cd /src
|
cd /src
|
||||||
make
|
make
|
||||||
make install
|
chroot /src/sysroot init # to test the new user-land
|
||||||
|
make sysmerge # to update to the new user-land
|
||||||
|
|
||||||
This will recompile the entire operating system and install it into the staging
|
This will recompile the entire operating system and install it into the staging
|
||||||
area `/src/sysroot`. This is a full usable image of the root filesystem for a
|
area `/src/sysroot`. This is a full usable image of the root filesystem for a
|
||||||
Sortix installation and you can successfully execute `chroot /src/sysroot init`.
|
Sortix installation and you can chroot into it if desired.
|
||||||
The install target does a single `cp -RT /src/sysroot /` command that replaces
|
|
||||||
copies all files in `/src/sysroot` onto their root filesystem counterparts, with
|
The sysmerge target merges the image in `/src/sysroot` onto the current root
|
||||||
the exception that the precious files in /src are not replaced with their
|
filesystem without changing local files, as opposed to a make install that
|
||||||
/src/system/src counterparts (even though they usually would be equal).
|
indiscriminately overwrites everything.
|
||||||
|
|
||||||
You will be running a new version of everything upon completion, except the
|
You will be running a new version of everything upon completion, except the
|
||||||
kernel and programs were previously started will still be running the old
|
kernel and existing processes will continue to run the old programs. If the root
|
||||||
version. If the root filesystem is permanent and the computer has been
|
filesystem is permanent and the computer has been configured to boot from it,
|
||||||
configured to boot from it, then you can reboot the system by exiting the
|
then you can reboot the system by exiting the initial shell. You will then be
|
||||||
initial shell. You will then be running an entirely new system.
|
running an entirely new system.
|
||||||
|
|
||||||
|
### Building System Components ###
|
||||||
|
|
||||||
The projects that are part of the core system can be easily built and installed
|
The projects that are part of the core system can be easily built and installed
|
||||||
with the provided makefiles. They can be built with this simple sequence:
|
with the provided makefiles. They can be built with this simple sequence:
|
||||||
|
|
||||||
cd /src/<package>
|
cd /src/${package}
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
|
||||||
|
@ -461,6 +468,7 @@ large parts of user-land if you update this library.
|
||||||
The Pthread Library (libpthread) provides a threading implementation through the
|
The Pthread Library (libpthread) provides a threading implementation through the
|
||||||
standard header <pthread.h> as known from POSIX. Like the C library, you will
|
standard header <pthread.h> as known from POSIX. Like the C library, you will
|
||||||
likely want to recompile large parts of user-land if you update this library.
|
likely want to recompile large parts of user-land if you update this library.
|
||||||
|
|
||||||
### The Display Daemon ###
|
### The Display Daemon ###
|
||||||
|
|
||||||
The dispd library allows processes to communicate with the dispd server that
|
The dispd library allows processes to communicate with the dispd server that
|
||||||
|
@ -514,7 +522,7 @@ This is the Sortix shell. Currently the `sh` program is a wrapper that looks for
|
||||||
a better non-interactive shell if running a script, otherwise it invokes the
|
a better non-interactive shell if running a script, otherwise it invokes the
|
||||||
hacky `sortix-sh` program.
|
hacky `sortix-sh` program.
|
||||||
|
|
||||||
### Sortix Kernel ###
|
### Kernel ###
|
||||||
|
|
||||||
The Sortix kernel is the core of the Sortix operating system. It provides all
|
The Sortix kernel is the core of the Sortix operating system. It provides all
|
||||||
the primitives libc needs to implement a Unix-like environment.
|
the primitives libc needs to implement a Unix-like environment.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
|
|
||||||
Copyright(C) Jonas 'Sortie' Termansen 2013.
|
Copyright(C) Jonas 'Sortie' Termansen 2013, 2014.
|
||||||
|
|
||||||
This file is part of the Sortix C Library.
|
This file is part of the Sortix C Library.
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
#define BRAND_DISTRIBUTION_NAME "Sortix"
|
#define BRAND_DISTRIBUTION_NAME "Sortix"
|
||||||
|
|
||||||
/* The website of the distribution. */
|
/* The website of the distribution. */
|
||||||
#define BRAND_DISTRIBUTION_WEBSITE "http://sortix.org"
|
#define BRAND_DISTRIBUTION_WEBSITE "https://sortix.org"
|
||||||
|
|
||||||
/* The name of the operating system. */
|
/* The name of the operating system. */
|
||||||
#define BRAND_OPERATING_SYSTEM_NAME "Sortix"
|
#define BRAND_OPERATING_SYSTEM_NAME "Sortix"
|
||||||
|
|
Loading…
Reference in New Issue