Interview With Robert Szeleney, SkyOS’s Project Leader

SkyOS is a home brewed operating system, created by Robert Szeleney in the last few years as a hobby project. As SkyOS gets bigger and more advanced, its popularity and importance are also growing, driving the 3-member team to add more and more functionality. Latest in their efforts is the — already working according to the SkyOS web site– Linux emulation layer which runs Linux binaries natively, without recompiling. Among their future plans is also a Windows emulation layer. But SkyOS is much more than emulation layers, it has a personality and functionality of its own. Read more for what Robert has to say about SkyOS and its future.1. Please tell us about the technical aspects of SkyOS. Kernel, multithreading/tasking, filesystem etc


Robert Szeleney: SkyOS is an operating system for intel 486+. It supports features like 32bit PM, paging, virtual memory, kernel/user multitasking/threading etc.
SkyOS has a full preemtiv kernel and supports kernel tasks/threads as well as user task/threads.
A virtual filesystem is implemented which supports sub-filesystems like FAT, SkyFS, ISO9660, devicefs, procfs and fifofs.
An other feature is the SkyGI. This is the graphical part of SkyOS splitted into two parts. A kernel and a user library. The kernel library implements
the window manager as well as primitv drawing functions.
A lot of device drivers has been implement for SkyOS like keyboard, serial mouse, ps2 mouse, IDE harddisk, ATA harddisk, ATAPI cdrom, VGA16, VESA, CT,
ELO touchscreen etc.
Scheduler is a priority based round robin scheduler.


Click for a larger version


2. When and why did you start coding SkyOS? What is the goal of the whole project?


Robert Szeleney: I started coding SkyOS in 1996. But I really don`t know why. I remember that I wanted to code a bootmanager. After I finished coding this in one day,
I thought about implementing more functions into this “bootmanager”. And so I started SkyOS V1.0, a 16bit OS written completly in assembler. In 1998 I
started SkyOS V2. (32Bit PM written in C). But SkyOS V2 didn`t support usertasks and virtual memory. So I rewrote the complete OS and started SkyOS V3. (32Bit PM, Paging, Virtual memory etc )


I have no exact goal for SkyOS. It should support as many hardware as possible and should be binary compatible to linux first. There are
emulation layers in the kernel which fakes that is is a running linux system so linux applicatons can run natively.


3. What are your plans for a networking stack? Will you incorporate a BSD-like library or rewrite it from scratch?


Robert Szeleney: SkyOS has a TCP/IP stack already. (I implemented this in version 2 of SkyOS). Only the TCP layer should be rewritten completely.


4. Do you have plans to make the OS posix compliant or you prefer it to be closely to the Windows model?


Robert Szeleney: As mentioned above, SkyOS support emulation layers. So it will support POSIX as well as the Win32 API. Currently I`m implementing more and more
functions for POSIX. WIN32 compatibility will be in the future.


5. Do you accept help and source code or bug fixes from third parties? Do you put restrictions to third parties regarding coding style etc?


Robert Szeleney: Until version 3.0, SkyOS was open source. But now, I don`t want SkyOS to be open source. I put so many work into this project, that I don`t want to
give to source away. But I accept project members. If someone want to code for SkyOS he can have source. Also, I accept source codes and bugfixes for
SkyOS. I don`t put restrictions for coding style. If someone coded for example a new driver, I will change the code to fit into the whole SkyOS
coding style.


6. Which are the strongest features found in SkyOS?


Robert Szeleney: Hmm, strongest features… I think SkyOS doesn`t have features which hasn`t been seen before in another operating system. Also, I don`t want to say that some features are better then in another operating system. First I want to get a stable, wide supported operating system. Then I will try to optimize and implement better features.


Click for a larger version


7. Do you plan to add native development tools to the OS? For example, to be able to compile code within your OS?


Robert Szeleney: Sure, as soon as the linux emulation layer is finished, it will be possible to run gcc and other programming tools. I don`t want to code a compiler
myself.


8. Your VESA implementation seems quite slow when compared to let’s say, Qube’s. Do you turn on the MTRRs in the Intel PII+ CPUs? Any plans for a speed up in graphics?


Robert Szeleney: The window manager and the graphic interface as well as all graphic drivers are really fast. (for example, recalculating all visible/dirty regions of
100 window objects needs only 0.2ms. But the VESA and VGA16 driver has a big lack. The copy_screen_to_screen function is really slow. It needs about
22ms to copy a 480*200 pixel region from on position to another. But the VESA driver isn`t optimized yet. (MTRR isn`t enabled, and really no optimization in the copy function). If you use, for example, the Chips and Technologies driver, you will see how fast the GUI is).


9. Does the OS have a VM yet? What kind is its filesystem? How about support for non-rectangle windows?


Robert Szeleney: The virtual machine implemented in SkyOS is primary used to call BIOS functions. SkyOS supports following filesystems: FAT12/16/32, SkyFS and ISO9660. Also, there are some virtual filesystems like procfs, devicefs and fifofs. I don`t know what to do to support non-rectangular windows yet. This feature isn`t on my current todo list, maybe in future.


10. Where do you see SkyOS in the future and what are your plans in general?


Robert Szeleney: Because SkyOS has a realtime scheduler and a really good interrupt latency, it could be possible to use SkyOS as a realtime operating system or as a visualization platform. But primarily, my first goal is a simple task: to play my MP3 files, browse in the internet, and compile applications…

21 Comments

  1. 2001-10-18 7:52 pm
  2. 2001-10-18 8:44 pm
  3. 2001-10-18 9:01 pm
  4. 2001-10-18 9:33 pm
  5. 2001-10-18 10:02 pm
  6. 2001-10-18 11:49 pm
  7. 2001-10-19 6:30 am
  8. 2001-10-19 9:06 am
  9. 2001-10-19 9:59 am
  10. 2001-10-19 1:56 pm
  11. 2001-10-19 3:14 pm
  12. 2001-10-19 4:24 pm
  13. 2001-10-19 5:05 pm
  14. 2001-10-19 9:15 pm
  15. 2001-10-20 12:04 pm
  16. 2001-10-20 7:27 pm
  17. 2001-10-22 3:33 am
  18. 2001-10-23 12:59 pm
  19. 2002-01-21 11:33 am
  20. 2002-02-14 11:56 am
  21. 2002-02-28 12:27 am