Recreational Programming With LoseThos

Technologists fear (and loathe) that which has no purpose. Why must some insist in deriding an operating system like Haiku that doesn’t fit their particular needs or precepts of what has a purpose, when, it’s advanced enough to have a decent web-browser and productivity software? Today I shall be further offending these people’s tastes with a look into LoseThos–a pure 64-bit, preemptive-multitasking, multicored PC operating system that is intended to be used as a secondary operating system for user’s recreational programming on their best PC while dual booting a primary system such as Linux or Windows where they do networking and other modern activities such as multimedia. Yes, LoseThos has no networking, no security of any kind, and VGA graphics; but it certainly has a purpose: to be fun! (for programmers, at least)

Terry Davis, author of LoseThos writes to OSnews:

LoseThos is not a general purpose operating system, which is a fairly radical concept. Others aim to work for industrial servers, mobiles and home desktops. LoseThos is aimed at just home desktops or possibly laptops. There are simplifications made in the way file I/O is done which might be a problem for general purpose operating systems. It typically loads whole files into memory, for example. It also does a whole-file, non-interrupt driven technique for file I/O which would not be suitable for servers but which is fine on home systems where you’re mostly interested in the focus task.

I enjoyed finding-out about all the internals of my Commodore 64 when I was a kid and I imagine many people today at first think “open source” means they will be able to get involved under the hood, only to discover it is intimidatingly complex. These are the primary people LoseThos is intended for, though, its API is also more welcoming with only a single line of code needed for “Hello World” and only three lines of code to put graphics on the screen. It is innovative in many ways and, since it was written completely from scratch with no concern for backward compatibility, such fundamentals as “why should source code be just ASCII?” were considered.

There’s no reason for another Linux, so LoseThos is fundamentally different. The way it is different is it has no protections against bugs in programs or malware. The only reason memory protection and security exists is to protect against
bugs and malware. Eliminating such protections makes LoseThos orders of magnitude simpler, weighing-in at only 120,000 lines of code including the compiler. Believe it or not, the optimal performance of a CPU is achieved by eliminating the overhead of protections, but, since it’s usually not a big percentage lost, seeking optimal performance is not a very sane reason to use LoseThos.

PCs are nice because hardware innovations are possible, but the diversity of devices means a new operating system is not likely to emerge because there are thousands of drivers you need and, practically, you must own each piece of hardware to write a driver for it. It might be possible to do modern graphics resolutions and colors by making drivers for a few graphics cards, but if you want a generally usable operating system I concluded there was no way except least (greatest) common denominator hardware, which is 640x480x16 color VGA. This fits nicely with LoseThos’ distinctiveness of simplicity and is less of a problem than you might think for user-made programs because programmers hate creating artwork.

The best way to demonstrate LoseThos is to see it in action, Terry has provided a video tour of the OS. When I watch this, what comes to mind is “it’s full of stars!”. Confusing, but nether the less, cool.

(Note: this video is provided in an open-format—Ogg—using HTML5 video embedding. if you cannot view the video, try the version on the LoseThos website)

As you can see, LoseThos is certainly not designed, nor does it want to be, a competitor to any traditional desktop operating system. Its goals are not greater than is the practical reality and desires of the programmer creating it. This I understand greatly, because I always seek to use the computer as a tool to solve my technological problems first, and ancillary benefits are gained if other people can put the code / technique to use. When the advice is given “to be true to yourself”, then LoseThos follows that notion to the letter. Would I ever dream of building an OS to bring down Microsoft? No. Where would the fun be in that? The fun is in the doing, and no software has to categorically serve an altruistic purpose or face deletion.

Terry continues,

I discovered a bit of wisdom from which you might benefit. I had hopes of having an innovative file system with meta-data for files, but when I added FAT32 support, I lost enthusiasm because I didn’t like the prospect of having core features which didn’t work everywhere or making an ugly kludge for FAT32 partition such as a meta-data files which Windows would not keep up-to-date. The wisdom is that opening the door to using any standards squelches innovation.

The multicore technique is master/slave instead of SMP. You write your programs to directly control the other cores. This is lots of fun. It is symmetric in that you can do file access and graphics from other cores, but it does not shift tasks automatically to other cores. On a home system, you want the focus application faster and don’t benefit from putting other
applications on other cores because you’re mostly doing one thing at a time, right?

LoseThos has a radically innovative and exotic interface you definitely want to have a look at, so give it a whirl in a VMWare session just to experience it, if nothing else.

I’m glad that operating systems like LoseThos still exist, in that it shows that computing can still be a hobby; why is everybody so serious these days? If I want to code an OS that uses interpretive dance as the input method, I should be allowed to do so, companies like Apple be damned.

Please consider giving LoseThos a look and provide feedback via LoseThos’ contact page.

33 Comments

  1. 2010-09-12 7:58 pm
    • 2010-09-12 8:04 pm
      • 2010-09-12 8:50 pm
        • 2010-09-13 12:44 am
        • 2010-09-13 3:25 pm
    • 2010-09-12 8:43 pm
    • 2010-09-12 9:11 pm
    • 2010-09-12 9:28 pm
    • 2010-09-12 9:30 pm
    • 2010-09-13 1:49 am
    • 2010-09-13 5:08 am
    • 2010-09-13 9:08 am
    • 2010-09-13 3:24 pm
  2. 2010-09-13 12:16 am
    • 2010-09-13 1:03 am
      • 2010-09-13 1:10 am
    • 2010-09-13 5:42 am
    • 2010-09-13 6:43 am
    • 2010-09-13 6:49 am
      • 2010-09-13 8:54 am
        • 2010-09-13 1:07 pm
          • 2010-09-13 2:13 pm
          • 2010-09-13 2:57 pm
          • 2010-09-14 6:34 am
          • 2010-09-14 11:53 am
        • 2010-09-13 11:00 pm
          • 2010-09-14 6:28 am
          • 2010-09-14 7:15 am
          • 2010-09-14 8:47 am
  3. 2010-09-13 4:02 am
    • 2010-09-13 9:05 am
  4. 2010-09-13 2:11 pm
  5. 2010-09-13 11:06 pm