Changes between Version 13 and Version 14 of FAQ
- Timestamp:
- 2015-11-20T21:49:44Z (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
FAQ
v13 v14 1 2 1 3 = Frequently Asked Questions = 2 4 3 * [#GeneralQuestions General Questions] 4 * [#AdvocacyRelatedQuestions Advocacy-related Questions] 5 * [#ToolchainRelatedQuestions Toolchain-related Questions] 5 [[PageOutline(2-3,,inline)]] 6 6 7 7 == 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.10 8 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? === 13 10 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. 11 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. 12 13 === What is SPARTAN? === 14 15 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. 16 17 === What is HelenOS used for? === 18 19 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. 16 20 17 21 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. 18 22 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? === 21 24 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()}}}. 25 All original HelenOS code is covered by a BSD-like license. Some specific third-party components are covered by the GPLv2. 24 26 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? === 27 28 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. 29 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()}}}. 30 30 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? === 33 32 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. 33 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. 36 34 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 37 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. 38 39 === How is HelenOS development organized? === 40 41 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. 42 43 === Where is HelenOS source code kept? === 44 45 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. 46 47 === How is HelenOS different from UNIX? === 48 49 See our [wiki:DiffFromUnix page] which describes some design differences between HelenOS and Unix-like systems. 39 50 40 51 41 52 == Advocacy-related Questions == 42 53 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? === 45 55 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 {{{^_^}}}. 56 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. 48 57 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 60 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 {{{^_^}}}. 61 62 === After so many years of development, HelenOS still cannot do ''XYZ''? === 63 64 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. 65 66 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. 52 67 53 68 == Toolchain-related Questions == 54 69 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 72 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.