Forums before death by AOL, social media and spammers... "We can't have nice things"
|    alt.os.development    |    Operating system development chatter    |    4,255 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 2,409 of 4,255    |
|    mutazilah@gmail.com to James Harris    |
|    Re: microsoft vs linux    |
|    03 Jul 21 02:14:58    |
      From: muta...@gmail.com              On Saturday, July 3, 2021 at 6:03:24 PM UTC+10, James Harris wrote:              > Then I cannot see the problem. If you produce pdos_write you can have it       > invoke whatever OS functions are needed - including invoking code in       > your own OS - in whatever ways are needed so there would be no need for       > a software interrupt.              Correct. There is no problem. I was just highlighting the       same thing you highlighted with your own code - for       some reason both of us ended up with Windows       executables that were totally clean, no INT instructions,       and both of us ended up with dirty Linux executables,       that contain INT instructions.              Now that I know that it is apparently possible to move       the INT instructions out of a Linux executable, I know       that Linux can be made clean too.              I'm not sure your choice of write() is correct though.       That is a library function which may be statically linked.       What is important is whether write() calls __syscall_write()       or whatever that is vectored in from the parameter after       envp rather than doing an INT 80H.              > > (or probably even better, a UEFI-like       > > library provided at program entry), all is fine.              > It's best to avoid reliance on both BIOS and UEFI as neither is       > universally available. You will have less dependence on certain hardware       > if you can decouple your OS from both of them.              You missed my point above. My point was that UEFI       provides a parameter to the executable at startup       rather than using INT instructions like the BIOS, or       Windows-style DLLs.              Putting that aside, I agree that a bios-equivalent       layer should exist between the hardware and the       OS and it shouldn't be exactly bios or exactly UEFI.              In fact, I believe it should simply be a C90 library!       If you're going to have an API anyway, why not make       it use identical function names to C90? There is       still adjustment required because you won't be doing       printf() directly, it would be nonbios->printf() etc.       I have proof of concept of that already in PDOS in       the "bios" directory.              > If possible, just use them to get your OS started.              Ok, I disagree with this. The BIOS/UEFI exists to give       you the hardware independence. I don't think an OS       should directly access the hardware, and I don't think       MSDOS does. So the nonbios layer above should still       call one of bios/uefi.              Is that a problem?              If it is a problem, then I think the proper solution is to       buy a computer that can have SeaBIOS flashed, and       make any required adjustments to SeaBIOS rather than       compensating for manufacturing deficiencies in the       OS.              At least, I think we, and Apple, have this luxury. Microsoft       probably needs to compensate for BIOS deficiencies, as       the manufacturer is relying on that in some sort of       symbiotic relationship. That's just speculation though.              > Perhaps pdos_write should not include an INT instruction. The call flow       > could be       >       > app --> pdos_write --> write handler       >       > where the write handler is called, if necessary, by pdos_write in order       > to do whatever is needed to effect a write. What it would do would       > depend on the facilities of the machine, and you'd have a write handler       > for BIOS, a write handler for Windows, a write handler for Linux, a       > write handler for Amiga, etc. Then your pdos_write - and hence any app       > which uses it - would work on any of them, though you'd need to supply       > the different write handlers.              It is my intention that with the C90-like non-bios I mentioned       above, that the non-bios would simply translate a nonbios->printf       into an actual printf provided by whatever C compiler/library was       being used on some arbitrary host like AmigaOS.              Note that with AmigaOS in particular there is not any real       option of replacing AmigaOS. I have to run PDOS       (which will be Amiga-PDOS) under it. There is no problem       presenting a C:\ prompt to the user, but the C drive will       simply be a flat file up to 2 GiB that is accessed by the       standard non-bios Amiga OS C program.              There is also no problem providing a FAT file system (on       that emulated disk), and no problem calling my executables       fred.exe or whatever.              But fred.exe would be an almost-standard AmigaOS C program.              I say almost-standard because I can only run programs that       are aware of the D7 extension that provides an override to       address 4. Because AmigaPDOS will not have access to       address 4. That is owned by AmigaOS.              All PDPCLIB-based programs are D7-extension-aware.              But as usual, currently I believe ONLY PDPCLIB-based       programs are D7-extension-aware. :-)              The D7 extension was thrashed out with people over on       an Amiga forum. They weren't particularly impressed, but       they did help me select a register and explain why that       one was most appropriate for what I was trying to do.              BTW, it was only over on the Amiga forum where someone       explained to me that the BIOS exists to abstract the       hardware. And it was only there that I learnt about address       4 on the Amiga, and a different way of obtaining OS       services. Before that it was always INT/SVC/trap for me.              I did know about z/OS Unix having pointers in the CVT,       but for some reason that didn't have the required impact       on me.              It is the Amiga that got me to come up with PDOS-generic       and nearly abandon PDOS/386. I literally did abandon       PDOS/386 - I told a Slovakian that he could do whatever       he wanted in "src" - I had lost interest in it. But later I       realized that there was no harm continuing it until       conclusion before refocusing on PDOS-generic.              PDOS-generic should run under PDOS/3X0 and       PDOS/386 (and Windows and Linux) while waiting       for a more sophisticated non-bios to be loaded as       part of the PDOS/386 boot sequence on real       hardware.              BFN. Paul.              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca