From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [9fans] General question about hosted interfaces From: geoff@collyer.net To: 9fans@cse.psu.edu MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Message-Id: <20010711103254.A29FC199DD@mail.cse.psu.edu> Date: Wed, 11 Jul 2001 03:32:53 -0700 Topicbox-Message-UUID: c5429d4c-eac9-11e9-9e20-41e7f4b1d025 I'm no fan of USB, but it seems closer to what you want than SCSI. In fact, though, SCSI disks (for example) from different vendors do just seem to plug in and work. Admittedly adding support for a new class of SCSI device is more work (unless you just punt the whole problem to scuzz, and thus largely to the end user). But the peripherals themselves (or classes of devices) aren't the big problem, at least for SCSI or USB, it's the interfaces (controllers, host adapters, whatever) themselves, at least in the wonderful world of unstandardised PCs. Plan 9 has drivers for the PCI Buslogic/Mylex and NCR/Symbios/Tekram SCSI host adapters, but not the PCI Adaptec or any of the lesser known ones. And as far as I know, there are at least two USB interfaces already (logically different and using incompatible chip sets: UCHI vs OCHI and Intel's chips vs Via's). Our biggest headache is VGA cards, which seem to have shelf lives of a few months, and Ethernet cards, which are beginning to have shorter shelf lives (can you still get FA310s?) but which fortunately mostly just reuse a few Ethernet chips (or emulately them inaccurately). So to have a relatively stable peripheral environment one would need to (somehow) standardise buses (internal and external), controllers and their interface protocols, and the protocols between the controllers and the actual peripherals. But then the world would change around us; people want greater speed or utility (Shrug and Pray on live systems seems to be the only compelling reason for USB over SCSI). In the decade or so, the PC has been through ISA, EISA, PCI, AGP, PCMCIA and Cardbus buses (among others), and PCI is certainly an improvement over ISA. We've seen IDE/ATA get less stupid (real DMA, what a concept!), SCSI get faster, USB get invented and then get faster (to the point of being more than a toy). Ethernet has gone from 10Mb/s to 100Mb/s to 1GB/s and I believe the 10GB/s committee is already at work. And it's all gotten smaller and cheaper. Microsoft try to influence the design of PCs with their periodic standards (e.g., PC98), but they don't have very good taste in hardware. I'm not sure who else has the influence or power to enforce hardware standards, since nobody is in charge of the overall PC architecture. I cope by stock-piling cheap supported controllers and trying to simplify hardware configurations. For CPU servers and terminals, booting off floppy lets you avoid local disk entirely if you have enough RAM, so Ethernet should be the only real pain for CPU servers. There are several cheap supported cards out now; the NetGear FA310 is a 2114x, but watch out that the 311 and 312 are not. For terminals, there's VGA Hell to be suffered. The ATI Xpert 98 cards were good for a while, but now it's hard to find any of them that don't have the Rage XL engine, and we don't have support for those currently. It appears that the Nvidia TNT2 M64 situation is getting sorted out. All of this is in part why I'd like to get an Ipaq (bitsy) when (if) they stop being so scarce. It's got a processor that Intel didn't design and it looks like the only Intel PC goo in it is a PCMCIA controller and the flash memory. No wretched Intel interrupt controllers, no red-hot glowing CISC processor, no IDE cretinism, 001 USB controller, 001 video interface. 38,000 lines in /sys/src/9/pc/*.c vs. 11,700 in /sys/src/9/bitsy/*.c. Amazing what you can do when there's someone in charge to tell the sleazier hardware designers, `no, you can't save 5 cents per unit by omitting DMA, making the software swap the bytes, and leaving out a boot ROM so that the user has to type in the boot program in hex on the serial port at every boot'. I'm skeptical about the bitsy's suitability as a terminal, but it might make a fine CPU server since it's got what matters: a reasonable CPU, a lump of RAM and an optional PCMCIA network card (Wavelan currently).