flat assembler
Message board for the users of flat assembler.

Index > OS Construction > pure data drive

Author
Thread Post new topic Reply to topic
edfed



Joined: 20 Feb 2006
Posts: 4330
Location: Now
edfed 31 Dec 2010, 03:45
an idea cross my mind.

why not consider a disk as a linear file?

then, it will be only a data drive, a linear adress space limited to the size of the drive, from 1.44M floppy to 500GB drives, and files.

all that in order to manipulate files as drives, and drives as files, then, unify the memory management, because file will also be a memory zone, a segment, or else, but always starting at a predefined offset (org 100h, org 7c00h, org 0,...), and loaded in a random place in ram.

ram too can be considered as a drive, or a file.

then, the unification is needed to do something that can rocks.

i am trying to generate a disk image with fasm, something including the file system, and the file contents, linearily, then, it will be a file, accessible with an index.

the way to compute this index will be the nature of the item (drive?, file?, ram?, ..?)

the function that will manipulate the item can be anything, in any calling convention.
for example, DOS int 21h subvector creation.

for the moment, i have a "working" virtual int13h extension that let me manipulate 1.44M floppy and hard drive images as int13h stuff, but for the moment, it needs DOS, later it will use directlly zones from hard drive, or entry in a custom file system...
Post 31 Dec 2010, 03:45
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20299
Location: In your JS exploiting you and your system
revolution 31 Dec 2010, 03:52
I think it is important to keep that various storage devices separate, especially RAM to be kept separate from others. This is for performance reasons. HDDs are very very slow. RAM is very very fast. Doing a data move from X to Y could either be really quick with RAM page table remapping, or really slow with some external storage device, so knowing the underlying medium of storage is important. Also how would you execute code directly from a 1.44MB floppy? You still need to get it into RAM.

What about data that gets split across two or more different devices? If the program is not aware where things are going then problems could occur if you want to swap devices in/out of the address space.
Post 31 Dec 2010, 03:52
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4330
Location: Now
edfed 31 Dec 2010, 04:00
of course devices are separates, the goal is first to let me play with files only, then, instead of working on real drives, i will work on files, instead of working on real ram, i will work on files.
and let do the reverse way, in fact, the triangle RAM DRIVE FILE will be free.
then, it will of course be possible to do... file manipulation with a ram zone.
or manipulate ram via, hard drive.

but the first to do is the [disk <> linear adress space <> ram <> file] bridge.
Post 31 Dec 2010, 04:00
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< 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-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.