= Frequently Asked Questions = == General Questions == '''Q:''' '''What is HelenOS?'''[[BR]] '''A:''' HelenOS is an open-source microkernel-based multiserver operating system. 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. '''Q:''' '''What is SPARTAN?'''[[BR]] '''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. '''Q:''' '''What is HelenOS used for?'''[[BR]] '''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. 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. '''Q:''' '''What license is HelenOS released under?'''[[BR]] '''A:''' All original HelenOS code is covered by a BSD-like license. Some specific third-party components are covered by the GPLv2. '''Q:''' '''Is it based on Linux? Is it UNIX-like?'''[[BR]] '''A:''' HelenOS is based on original code, from the ground up. It is based on the original SPARTAN micro-kernel and is ''not'' meant to be POSIX-compliant or UNIX-like at all. Just as an example, HelenOS does not support {{{fork()}}}. '''Q:''' '''What does it do, from an end-user's perspective?'''[[BR]] '''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). '''Q:''' '''What do you aim for with HelenOS?'''[[BR]] '''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. '''Q:''' '''How is HelenOS development organized?'''[[BR]] '''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. '''Q:''' '''Where is HelenOS source code kept?'''[[BR]] '''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. == Advocacy Related Questions == '''Q:''' '''Oh, yet another operating system?'''[[BR]] '''A:''' No, 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. '''Q:''' '''Why don't you work on ''insert your favorite OS project'' instead?'''[[BR]] '''A:''' While HelenOS currently has some gaps in user-space 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 {{{^_^}}}. '''Q:''' '''After so many years of development, HelenOS still cannot do XYZ?'''[[BR]] '''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]] '''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.