flat assembler
Message board for the users of flat assembler.

Index > OS Construction > new contest of the contest of the new year?

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
dosin



Joined: 24 Aug 2007
Posts: 337
dosin 03 Jan 2010, 19:52
Quote:
It's really similar? Can load ELFs, modules, gunzip everything, supports different filesystems such as FAT12, ext2 or iso9660? Cool


I have not tested on my linux system yet... and probable wont.. For what it is writen for - is my OS and MS systems.. as duel boot..


I have no need for:
modules
load ELFs
modules
gunzip everything
ext2 or iso9660

but they could be added if needed.. but for my purpose - it is not..

I used grub for a while and never needed to use any thing other than duel booting - MS and Linux / my os off floppy..

as I said :
would install and work (simular) to grub ...
I will add this to help:
as a duel bootloader for hd or floppy... Very Happy for MS systems and my OS!
Post 03 Jan 2010, 19:52
View user's profile Send private message Reply with quote
XanClic



Joined: 06 Sep 2009
Posts: 16
Location: Germany
XanClic 03 Jan 2010, 20:52
dosin wrote:
I have no need for:
modules
load ELFs
modules
gunzip everything
ext2 or iso9660

Yeah, but those are exactly the things I love about GRUB. I don't use ext2 right now but I plan to do. And when it comes to live CDs, I'll also use iso9660. My kernel is an ELF (because ELF is the best format on earth Mr. Green). Microkernels would need modules, I don't write microkernels but I use modules to load an initrd or some programs without having to support a real filesystem. And gunzip - yeah, think for the initrd: If I want to put a floppy disk image on a floppy disk, I need to zip it. Wink

And that's all stuff that makes GRUB a really great bootloader. I don't want to say your bootloader wasn't hard work or a good thing, but you said:
dosin wrote:
but would not be hard to recreate in Fasm...

And that's simply not true. GRUB is a sophisticated thing. It would be very hard to recreate it, in my opinion. Smile
Post 03 Jan 2010, 20:52
View user's profile Send private message Visit poster's website Reply with quote
dosin



Joined: 24 Aug 2007
Posts: 337
dosin 03 Jan 2010, 22:21
Quote:
And that's simply not true. GRUB is a sophisticated thing. It would be very hard to recreate it, in my opinion.


yes - some of those would be hard.. but each one of those could be an addon or a module that could be loaded by mine... That way you could add the features you want during install or after.. So if someone wanted to add they could.. I may consider this as a feature in my loader! Wink
Post 03 Jan 2010, 22:21
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4353
Location: Now
edfed 05 Jan 2010, 16:56
hello again, i need a sort of PM forum or a chat to discuss rules with personns interrested in that.

or you can help in rule definition on this topic.
then, when it will be defined, i will post another topic.
flat assembler>os construction>OS contest rules

i have many points to abord before to let it go!
Post 05 Jan 2010, 16:56
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4353
Location: Now
edfed 06 Jan 2010, 12:27
i have an idea, provide a very simple template code containing:

boot.inc
boot sector that will load system

system.inc
irq handlers
basic system functions
memory mapping/managment
load gui

gui.inc
graphix
text
cmd



in my opinion, all this code can fit in less than 8 kb when compiled.

please submit your idea.
Post 06 Jan 2010, 12:27
View user's profile Send private message Visit poster's website Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 06 Jan 2010, 20:48
XanClic wrote:
dosin wrote:
I have no need for:
modules
load ELFs
modules
gunzip everything
ext2 or iso9660

Yeah, but those are exactly the things I love about GRUB. I don't use ext2 right now but I plan to do. And when it comes to live CDs, I'll also use iso9660. My kernel is an ELF (because ELF is the best format on earth Mr. Green). Microkernels would need modules, I don't write microkernels but I use modules to load an initrd or some programs without having to support a real filesystem. And gunzip - yeah, think for the initrd: If I want to put a floppy disk image on a floppy disk, I need to zip it. Wink

And that's all stuff that makes GRUB a really great bootloader. I don't want to say your bootloader wasn't hard work or a good thing, but you said:
dosin wrote:
but would not be hard to recreate in Fasm...

And that's simply not true. GRUB is a sophisticated thing. It would be very hard to recreate it, in my opinion. Smile


DexOS is written in fasm and is very simular to GRUB, it supports all fats and iso966, and many file formats, com, bin, pe, coff, exe, dex, gex, zip, jpg ,gif, bmp, png, as both cli and gui.
And as a full module interface, so anything could be added.
It can also be loaded from Dos, and it can run fasm and as full tcp/ip stack, usb stack.
Can call most bios int from Pmode.
Plus its less than 64k
So it could easy be made into a fasm GRUB if wanted.
Post 06 Jan 2010, 20:48
View user's profile Send private message Reply with quote
egos



Joined: 10 Feb 2009
Posts: 144
egos 07 Jan 2010, 05:16
edfed wrote:

in my opinion, all this code can fit in less than 8 kb when compiled.
What are problems with more large size module? In my kernel only font bitmap occupies just 8 kb Smile
Post 07 Jan 2010, 05:16
View user's profile Send private message Reply with quote
dosin



