Welcome to my THE PLATFORM.
You are the whatever? visitor to
my home page!
Joel's Operating systems page.
I thought I'd better type this stuff in, so when I tell people about `my'
operating system idea, I can tell them to read the web page, and not go through
it thousands of times.
Well, anyway, my operating system is basically an assembler, or cross assembler
which uses a script file (that I call a Virtual Machine Specification) to
translate from a universal Object Oriented Assembly language, into the language
of the machine it is running on. The entire of the operating system is written
in this Virtual Machine language, and objects (devices drivers, schedulers,
memory managers, etc) my be loaded/run or unloaded at any time.
So, for example, you could start off with a completely unprotected machine,
where the kernel is basically a protected mode setup shell, then load up
an object which implements protection, and run a program under it, then
exit the program, and unload the object, to return to a completely unprotected
environment. A program may be run in a virtual console, then you may run a
window manager object (which itself runs in a virtual console) and place the
original program in a window, on the window manager's console.
So much for the fantasy - this is my goal, so all attempts have been made to
realise it Theoretically - hopefully, once written, it will be infinitely
extensible, and be able to do all of the above from a user's point of view.
I have worked with the idea of This OS working as an operating environment
under another operating system as well - making the programs created truly
portable (at a binary level - that's the goal), allowing you to develop
across all platforms at once, keeping your speed up in all of them.
Games (or real-time graphical applications, as I call them) would be the test
of this system. It should be portable for fast action games - hopefully
utilizing the idea of programming by Method rather then Code/Procedure.
Topics which I will write up later ;
(a) basic assembler kernel.
(b) assembly language information (OOA - Object Oriented Assembler)
(c) Virtual Machine Specifications (VMS)
(d) Using VMS' for hardware description - hardware abstraction layer in kernel assembler level.
(e) Implementation in stated platforms (below) experience.
(f) problems so far - bugs, unknowns, to be researched furthers.
(e) GUI development tools.
The platforms I hope to develop and test this under are the following OS/
hardware/formats/etc ;
OS - Should run as stand alone from disk or Hard drive, as well as under -
MSDOS with pmode loader and Win95. Hopefully Linux, WinNT and OS/2 as
well.
Hardware - The VMS covers hardware as well (microprocessor is considered
a special case of hardware in the VMS) - i386, i486, Pentium, as well as
hopefully one other processor (68K, R4000, Alpha, or PowerPC) with I
hope, 64 bit operation, to test the portability of the system. Graphics
hardware - VGA Mode 13, VGA 16 colour modes, VGA Mode X, VESA SVGA,
specific SVGA drivers, and accelerated SVGA (last two are I hopes).
I/O - Keyboard, mouse, joystick, printer, modem and Network cards (I
hope. Sound - Sound blaster and Gravis ultrasound. maybe pc speaker,
and other sound cards - depending on if anyone I know has them !
Disk Drives - IDE and SCSI (I hope) as well as floppy disks (3 half,
5 and quarter).
Formats - The VMS covers file formats as well - thus `drivers' can be
written for file formats - and I'm working on a form of automatic
conversions, called connectors, which can pass files around for
conversion until the needed format has been produced.
Graphics formats - JPG, PCX, BMP, GIF2, PNG (last couple are I hopes) plus
some made up ones (good adult statement - made up ones). Sound files
formats - WAV, VOC, MOD, MIDI (?), S3M, XM. Text formats - TXT, Word 6
(I hope, if its not proprietry) RTF (again), HTML, Postscript, TeX
(or whatever it uses). Compression file formats - ZIP, ARJ, LHA, plus
some ... made up ones, specific to the OS needs - assembly language
compressor - that sort of thing.
Okay, that's all I feel like writing for now. I'll link various things, and
write more later. But for now ... mail me at
joelu@oocities.com
and tell me if you're interested/what you think/want to help/and suggestions/
ideas/not intelligent enough to understand/too intelligent to bother/bored/
like typing/want to meet new people/think I'm stupid/want to flame me.
All flames will be kept in a special place for future reference. If the OS
ever gets big, all your names will be implanted in its core, and if you
run it, your hard disk will be rendered unhappy. He he he.