On Fri, 26 Mar 2004 13:13:03 -0300, Flyguille wrote:
El MNBIOS está diseñado para aprovechar el mayor potencial
posible del hardware de la norma MSX y mediante este marco
de hardware compatible preever total expandibilidad para el
futuro sin estar atado a chips singulares que ya no se ubican
en el mercado. Siendo una ideal plataforma para los
desarrolladores de nuevo hardware sin mayores esfuerzos en
la implementación del firmware porque no lo necesita abaratando
costos al mismo tiempo.
In other words, you are recreating the MSX original BIOS, which
was created with these same objectives?
If I could ever say something, it would be: do not mix things.
One thing is the basic input/output system. Another thing is a
graphical interface and a third thing is an Operating System.
Mixing them will do no good not for exapandability, nor
compatibility nor efficiency...
Usually mixing these parts seems to bring a performance
improvement, but it only does at the cost of throwing the
flexibility (and efficiency for uses not previously thought of)
into the trashcan.
What I am saying is not new. What I'm saying is the only
reason why many programmers simply choose to ignore that
MSX ever had a BIOS!
Just to remember some concepts:
- a BIOS is an abstratcion layer on the hardware, so the software
running in the system must not know every detail about the hardware.
This targets expandability and simplify the program writing. On the
other hand, no matter how good your BIOS is, it will always decrease
performance in many cases. Also, a BIOS avoid full hardware
exploitation, limitating the hardware use to those situations the
BIOS creator was aware of.
- An Operating System is something that runs on the system and manages
its resources, simplifying the program writing. Many "read-to-use" features
may be added at this level, but its primary target is provide a "friendly
environment" to the program and the programmer. Again, many times this will
decrease the performance... but when we talk about multitasking (which
means resource-sharing) this can improve the performance of the system
in the overall (since you do not have to wait the system to print a documment
so you can read your e-mail). An operating system usually include its own
version of *System BIOS* functions (not attached boards)... for speed up
(monolithic) of for portability sake (microkernel). However, this pratice
will tie the OS to a specific hardware, requiring software rewriting if
new (incompatible?) hardware is presented.
- A Graphical User Interface is something much, much more complicated
than just showing graphical images and windows. Usually it means a GREAT
overload on the OS, because it must manages its own graphical processes,
because it must manage the screen output also, creating virtual screens so
every application can act as it were running alone in the system. Also, a
GUI is a message oriented environment, and thus a GUI must provide at
least a Single Input Queue, so processes and threads could exchange data.
Why had I spent so much time writting this? Everyone knows what I
wrote about. It's common knowledge. But I had wrote because one thing:
I was not able to define WHAT is MNBIOS.
If it is a BIOS, it should not manage graphical presentation the
way you describes. If it is an Operating System, then your objectives
cannot be too different from UZIX, even if you do not like POSIX (like
me)... which is to make EASY to develop and ... portability is just
one of the faces of expandability. If it is a Graphical User Interface,
what the hell! Why are you talking with the low-level hardware?
Anyway, the important topic is: why not mix the three levels? Because
they work better in separate layers. If they are well designed, a
programmer can use the level most suits his needs... what level
gives him the better performance and flexibility. The programmer can
CHOOSE, it makes the system more flexible... and flexibility is the
key feature for success! (well, not always... =^)
Well, I think you shall continue your project. It's a good project
and everything. I just do not think it is the "panacea" - no software
had ever solved the world... and never will.
Because the world has a magnific property:
It always change more than any of us could ever expect.
This is why life is so... nice! (^=
My best wishes,
[]'s
Daniel Caetano