Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Qbinux
#21
You need a low level language which lets you operate with pointers, reserve memory by yourself, talk to hardware directly, etcetera. C or assembly are suited for this.

For people who believe they are writing an OS... Have you the slightest idea of what you are talking about? Do you know how to build a filesystem on storage media? Do you know how to time accesses to a network interface card? Do you know how to pack data in your memory and/or HDD? Do you know how to reserve memory, optimize it, etc?

An OS (even the simplest ones, think about CP/M or MSDOS) is a very ubercomplex thing. You have to understand lots of concepts and know how hardware works. The OS is the layer between applications and the hardware. Are you capable of creating such a layer?

If you thing that a windows manager with nice scrollbars and icons is an OS, you are wrong. That's a SHELL, which is the outter part (as the name implies) of an OS, i.e. the user interface. Below the shell there's lots of stuff. The important stuff.

Also, writing an OS isn't just writing all the mentioned stuff. You also have to create developer's libraries, a compiler, a linker... in order to actually have programs which run on that OS.
SCUMM (the band) on Myspace!
ComputerEmuzone Games Studio
underBASIC, homegrown musicians
[img]http://www.ojodepez-fanzine.net/almacen/yoghourtslover.png[/i
Reply
#22
If people are really serious about creating OS's, I'd suggest reading books by Andrew Tanenbaum. Linus Torvalds read and applied his concepts to create Linux, and Tanenbaum has an "educational" OS called MINIX.

Anyone even know the diff between monolithic and microkernel structures? lol
Reply
#23
What is Qbinux? It's Linux but not Linux. Linux as we see it is as we know it, the complete system, but infact Linux is the name of the core. So... Nobody every said Qbinux had to bootable... Qbinux is the name of the core... The distribution is called McClouth Qbinux. And it's only a text-gui, running on Dos, temporarily.

I have seen an OS which was made with mostly QB, and the bootthing was made with assembler.

grtz
Binux is a Linux distribution with the aim of integrating the work of the vast community of free software developers at Pete's QBASIC Site in order to create a modern, performant, safe and easy to use system for system administrators and desktop users.
Reply
#24
Quote:What is Qbinux? It's Linux but not Linux. Linux as we see it is as we know it, the complete system, but infact Linux is the name of the core. So... Nobody every said Qbinux had to bootable... Qbinux is the name of the core... The distribution is called McClouth Qbinux. And it's only a text-gui, running on Dos, temporarily.

I have seen an OS which was made with mostly QB, and the bootthing was made with assembler.

grtz

What part of the OS was made mostly in QB? The kernel? I still don't see how it's possible unless you emulated most of the run-time stuff first. How would you make a bootloader load a QBasic kernel?
quote="Deleter"]judging gameplay, you can adaquately compare quake 4 with pong[/quote]
Reply
#25
In order to achive what your talking about, you'd need assembler and reprogram the DOS-interrupts, unless you'd be able to go all the way of Linux, use the Linux-boot stuff and run Qbinux on that... Since I'm trying to understand Linux some more, I started building Qbinux with real code from Linux (read translating c-code to basic where possible).

Since I don't have a mayor in Assembler, I'm still far away from that.
For now it's more a shell, an interpreter if you prefere.

grtz
Binux is a Linux distribution with the aim of integrating the work of the vast community of free software developers at Pete's QBASIC Site in order to create a modern, performant, safe and easy to use system for system administrators and desktop users.
Reply
#26
When I hear "Linux" I think of the Linux Kernel. Which handles the communication between hardware and software. Without the kernel it is not an OS. You are not creating a kernel.. it's not possible to create a kernal in QBASIC. You need assembler.. which you yourself said you do not know.. and using that means you aren't using QB. So nyeh.

Call me when you make the kernel in QB. Then I'll be interested.
[Image: sig.php]
Back by popular demand!
I will byte and nibble you bit by bit until nothing remains but crumbs.
Reply
#27
okay, in plain english: I'm not making an OS, yet. I'm not really building a kernel. I'm copying some stuff from Linux to make it look like Linux, and feel a bit like Linux.

Linux isn't only C-either... no OS actually is, 'cause you'll always need ASM.

grtz
Binux is a Linux distribution with the aim of integrating the work of the vast community of free software developers at Pete's QBASIC Site in order to create a modern, performant, safe and easy to use system for system administrators and desktop users.
Reply
#28
Quote:If people are really serious about creating OS's, I'd suggest reading books by Andrew Tanenbaum. Linus Torvalds read and applied his concepts to create Linux, and Tanenbaum has an "educational" OS called MINIX.
I'll second that. I own copies of Modern Operating Systems and Structured Computer Organisation but Mr Tanenbaum, both books are very well written, easy to follow and provide a fairly extensive coverage of the subject matter. Another good OS book I have is Understanding the Linux Kernel by Daniel Bovet and Marco Cesati, its a little outdated now (covers the 2.2 kernel) but it explains how the various subsystems in Linux work at the source code level.

I'm currently tutoring a 2nd year paper in architecture/operating systems (was doing the 3rd year paper till they canned it :evilSmile at my University. A kernels only method of communication with the rest of the operating system is via the system calls (read, write, open a file, etc). Shells and GUIs are designed to sit between the user and the kernel in order to make the system human useable.

Quote:I'm copying some stuff from Linux to make it look like Linux, and feel a bit like Linux.
Possibly you mean that it will look like Bash which is a shell. Linux (the kernel proper) doesn't have a particular feel. It is entirely possible to create an operating system based on the Linux kernel which does not have the standard Unix filesystem layout or a text based shell. Look at what MacOS X does with the FreeBSD/Mach kernel for example.

Quote:In order to achive what your talking about, you'd need assembler and reprogram the DOS-interrupts, unless you'd be able to go all the way of Linux, use the Linux-boot stuff and run Qbinux on that... Since I'm trying to understand Linux some more, I started building Qbinux with real code from Linux (read translating c-code to basic where possible).
You can't just reprogram the interrupts, unless you just want to write new code which does the same thing. Pretty much everything in QBasic appart from basic math needs the runtime library, which relies on DOS. A language like C on the other hand doesn't require a runtime library, when writing a kernel in C you can't even link against the standard C library, if you need a function like printf or malloc then you have to write it yourself.

You will also have difficulty in translating Linux code to Qbasic since Linux makes liberal use of things like pointers, macros, arrays in structs, etc that QBasic is not capable of.

Quote:I have seen an OS which was made with mostly QB, and the bootthing was made with assembler.
Have you got a link? If the booting was done with assembler, then it was most likely (at least part of) a DOS implementation. Could this OS run programs? What format were the userland binaries in and what runtime library support was provided for them?

I don't want to seem discouraging but you honestly can't make a operating system in Qbasic. Kernel development needs a systems language such as C or Bliss. It is possible to write GUIs and shells in Qbasic, but that is not operating system development (win 3.1 was a front-end GUI for DOS for example). If you are interested in learning about kernel development then get one of the books mentioned in this thread. Linux is no longer a good operating system for learning about kernel development since it has become very complex. A good operating system to start with would be Minix, it is small, easy to understand and implements a large amount of standard Unix functionality.
esus saves.... Passes to Moses, shoots, he scores!
Reply
#29
Out of curiosity, how much is FB dependent on run-time libraries?
quote="Deleter"]judging gameplay, you can adaquately compare quake 4 with pong[/quote]
Reply
#30
Code:
-r             Do not delete the asm file(s)

Besides that, the source is readily available. Check out FreeBASIC/src/rtlib/ sometime...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)