Changes between Version 25 and Version 26 of FAQ


Ignore:
Timestamp:
2015-12-08T18:50:13Z (8 years ago)
Author:
Martin Decky
Comment:

improve text

Legend:

Unmodified
Added
Removed
Modified
  • FAQ

    v25 v26  
    1111=== What is SPARTAN? ===
    1212
    13 SPARTAN started as a small kernel written by Jakub Jermář for his university assignments. Later it was open-sourced and adopted as the kernel of the HelenOS operating system. Now we either call it just ''the kernel'' or ''SPARTAN''. The SPARTAN kernel gives HelenOS a very solid and well-developed base to build on. It supports multi-tasking, virtual memory and symmetric multi-processing. It also implements the HelenOS IPC, upon which HelenOS userspace services are built.
     13SPARTAN started as a small kernel written by Jakub Jermář for his university assignments. Later it was open-sourced and adopted as the kernel of the HelenOS operating system. Now we either call it just ''the kernel of HelenOS'' or ''SPARTAN''. The SPARTAN kernel gives HelenOS a very solid and well-developed base to build on. It supports multi-tasking, virtual memory and symmetric multi-processing. It also implements the HelenOS IPC, upon which HelenOS user space services are built.
    1414
    1515=== What is HelenOS used for? ===
    1616
    17 Some people fiddle with HelenOS simply as a hobby. HelenOS is also used as a platform for school assignments for the Operating Systems course at the [http://www.mff.cuni.cz/ Faculty of Mathematics and Physics], Charles University, Prague, as well as for the students' bachelor and master theses.
     17Some people fiddle with HelenOS simply as a hobby, some people use it as a device for achieving their professional goals (i.e. in operating systems research). HelenOS is also used as a platform for school assignments for the [http://d3s.mff.cuni.cz/osy Operating Systems course] at the [http://www.mff.cuni.cz/ Faculty of Mathematics and Physics], Charles University, Prague, as well as for the students' bachelor theses, master theses and team software projects.
    1818
    19 At this point we don't consider HelenOS usable for something different than development and research, but we're getting ''very'' close to the point where it will be.
     19At this point we don't consider HelenOS usable for something different than development and research, but we're getting ''very'' close to the point where it will be usable for something really ''practical''.
    2020
    2121=== What license is HelenOS released under? ===
     
    2929=== What does it do, from an end-user's perspective? ===
    3030
    31 We have a command line which allows you to manipulate files, run applications and mount file systems from disks and disk images. You can play Tetris or edit text files. HelenOS supports multi-national text throughout thanks to using UCS (i.e. Unicode). We also have networking so you can run a simple webserver on HelenOS or control HelenOS remotely over network. HelenOS can play some music for your too. We have ported some third-party development tools, among which are GCC, binutils, Python and pcc.
     31We have a command line and a simple graphical user interface which allow you to manipulate files, run applications and mount file systems from disks and disk images. You can play Tetris or edit text files. HelenOS supports multi-national text throughout thanks to using UCS (i.e. Unicode). We also have networking so you can run a simple webserver on HelenOS or control HelenOS remotely over network. HelenOS can play some music for you, too. We have ported some third-party development tools, among which are GCC, binutils, Python and pcc.
    3232
    3333=== What do you aim for with HelenOS? ===
    3434
    35 Mainly two things. One is to create a fully usable operating system (i.e. a system that could be used for at least some everyday task such as router, server, PDA or desktop). The other is to have fun.
     35Mainly two things. One is to create a fully usable operating system (i.e. a system that could be used for at least some everyday task, for example as a router, server, PDA or desktop) that would also allow us to experiment with new ideas and approaches. The other is to have fun.
    3636
    3737=== How is HelenOS development organized? ===
     
    4545=== How is HelenOS different from UNIX? ===
    4646
    47 See our [wiki:DiffFromUnix page] which describes some design differences between HelenOS and Unix-like systems.
     47See our [wiki:DiffFromUnix page] which describes some design differences between HelenOS and UNIX-like systems.
    4848
    4949=== How is HelenOS different from GNU Hurd? ===
    5050
    51 [http://hurd.gnu.org GNU Hurd] reimplements Unix in a multiserver environment on top of the Mach microkernel. As of version 0.7, the Hurd runs on single-processor ia32 systems. Porting effort to amd64 is underway. Some of the Hurd's components, such as parts of the ```etx2fs``` file server and the ```pfinet``` networking server are in fact scavenged from ancient versions of Linux, while some other components are original. The networking stack has a single-process architecture. NIC and disk drivers are also taken from Linux, but run as part of Mach in kernel mode. There are experimental versions of the Hurd with support for running Linux 2.6.x networking and disk drivers in user mode via the DDE compatibility layer. The Hurd's hardware support is rather limited. As of version 0.7, it did not support USB or sound. The Hurd is a multiuser system and a huge emphasis is put on structuring it in such a way that unprivileged users can work with the computer without needing to acquire the administrator's privileges for certain tasks (e.g. making untrusted/experimental file systems accessible in the filesystem namespace). The Hurd offers great flexibility in the dynamic configuration of the system through the translator mechanism. Users can modify behavior for a file system path by interposing their own functionality (i.e. setting a translator) that gets activated on open. There are two GNU Hurd distributions: Debian GNU/Hurd and Arch Hurd. The former includes about 80% of the Debian packages, which is still in the very much respectable order of tens of thousands of packages.
     51[http://hurd.gnu.org GNU Hurd] reimplements UNIX in a multiserver environment on top of the Mach microkernel. As of version 0.7, the Hurd runs on single-processor ia32 systems. Porting effort to amd64 is underway. Some of the Hurd's components, such as parts of the ```etx2fs``` file server and the ```pfinet``` networking server are in fact scavenged from ancient versions of Linux, while some other components are original. The networking stack has a single-process architecture. NIC and disk drivers are also taken from Linux, but run as part of Mach in kernel mode. There are experimental versions of the Hurd with support for running Linux 2.6.x networking and disk drivers in user mode via the DDE compatibility layer. The Hurd's hardware support is rather limited. As of version 0.7, it did not support USB or sound. The Hurd is a multiuser system and a huge emphasis is put on structuring it in such a way that unprivileged users can work with the computer without needing to acquire the administrator's privileges for certain tasks (e.g. making untrusted/experimental file systems accessible in the filesystem namespace). The Hurd offers great flexibility in the dynamic configuration of the system through the translator mechanism. Users can modify behavior for a file system path by interposing their own functionality (i.e. setting a translator) that gets activated on open. There are two GNU Hurd distributions: Debian GNU/Hurd and Arch Hurd. The former includes about 80% of the Debian packages, which is still in the very much respectable order of tens of thousands of packages.
    5252
    5353HelenOS, on the other hand, is a multiserver environment which does not reimplement any legacy system. It has its own microkernel called SPARTAN. Besides ia32, it also supports amd64, arm32, ia64, mips32, ppc32, sparc32 and sparc64 to varying degrees, some of them in multiprocessor configurations. An overwhelming majority of HelenOS components such as file systems, networking stack, device drivers and GUI have been written specifically for HelenOS, so there is virtually no bloat introduced by various compatibility and glue layers, neither there is any additional maintenance burden associated with maintaining aging third-party components. The networking stack is decomposed into several processes, each implementing part of the stack such as IP, TCP or UDP. Essentially all HelenOS drivers run in user mode, the exception being kernel drivers used for debugging purposes and the timer and interrupt controller drivers. HelenOS supports both USB and sound (sb16 and Intel HDA). HelenOS is a single user operating system, even though there has been some experimental work done on multiuser support. HelenOS does not have a direct analogy to the translator mechanism, but the system configuration can be dynamically changed by spawning/killing userspace servers that implement certain IPC protocols and by stacking services on top of each other. HelenOS currently does not support very many user applications as the development focus is on sybsystems, frameworks and drivers. A very limited support exists for running a few standard development tools inside HelenOS (e.g. binutils, gcc, python and some others). See also the following question.