Page 1 of 1

FBOS

Posted: Mon Mar 13, 2006 7:17 am
by vongodric
hey guys,

in recent days I'v got interested in an "OS" programming and decided to give it a go and thus FBOS ( FreeBasicOperatingShell ) project is born. And in just few days i'v gotten suprisingly far. The system runs in DOS and is written using FreeBASIC and C (djgpp) compilers.

At the moment I have pre-emptieve threading and dynamic program loading. But there's alot of work ahead and I'm searching for some people who would be interested in helping out with such a project. The first "proof of concept" version is released on FreeBasic forum in this thread: http://www.freebasic.net/forum/viewtopic.php?t=3285

it's really not much -just two very simple programs ( both written and compiled in freebasic -so there's no scripting or any of that sort. It's real programs ) And they both run in theyr own thread.

I want to extend this project into more usuable DOS shell that can run programs and stuff.

all comments and ideas are welcome.

Posted: Mon Mar 13, 2006 12:26 pm
by Seb McClouth
Would you be interested in helping with Qbinux?
If you would, check out the site at http://mcclouth.tk

Instead of making all diffrent kinds of Shells.. maybe we can all work on one... Just an idea...

grtz
Seb

Posted: Mon Mar 13, 2006 1:24 pm
by vongodric
hey, I have looked at QBinux -it't interesting project, but is not what FBOS is about. Do I understand it righ:

QBinux is developed in QBASIC based on Z!res old fake-os project, it's programs are bytecode that are interpreted?

If so then srym but I'm not interested.

FBOS is developed in FreeBASIC/C(djgpp) and thus is natievly 32bit system. And it's applications aren't neither scripts nor bytecode but also compiled using either FreeBASIC compiler or C/C++(djgpp) and linked together with a special linker.

FBOS offers:
"True " Pre-empiteve threading (timer interrup based)
dynamic library support (Greater part of the core system is exposed to programs via dynamically loadable libraries)

Posted: Mon Mar 13, 2006 1:43 pm
by vongodric
now that I re-read my post, sry I didn't try to discredit QBinux or anything -just to state that the nature and the goal of the project is different from the one of QBinux.

Posted: Tue Mar 14, 2006 3:35 am
by Seb McClouth
vongodric wrote:QBinux is developed in QBASIC based on Z!res old fake-os project
It was... Until recently I have decided just to use only the necessary things. Most of Qbinux is now based upon the real deal. Last week, I was able to implent some linux source code (ported to QB) and it worked, before it didn't.
vongodric wrote:it's programs are bytecode that are interpreted?
That's an idea for a compiler... which I don't have yet... So currently only program with real QBasic code

I was just wondering, since your making a huge program, you might wanna share some knowledge with the McClouth team.

Good luck anywayz...

grtz
Seb

Posted: Tue Mar 14, 2006 4:47 am
by vongodric
Hey,

I'v never made secret of my projecst so fbos is open source as all my other projects.

However I am a bit confused: Ported linux src into qbasic? Please explain to me HOW qbinux works, how does it execute programs, how does the core logic work?

FBOS: I use timer interrupt based threading system (basically same as any other OS. Programs are loaded dynamically into memory and the entry point is extracted and in the thread this entry point is executed. I also can receave/send events to / from applications.

How do you do threading for example?

Posted: Tue Mar 14, 2006 5:20 am
by Seb McClouth
Currently I don't have any threading... I'm currently working on the fact of starting up of the system... I'm just getting errors about dviding through zero, since I'm using C's BitShift (<< or >>). I've adapted this to QuickBasic with the help of ppl on the forum here.

As soon as I'm able to fix that divide-through-zero, next step follows...

grtz

Posted: Tue Mar 14, 2006 5:43 am
by Seb McClouth
As in answer to your "porting"question:

It's just reading plain C-code and try if there is a similar thing for it in QB, if not, I try to code it...

Posted: Tue Mar 14, 2006 7:08 am
by vongodric
why waste such effort on 16system? wnd why are you trying devide with 0 anyway?

Posted: Tue Mar 14, 2006 7:36 am
by Seb McClouth
vongodric wrote:why waste such effort on 16system? wnd why are you trying devide with 0 anyway?
1) 16bit system? Because it's fun!
2) It's an error... not sumfin I wanna do... because 0 diveded by whatever = 0, it just wouldn't make sense...