Joined: 24 Aug 2007
Posts: 337
dosin 07 Jan 2010, 06:56
Quote:

DexOS is written in fasm and is very simular to GRUB, it supports all fats and iso966, and many file formats, com, bin, pe, coff, exe, dex, gex, zip, jpg ,gif, bmp, png, as both cli and gui.
And as a full module interface, so anything could be added.
It can also be loaded from Dos, and it can run fasm and as full tcp/ip stack, usb stack.
Can call most bios int from Pmode.
Plus its less than 64k
So it could easy be made into a fasm GRUB if wanted.


Once the new version is out I may give it a try!
would be kind of cool to see what I can come up with!
Post 07 Jan 2010, 06:56
View user's profile Send private message Reply with quote
XanClic



Joined: 06 Sep 2009
Posts: 16
Location: Germany
XanClic 07 Jan 2010, 09:44
Dex4u wrote:
So it could easy be made into a fasm GRUB if wanted.

I said it's very hard, but you're known to solve hard problems, aren't you? Very Happy
Post 07 Jan 2010, 09:44
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4353
Location: Now
edfed 07 Jan 2010, 14:27
egos wrote:
edfed wrote:

in my opinion, all this code can fit in less than 8 kb when compiled.
What are problems with more large size module? In my kernel only font bitmap occupies just 8 kb Smile


it is not a problem, but as a TEMPLATE, a very little file is prefered.

i precise, the tEMPLATE should not be an os, but only the needed functions and datas to build an OS.

TEMPLATE with Clike functions
an other with dexos like functions
an other with stdcall func.
etc
and then, we have at least 64k-8k to play with.

a bitmap font cannot take more than 16*256 bytes.[8*16 pixels] (4kbytes)

mine are only 6*256 bytes [8*6 pixels] (1.5kBytes). i have 3 bitmap fonts (normal, lcd like, game like) and one vector font.

vector font is a bit different as each char will use a variable amount of bytes.


i should precise, this contest is not a contest about existing os.
but a contest for a new type of OS.

then, dex can use his lib, but not DEXOS as a template and maily because 64k of source code is too big for beginners. ( me too i feel unconfortable ot dive into dex source as it is too big.)

for me (FOOL) the problem is not there because i only have a template of my OS. but i think it is very hard for beginners to understand.
it takes 40 k of ram for lib and fonts.
thats why i cannot use it as a template for this contest, because it is too big.
i will then do a light weight version of FOOL, with a syscall like convention or something like this.

[memory map]

07c00 boot sector (reboot location)
07E00 boot shadow

10000 lib (template)
18000 OS

20000 to 9ffff user space

a0000 to bffff screen memory

c0000 to fffff reserved.

100000 to FFFF FFFF extended memory (including vesa frame buffer, sb memory, etc...)



when you see this memory map, you can see that the lib and the kernel will share the same 64k block.

you will see that lib and kernel should be 64k maximum.

then, the template should be little regard to the 64k block.


and the template should be VERY easy to read and understand for BEGINNERS.

another goal of thios contest is to simplify beginners OS construction.



then, too types of entryes will be accepted:

TEMPLATES (library ready to use for OS construction)

OSes based on templates.


thats all for the moment.


-what to remember:

then, the bootloader should fit in 512 bytes, be in real mode only, and load a 64 k file from disk to ram at 1000h:0 as a kernel + lib.


as a start for kernel, i propose a loop that ends with a keystroke, restore bios environment (INTs, data structures)

return to boot shadow that will (display a message to) choose the new boot, load it at boot sector, and jmp to it.

your original system should start without any undesired effect
Post 07 Jan 2010, 14:27
View user's profile Send private message Visit poster's website Reply with quote
Dex4u



Joined: 08 Feb 2005
Posts: 1601
Location: web
Dex4u 08 Jan 2010, 06:00
Post 08 Jan 2010, 06:00
View user's profile Send private message Reply with quote
bitshifter



Joined: 04 Dec 2007
Posts: 796
Location: Massachusetts, USA
bitshifter 08 Jan 2010, 07:33
I have started a Mini-DOS clone "In Color" Razz
But instead of emulating int21 i provide a farcall system API for COM proggy's.
Post 08 Jan 2010, 07:33
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4353
Location: Now
edfed 08 Jan 2010, 08:24
ok for minidos as a template for DOS like os.
then, every entries should use at least one compatible executable format of minidos.

the source is clean.
there are very few files, smartlly organised, then...
it folows the (my) rules for this contest.

its good to have the first type of template for this contest (if you are agree of course).
Post 08 Jan 2010, 08:24
View user's profile Send private message Visit poster's website Reply with quote
egos



Joined: 10 Feb 2009
Posts: 144
egos 08 Jan 2010, 10:11
edfed wrote:
i precise, the tEMPLATE should not be an os, but only the needed functions and datas to build an OS.
syslib?

Quote:
a bitmap font cannot take more than 16*256 bytes.[8*16 pixels] (4kbytes)
And what about 16*512 bytes? Wink

Quote:
i should precise, this contest is not a contest about existing os.
but a contest for a new type of OS.
Maybe you try to make ordinary OS at first.

