...making Linux just a little more fun!
Abhishek Sharma [spyzer.abhishek0 at gmail.com]
Hi,
I am working on a project of making a small OS which will boot up on my dual core machine and will serve as a simple calculator. If its possible I would like to add GUI to it too.
My question is for this job do I need to program all the stuff as assembly code or is there a way in which the precompiled linux kernel or those "boot.img | initrd.img" can help me without having to go through assembly development?
If its possible I would be glad if you tell me how I can achieve this.
Thank You.
Kapil Hari Paranjape [kapil at imsc.res.in]
Hello,
On Thu, 08 Oct 2009, Abhishek Sharma wrote:
> I am working on a project of making a small OS which will boot up on > my dual core machine and will serve as a simple calculator. If its > possible I would like to add GUI to it too.
There is no more reason for such a project than a project that takes a rolls-royce jet engine and uses it to move at 20Kmph! The only difference perhaps is that your project is possible but the jet engine one is not!
> My question is for this job do I need to program all the stuff as > assembly code or is there a way in which the precompiled linux kernel > or those "boot.img | initrd.img" can help me without having to go > through assembly development?
You can certainly configure Ubuntu to boot up by default into an X session with Emacs running the "ess" front-end to "R" which can do far more than any "calculator" I ever met could.
You could replace "R" with "octave" or "scilab" as well.
Regards,
Kapil. --
Ben Okopnik [ben at linuxgazette.net]
On Thu, Oct 08, 2009 at 08:52:15PM +0530, Kapil Hari Paranjape wrote:
> Hello, > > On Thu, 08 Oct 2009, Abhishek Sharma wrote: > > I am working on a project of making a small OS which will boot up on > > my dual core machine and will serve as a simple calculator. If its > > possible I would like to add GUI to it too. > > There is no more reason for such a project than a project that takes > a rolls-royce jet engine and uses it to move at 20Kmph! The only > difference perhaps is that your project is possible but the jet > engine one is not!
Oh, we humans excel at inefficiency. E.g., the parasitic computing concept:
Now, all that aside - if you actually want a ridiculously overpowered, remove-the-fly-from-your-friend's-forehead-with-an-axe solution, I'd suggest exploring the "memtest" boot option available on many Linux live CDs. It boots just enough Linux to run "memtest" - which seems like something you could use.
There's also the option of looking at the few remaining "Linux on a floppy" versions. You could configure one of those to start some sort of a command-line calculator - say, "bc" or "dc" - and call it a done deal. This is possibly the simplest answer of all.
-- * Ben Okopnik * Editor-in-Chief, Linux Gazette * https://LinuxGazette.NET *
Lew Pitcher [lew.pitcher at digitalfreehold.ca]
On October 8, 2009 10:47:07 Abhishek Sharma wrote:
> Hi, > > I am working on a project of making a small OS which will boot up on > my dual core machine and will serve as a simple calculator. If its > possible I would like to add GUI to it too. > > My question is for this job do I need to program all the stuff as > assembly code or is there a way in which the precompiled linux kernel > or those "boot.img | initrd.img" can help me without having to go > through assembly development? > > If its possible I would be glad if you tell me how I can achieve this.
From your email, it is difficult to see what your goal is.
If your goal is to build a "simple calculator", then your plan to develop a "small OS" or utilize an existing "precompiled linux kernel" is a drastic overkill.
OTOH, if your goal is to write a "small OS", then you will have to spend some time defining what facilities you want this "small OS" to provide, before you start.
If you are just looking for a pre-existing "small OS" that you can boot up on your system, then there are a vast number of choices available to you, including Minix (a great way to learn OS design and development), Xinu, and a large number of small Linux distributions.
If you are asking whether or not a "small OS" /requires/ that all code be assembly language, then the answer is "no". Unix-like operating systems are typically developed in a high-level-language (C, actually) with a small amount (probably around 5%) of assembly language to deal with the low-level hardware. Applications (like your "calculator") and facilities (like your "GUI") are typically 100% high-level-language.
My recommendation would be to spend some time learning about how operating systems and application programs are developed. A /really/ good place to start would be the Minix OS, which is a simplified Unix environment written specifically for use as an educational tool in learning OS development.
-- Lew Pitcher Master Codewright & JOAT-in-training | Registered Linux User #112576 https://pitcher.digitalfreehold.ca/ | GPG public key available by request ---------- Slackware - Because I know what I'm doing. ------
Jim Jackson [jj at franjam.org.uk]
On Thu, 8 Oct 2009, Abhishek Sharma wrote:
> I am working on a project of making a small OS which will boot up on > my dual core machine and will serve as a simple calculator. If its > possible I would like to add GUI to it too. > > My question is for this job do I need to program all the stuff as > assembly code or is there a way in which the precompiled linux kernel > or those "boot.img | initrd.img" can help me without having to go > through assembly development?
Check Linux From Scratch
https://www.linuxfromscratch.org/
It has lots of clues.
Neil Youngman [ny at youngman.org.uk]
On Thursday 08 October 2009 18:03:42 Ben Okopnik wrote:
> Now, all that aside - if you actually want a ridiculously overpowered, > remove-the-fly-from-your-friend's-forehead-with-an-axe solution, I'd > suggest exploring the "memtest" boot option available on many Linux live > CDs. It boots just enough Linux to run "memtest" - which seems like > something you could use.
Actually memtest86, which I assume is run by the memtest boot option[1], doesn't load any Linux at all.
"Since Memtest86 is a standalone program it does not require any operating system support for execution." [2]
Neil
[1] or possibly memtest86+. https://www.memtest.org/
[2] https://www.memtest86.com/tech.html
Ben Okopnik [ben at linuxgazette.net]
On Thu, Oct 08, 2009 at 07:25:51PM +0100, Neil Youngman wrote:
> On Thursday 08 October 2009 18:03:42 Ben Okopnik wrote: > > Now, all that aside - if you actually want a ridiculously overpowered, > > remove-the-fly-from-your-friend's-forehead-with-an-axe solution, I'd > > suggest exploring the "memtest" boot option available on many Linux live > > CDs. It boots just enough Linux to run "memtest" - which seems like > > something you could use. > > Actually memtest86, which I assume is run by the memtest boot option[1], > doesn't load any Linux at all.
I didn't realize that - but that would make it all the more suitable for Abhishek's purposes. A stub loader that rolls over to an application seems like exactly the thing he's asking for.
-- * Ben Okopnik * Editor-in-Chief, Linux Gazette * https://LinuxGazette.NET *