anywayz

Good luck & cya around!

Posted: Tue Mar 14, 2006 9:14 pm
by thegrogen
Hey, yet another OS-dever!

I'm working on my own operating system (HorusOS), as well, but it's completely independent of other operating systems. That is to say, it doesn't depend upon DOS for ANYTHING. It's bootable, but since I haven't had much time to work on it, the kernel doesn't really do much, and I just scrapped my memory manager since it didn't really work very well, and it's design wasn't very good.

My OS is probably going to use a microkernel, so pretty much everything will just be a loaded program or driver, which will allow the user to customize the OS much more easily. All the kernel does is manage the currently running tasks, manage memory, and provide a runtime library for the programs (and the rest of the OS) to use. The drivers are basically just add-ons to the kernel runtime library, and the user will be able to add them and remove them at will. The kernel will not provide a GUI or a shell, as that will be managed by other tasks.

The runtime will probably be similar to the FB runtime, so it will be fairly easy to modify the FB compiler to produce HorusOS executables. The first programs will most likely be written in ASM, followed by C and FB. I'll probably provide a native FB compiler with the distros when I release it. Some of the OS might also be written in FB (probably the GUI and the GUI library).

I dont have program loading or task switching in yet, but hopefully I will have that implemented by the end of the summer, if I get the time.

Posted: Wed Mar 15, 2006 9:19 am
by Nodtveidt
Cool, an OS craze. :D

*goes back to work on his bsd distro*

Posted: Wed Mar 15, 2006 9:53 am
by Seb McClouth
ROFLOL, good one Nek!! :lol: :lol: :lol:

Posted: Thu Mar 16, 2006 5:08 pm
by thegrogen
It's so true, though...

It's nearly as bad as the MMORPG craze was (and still is, to some extent)over at certain game programming forums, except this craze actually has people accomplishing something instead of dreaming all day!

Which reminds me, I should get back to work on mine, too. :)

edit: I just got a very simple external program running. It doesn't do much, and it's loaded alongside the kernel (since I don't have a filesystem yet), but it's still a running program!

Posted: Fri Mar 17, 2006 11:24 am
by Nodtveidt
thegrogen wrote:It's so true, though...

It's nearly as bad as the MMORPG craze was (and still is, to some extent)over at certain game programming forums, except this craze actually has people accomplishing something instead of dreaming all day!

Which reminds me, I should get back to work on mine, too. :)
I was working on my own microkernel (using GRUB for bootstrap) but frankly, OS coding from scratch is a bit boring so I decided to do a bsd distro instead, seeing as there's not many (compared to the staggering number of Linux distros, that is). I'd show some screenies but there's not much worth showing that people haven't already seen...basically, my distro is specifically designed as a BSD desktop system, but it removes many of the more difficult parts of BSD management by handling them automatically and installing a lot of default stuff (when installed, X and KDE are autoconfigured for you, so you never have to touch xorg.conf at all nor do a pkg_add kde since it's already installed and pre-configured). It's basically FreeBSD minus sysinstall (it has its own installer with very minimal install options, so even the layman can install it) and plus X/KDE ready to go. I am even hoping to attempt to write a utility that will allow the user to easily compile a custom kernel, without having to know anything at all about how the kernel config file works or how to compile it...

But enough sidetracking and self-promotion from me. :P VG, what are your long-term goals for this project of yours?

Posted: Sat Mar 18, 2006 4:04 am
by vongodric
Well It's mostly for fun:P I'v always wanted to do a multitasking shell for DOS, but I'm considering moving to C/C++ with this and later just make sdk available for FreeBASIC. It's just C is better suited for such tasks.

I'v been playing with idea to make my own "OS" distribution using FreeDOS + my shell -it could be fun. But I need to do a lot of work.

Probably for gui I'm going to use MASkinG gui wich is based on allegro. It seems pretty good so I won't have to reinvent the wheel here.

But we'll see.

Posted: Thu Mar 23, 2006 2:59 pm
by bungytheworm
Well, ASCII "gui" for dos32 or linux is something i have dreamed to do like over year now. Alltho, lots of water will stream on our river before i have skills and experience to make it come true. :cry: :lol: