ali@navajo.UUCP (11/23/86)
[] I'm currently taking a Networks class here at Stanford. One of the projects for the class is to implement a communications protocol on top of a simulator written in Pascal. The simulator essentialy provides all the "real-world" events and throws them at the communications software written by the students. These "real-world" events include timer interrupts, arrival of packets, host requests (to send packets down the net), etc. The simulator good enough, and you do end up learning some of the issues involved in writing communications software. But, of course, the simulator can only fake it so much --- In the end, you end up writing a program that responds correctly to the predetermined actions of the simulator, and everything is great. But, of course, you've only implemented the protocol, and as far as writing communication software goes, you're no better. My conclusion is, it would be great to write communication software in an actual multitasking environment. According to the prof, in his class notes, the best environment to write communications software in should include: 1. Multitasking. The I/O handler (which looks at the communications line and grabs packets), the communications software (which implements the protocol for communication), and the user tasks should all run independently. 2. Message passing. With multitasking, you need some means of interprocess communication. 3. Means of buffer passing between processes --- On machines where user tasks are in seperate address spaces, this is not too easy! 4. Being able to set priorities of tasks and being able to guarantee execution within a certain time period (to avoid dropping packets on the floor...). 5. Being able to set timers (for timeout processing, etc). The prof mentions that Unix is not a good OS for communication software development, as all communications software has to reside in the kernel. (Unprividleged processes cannot do most of the above.) Now, as I was reading through his notes, it occured to me that Amiga would be a great machine to do communication software programming on --- No, not real TCP servers or anything like that, but educational communication software development. Amiga is multitasking, has message passing, has a single address space (so interprocess buffer-management is no problem), and allows you to set priorities to any level you want (even above that of the OS routines), etc... And, on top of all this, it has all the great graphics you would need to create the most beautiful (and dynamic) monitoring screens you might want. Anyway, I want to send a message to the prof telling him all this. Now one can get an Amiga for $999, extra 256K for $100, and an extra drive for $200. Most necessary software is available public domain, but one would need to get C compilers (probably at some educational discount), and some games (every lab needs some games). Seems like for the price of a couple of Suns or some Vax one could fill up a lab with Amigas! Does anyone have any thoughts about this? Am I overlooking some obvious (and not so obvious) things that would make the Amiga inappropriate for such use? Seems like *such* educational use is one place where the other machines costing about the same (like the Mac or the PC) have no hopes of competing with the Amiga. I'll appreciate any comments or suggestions. Also, if anyone has done the above (ie, using the Amiga for Networks or OS classes), I would love to hear about it. Ali Ozer ali@score.stanford.edu, ali@navajo.arpa