Message board for the users of flat assembler.
> OS Construction > pure data drive
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...
|31 Dec 2010, 03:45||
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.
|31 Dec 2010, 03:52||
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.
|31 Dec 2010, 04:00||
< Last Thread | Next Thread >
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.