Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changes between Version 13 and Version 14 of FAQ


Ignore:
Timestamp:
2015-11-20T21:49:44Z (3 years ago)
Author:
Jakub Jermář
Comment:

Modernize FAQ

Legend:

Unmodified
Added
Removed
Modified
  • FAQ

    v13 v14  
     1
     2
    13= Frequently Asked Questions =
    24
    3   * [#GeneralQuestions General Questions]
    4   * [#AdvocacyRelatedQuestions Advocacy-related Questions]
    5   * [#ToolchainRelatedQuestions Toolchain-related Questions]
     5[[PageOutline(2-3,,inline)]]
    66
    77== General Questions ==
    8 '''Q:''' '''What is HelenOS?'''[[BR]]
    9 '''A:''' HelenOS is an open-source microkernel-based multiserver operating system written from scratch. It runs on several different CPU architectures (IA-32, x86-64, SPARC V9, IA-64, PowerPC, ARM, MIPS). HelenOS prides in portability, modularity, clean design and coding style.
    108
    11 '''Q:''' '''What is SPARTAN?'''[[BR]]
    12 '''A:''' 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.
     9=== What is HelenOS? ===
    1310
    14 '''Q:''' '''What is HelenOS used for?'''[[BR]]
    15 '''A:''' 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.
     11HelenOS is an open-source microkernel-based multiserver operating system written from scratch. It runs on several different CPU architectures (IA-32, x86-64, SPARC V9, IA-64, PowerPC, ARM, MIPS). HelenOS prides in portability, modularity, clean design and coding style.
     12
     13=== What is SPARTAN? ===
     14
     15SPARTAN 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.
     16
     17=== What is HelenOS used for? ===
     18
     19Some 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.
    1620
    1721At 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.
    1822
    19 '''Q:''' '''What license is HelenOS released under?'''[[BR]]
    20 '''A:''' All original HelenOS code is covered by a BSD-like license. Some specific third-party components are covered by the GPLv2.
     23=== What license is HelenOS released under? ===
    2124
    22 '''Q:''' '''Is it based on Linux? Is it UNIX-like?'''[[BR]]
    23 '''A:''' No. HelenOS is based on original code, from the ground up. It is based on the original SPARTAN microkernel. It does ''not'' mimic any existing system and it is ''not'' meant to be POSIX-compliant or UNIX-like at all. Just as an example, HelenOS does not support {{{fork()}}}.
     25All original HelenOS code is covered by a BSD-like license. Some specific third-party components are covered by the GPLv2.
    2426
    25 '''Q:''' '''What does it do, from an end-user's perspective?'''[[BR]]
    26 '''A:''' 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.
     27=== Is it based on Linux? Is it UNIX-like? ===
    2728
    28 '''Q:''' '''What do you aim for with HelenOS?'''[[BR]]
    29 '''A:''' 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.
     29No. HelenOS is based on original code, from the ground up. It is based on the original SPARTAN microkernel. It does ''not'' mimic any existing system and it is ''not'' meant to be POSIX-compliant or UNIX-like at all. Just as an example, HelenOS does not support {{{fork()}}}.
    3030
    31 '''Q:''' '''How is HelenOS development organized?'''[[BR]]
    32 '''A:''' HelenOS development is community-driven. The primary communication medium for developers is our mailing list. Since most developers are currently based in Prague (or vicinity), we hold developer meetings in Prague once every month. Minutes are usually published on the mailing list.
     31=== What does it do, from an end-user's perspective? ===
    3332
    34 '''Q:''' '''Where is HelenOS source code kept?'''[[BR]]
    35 '''A:''' HelenOS source code is managed with [http://bazaar.canonical.com/en/ Bazaar VCS]. We have a central repository which is considered as the most current code base. Several developers also have their private development branches which are publicly viewable.
     33We 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.
    3634
    37 '''Q:''' '''How is HelenOS different from UNIX?'''[[BR]]
    38 '''A:''' See our [wiki:DiffFromUnix page] which describes some design differences between HelenOS and Unix-like systems.
     35=== What do you aim for with HelenOS? ===
     36
     37Mainly 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.
     38
     39=== How is HelenOS development organized? ===
     40
     41HelenOS development is community-driven. The primary communication medium for developers is our mailing list. Since most developers are currently based in Prague (or vicinity), we hold developer meetings in Prague once every month. Minutes are usually published on the mailing list.
     42
     43=== Where is HelenOS source code kept? ===
     44
     45HelenOS source code is managed with [http://bazaar.canonical.com/en/ Bazaar VCS]. We have a central repository which is considered as the most current code base. Several developers also have their private development branches which are publicly viewable.
     46
     47=== How is HelenOS different from UNIX? ===
     48
     49See our [wiki:DiffFromUnix page] which describes some design differences between HelenOS and Unix-like systems.
    3950
    4051
    4152== Advocacy-related Questions ==
    4253
    43 '''Q:''' '''Oh, yet another operating system?'''[[BR]]
    44 '''A:''' No, not at all. There are definitely many more various content management systems, office suites or web browsers out there than there are microkernel-based multiserver operating systems like HelenOS.
     54=== Oh, yet another operating system? ===
    4555
    46 '''Q:''' '''Why don't you work on ''insert your favorite OS project'' instead?'''[[BR]]
    47 '''A:''' While HelenOS currently has some gaps in end-user functionality (such as system tools and applications), from many points of view we consider it more advanced than any comparable project. Microkernel is just a label and there are as many ways to write a microkernel system as there are many ways to write an operating system. HelenOS pursues many interesting ideas not found in other projects. HelenOS is portable, clean and modular. And last, but not least, writing HelenOS is fun {{{^_^}}}.
     56No, not at all. There are definitely many more various content management systems, office suites or web browsers out there than there are microkernel-based multiserver operating systems like HelenOS.
    4857
    49 '''Q:''' '''After so many years of development, HelenOS still cannot do ''XYZ''?'''[[BR]]
    50 '''A:''' We are developing a new operating system from scratch as compared to a mere cloning an existing system with an established API. This forces us to figure out and design everything ourselves, which takes time.[[BR]]
    51 '''A:''' The HelenOS development process can be characterized as breadth-first rather than depth-first. Breadth-first here denotes the fact that we are writing code which runs on half-dozen processor architectures and is highly multiplatform and portable. This is in strong contrast with the depth-first development model, in which a project quickly gains a lot of desktop features on only one architecture (typically x86) but its poor design prevents it from being ported to more platforms.
     58=== Why don't you work on ''insert your favorite OS project'' instead? ===
     59
     60While HelenOS currently has some gaps in end-user functionality (such as system tools and applications), from many points of view we consider it more advanced than any comparable project. Microkernel is just a label and there are as many ways to write a microkernel system as there are many ways to write an operating system. HelenOS pursues many interesting ideas not found in other projects. HelenOS is portable, clean and modular. And last, but not least, writing HelenOS is fun {{{^_^}}}.
     61
     62=== After so many years of development, HelenOS still cannot do ''XYZ''? ===
     63
     64We are developing a new operating system from scratch as compared to a mere cloning an existing system with an established API. This forces us to figure out and design everything ourselves, which takes time.
     65
     66The HelenOS development process can be characterized as breadth-first rather than depth-first. Breadth-first here denotes the fact that we are writing code which runs on half-dozen processor architectures and is highly multiplatform and portable. This is in strong contrast with the depth-first development model, in which a project quickly gains a lot of desktop features on only one architecture (typically x86) but its poor design prevents it from being ported to more platforms.
    5267
    5368== Toolchain-related Questions ==
    5469
    55 '''Q:''' '''Why don't you use Clang as your primary compiler?'''[[BR]]
    56 '''A:''' We actually do support Clang as an alternative compiler for some architectures (such as ia32 and amd64). But Clang does not currently support all CPU architectures that HelenOS supports, so we use GCC to build HelenOS by default.
     70=== Why don't you use Clang as your primary compiler? ===
     71
     72We actually do support Clang as an alternative compiler for some architectures (such as ia32 and amd64). But Clang does not currently support all CPU architectures that HelenOS supports, so we use GCC to build HelenOS by default.