Quote:
20000 to 9ffff user space
And what about EBDA? Will it be destroyed?

Quote:
and the template should be VERY easy to read and understand for BEGINNERS.
Let beginners read the books and learn the really used sources.

Quote:
another goal of thios contest is to simplify beginners OS construction.
To simplify or to make it primitive?


Quote:
TEMPLATES (library ready to use for OS construction)

OSes based on templates.
Different environments based on different kernels?

Quote:
return to boot shadow that will (display a message to) choose the new boot, load it at boot sector, and jmp to it.

your original system should start without any undesired effect
Who does load boot shadow? Maybe it's better to hide it under EBDA. This is allow to make your boot code and "OSes" more flexible as they are in real time.
Post 08 Jan 2010, 10:11
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4353
Location: Now
edfed 18 Jan 2010, 18:40
egos wrote:
edfed wrote:
i precise, the tEMPLATE should not be an os, but only the needed functions and datas to build an OS.
syslib?


Quote:
a bitmap font cannot take more than 16*256 bytes.[8*16 pixels] (4kbytes)
And what about 16*512 bytes? Wink

Quote:
i should precise, this contest is not a contest about existing os.
but a contest for a new type of OS.
Maybe you try to make ordinary OS at first.

Quote:
20000 to 9ffff user space
And what about EBDA? Will it be destroyed?

Quote:
and the template should be VERY easy to read and understand for BEGINNERS.
Let beginners read the books and learn the really used sources.

Quote:
another goal of thios contest is to simplify beginners OS construction.
To simplify or to make it primitive?


Quote:
TEMPLATES (library ready to use for OS construction)

OSes based on templates.
Different environments based on different kernels?

Quote:
return to boot shadow that will (display a message to) choose the new boot, load it at boot sector, and jmp to it.

your original system should start without any undesired effect
Who does load boot shadow? Maybe it's better to hide it under EBDA. This is allow to make your boot code and "OSes" more flexible as they are in real time.




*YES, if you want to name it syslib, it will be SYSlib

*as you want. the important is to have something that works.

*of course it is ordinary os for the begining. evolution will bring them power and interrresting features.

*EBDA, i don't care, do what you want with it.
in my case, i don't modify it, because 090000 to 9F9FF is the frame buffer, and the rest is not used. EBDA is at 09FA00

*i don't see why beginners cannot use a future template form this contest.

*simplify AND make it primitive.
reduce system functions to the minimal set.

*different environment based on different kernels, but WITH at least ONE common executable format support:
.COM (ORG 100h)

*the fact that bootsector is relocated is simple to understand, it allow to reboot gfrom a boot sector from any drive, without any problem.




OF course, to the rules, it is forbiddent to modify any reserved (used by BIOS) memory, only normal useage of theses zones are allowed
set a new INT vector and restore old vector,
direct to screen memory,
bios code reading (for example with a disassembler)
EBDA can be included in the list if you want.



field updated by BIOS ints can be ignored if you write your own int handler
example, keybaord ring buffer in BDA.


one question, can i include my entry?
finally, i decide to submit fool as my template.

then everybody can propose his advanced work (dexOS, menuetOS, octaOS)
but with a template

my entry will be named "Bones" (OS in french means bone, bones)
Post 18 Jan 2010, 18:40
View user's profile Send private message Visit poster's website Reply with quote
bitshifter



Joined: 04 Dec 2007
Posts: 796
Location: Massachusetts, USA
bitshifter 19 Jan 2010, 00:10
For many people to participate the template should be simple
and the more rules there are the more people will walk away...
We all have our own idea on how OS should be and none the same.
That why so many of us have written their own OS from scratch.
I dream of flexible OS which can do anything with small changes.
Like the dream of DexOS but with MultiTasking among other things.
Post 19 Jan 2010, 00:10
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4353
Location: Now
edfed 19 Jan 2010, 02:21
and for this, a contest with simple templates from the version of everybody is a good thing.

if i participate (post a .zip file here), it will not be the very big FOOL.ZIP file, but a light weight version.
very light weight.

just boot, refresh screen, node, disk,timer,key,txt,asm and a little function list,

a very little os that will load a .com, and when return from, let choose another program, as dos, but very different.

an evolution will be to do multitasking, even in real mode, using irq0 to switch tasks.


to participat to this contest, your code should be posted in this thread as a .zip file
any code is welcome.
Post 19 Jan 2010, 02:21
View user's profile Send private message Visit poster's website Reply with quote
bitshifter



Joined: 04 Dec 2007
Posts: 796
Location: Massachusetts, USA
bitshifter 19 Jan 2010, 06:12
My idea for CLI based kernel is in my x3dos demo...
http://board.flatassembler.net/download.php?id=4742
It was going to be my Micro-OS contest entry, but i never uploaded it...
I also study KVP's nanoos2 for 16bit irq based multitasking Smile
But for serious apps we need 32bit multitasking, even round robin ring0 is ok.
Im making 32bit multitask but still my scheduler need to be coded...
Very soon i hope to have same simple round robin ring0 scheduler.
Post 19 Jan 2010, 06:12
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.