Programming and general geekiness.

Posts tagged ‘dev’

Why Firefox Beta is the best channel

You have three options when downloading Firefox: Aurora (translates roughly to Dev in the Chrome world), Beta and Stable Release. Previously I had always worked with the Stable Release because that way you know everything works, however I have since discovered that it has been better to use the Beta build over the other two. Here are five reasons why:

  1. Automatic updates. This will seem old hat to Chrome users, but Firefox 5 Beta automatically keeps itself up to date, meaning less work for the user
  2. More support. This is kind of obvious, but it means that you are always ahead of most Firefox users with HTML5 and CSS3
  3. Its more reliable than Aurora. The Aurora channel isn’t appropriate for must users, and Beta runs more smoothly
  4. You help to make Firefox run better. Usage statistics are sent back to Mozilla so they can help fix it and make Firefox run faster
  5. You get features first. This means that you have the chance to use the best of the web

Approaches for building a simple operating system

If you are reading this post odds are that you know a little (minimum) about coding. Your normal programs might be desktop applications that can do interesting, useful and entertaining things, perhaps based on complex complex algorithms, database and the intelligent person’s common sense. It is fun (or at least I think it is fun) to code programs that are useful to people – though generally myself – that make other people’s lives easier. If you can make other people’s live easier, you can make your own more interesting.

Eventually, however, being able to code desktop applications becomes a little dull because you aren’t learning anything new. You are still using the same fundamental coding principles that you’ve known for the last five years, however you are simply learning to use them in different and more efficient ways. At some point you will decide to learn a new language, perhaps on a different system. An interesting challenge might be to code a (simple) operating system.

Coding an OS is very interesting idea, because it gives you complete freedom over the computer, however there is no doubt about it that it is a complicated challenge. It requires extensive knowledge of how computers run, and knowledge of complex languages, such as Assembly. However, there are alternative approaches.

Approach 1: Learn Assembly

This approach is one method that could be used, though probably isn’t suited for beginners. The problem is that the language is very complex, and incredibly low-level to the degree that you can’t even debug it to get an idea where you went wrong. Learning Assembly also requires you to be good at either higher-level programming languages such as C or C++ so you can build more complex applications for your OS.

Approach 2: Modify a Linux Distribution

This is technically not an approach for building an OS from scratch, h0wever it is a nice way of creating your own custom OS. It could involve downloading the source code for a small Linux Distro, like Puppy Linux, making changes and then re-compiling. Or alternatively you could choose to bundle different applications and create your own start-up disk.

Approach 3: COSMOS

COSMOS (www.gocosmos.org) is an interesting project that allows you to compile Operating Systems from Visual C#. I have used it in the past when it was less mature, however now you can create (simple) GUIs relatively easily. It is a free download, and I should imagine that it isn’t too difficult to pick up. Another advantage is that it can compile into various Virtualization programs as well as ISOs.

At some point later this year I am going to code ThomasOS, and it will probably be based on COSMOS, though with some effort I’ll move it to Assembly. It will be built in parts:

  • Core OS
  • ThomasScript (interpreter for programs)
  • Application manager/renderer

I will code ThomasScript and the Render app on Windows first to get the code sorted, and then port it onto ThomasOS later this year. So watch this space…

Follow

Get every new post delivered to your Inbox.