[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FinnOS Design Notes, was Re: FocusDrive and Interrupts



On Nov 4, 11:50 am, dog_...@macgui.com (D Finnigan) wrote:

> I'd imagine the first testing of the context-switching will be three
> programs: one printing an A to screen, the second a B, and the third a C.
>
> So if I see some output like:
>
> A
> B
> C
> A
> B
> C
>
> Then I know that it's working. :-)

That'll work, but note that most OS's have a buffer size > 1 for IO
streams ;-)

> > (although, believe me, interrupts and aux memory can drive you nuts).
>
> Did I mention that I'm using an unehanced IIe? I should probably upgrade.
> :-)
>
> > Also, you should put a great deal of thought into the tools you want
> > to build the system with.
> > It doesn't have to be a technical decision,
> > either.  Sometimes part of the challenge is to use tools of the day
> > and develop directly on the Apple II.
>
> Right now, I'm using what I've already got available, and that's a slightly
> older version of Merlin. I've got both the DOS 3.3 and ProDOS versions. I
> have been using ProDOS. ;-)
>
> Which reminds me, I need to talk to Rich and ask him about his work on
> getting ProDOS CLI to work from the AUX banks.
>
> > However, modern tools can
> > vastly improve your productivity; if you don't have an excessive
> > amount of free time on your hands, that should be a consideration.
> > Don't under-estimate the complexity of your project, you may want to
> > "cheat" in some areas to give yourself a better chance for success.
>
> Yes, I'm certainly aware that it won't be easy. I'm holding out for getting
> the core foundation done. I think that if I can get a solid start on it,
> building everything else will be easier.
>
> Imagine getting to Milestone 5:
>
> Milestone 5:
> - multiple users
> - swapping
> - TCP/IP
>
> Wouldn't that be fun? Remember, this would be swapping on to a FocusDrive
> (or similar) so it might not even be that bad.

Keeping in mind you'll only be able to swap an entire process in/
out... VM's that run (presumably) on top of your OS would be able to
implement their own swapping of course.

If we assume your OS kernel resides in main memory, requires some
'init' style process that is always resident ala Unix and resides in
bank 0 (which has limited utility to hold a user process due to
overloaded use of the text/graphics pages) and then loads some sort of
shell, you've still got 14 processes left to play with assuming the
simplest mapping of 1 bank == 1 process. More than enough to have a
great deal of fun without swapping ;-)

Your Milestones look OK, but I'd consider IO redirection and pipes as
part of your core design. You can do a great many things with just
dup, dup2, pipe, exec, and fork. Then all you need is to make the
console/terminal look like a file ...

Matt