1988: hard drives connect to computer via expansion cards
1996: hard drives connect to computer via lasagna
2004: hard drives connect to computer via spaghetti
2012: add-on cards are hard drives
2020: whatever, just shove everything in the RAM slots
2028: the power cable is now a hard drive
@flussence for a fun related subject, realise how many things SCSI can be tunneled over and how many things which can be run over SCSI
@sam I hate every USB thing that's appeared in the last 10 years but I admit it's an improvement over the state of parallel SCSI
@flussence SCSI is a funny technology because it occupied both the enterprise and consumer space (disks, scanners); it got replaced with USB for the consumer uses but stuck around for the enterprise ones
@flussence however the USB Mass Storage device class actually uses the SCSI command set, except they buggered it up so that you can only use a subset of the SCSI commands (much like ATAPI did). so then they had to make UAS as basically a MSDv2. But both are SCSI.
@sam oh right. I was wondering why they needed two similar things for USB, guess they needed something known to actually work in order to get full line speed with USB3.
@flussence USB is kind of a fractal of mediocre design. not bad design. just mediocre design. here’s another fun fact: AFAIK, a USB hub will broadcast downstream traffic to all ports. no, it’s not packet switched. this means if you have a malicious USB device attached to a USB root port via a hub, it can see any traffic sent from the host to any other USB device on that hub. (but upstream traffic only goes to the host.)
@sam tbh I'm suspicious of any Intel-designed standard nowadays, retroactively. They're a living example of "fast, cheap, good, pick 2".
@flussence PCIe is surprisingly well done but that was some time ago
apparently Thunderbolt is an utter trainwreck though, and we only know that from someone reversing a bit of it
@flussence so Thunderbolt is apparently an MPLS-like network which can have various things run over it, such as IP, DisplayPort, PCIe-TLP (i.e., DMA). TB3 runs over USB-C. USB-C can switch between being many different things. so how does an OS tell a USB-C port to switch between being this and that? if Intel were sane they’d just extend XHCI to let an OS twiddle some register to switch it. Intel aren’t sane.
the way Intel have done it, Thunderbolt ports have to be integrated by a motherboard vendor, and the port is switched using ACPI calls which trap into SMM handlers (yes really). hilariously this means that it’s “impossible” to make a Thunderbolt add-in card. I say “impossible” because “Thunderbolt add-in cards” exist, but they have some weird pin header on them which you’re expected to connect to a supported motherboard; they only work with specific motherboards they were designed in conjunction with. This pin header turns out to be a load of GPIOs controlled by said ACPI/SMM handlers to switch the Thunderbolt chip mode. It’s unbelievably retarded.
@sam I was going to say the x86-ring-style security model they have on newer chips (and the fact it fails open on older ones) is the worst thing I've heard but welp. That sounds like another level entirely.
@flussence this post makes me feel like i've wasted 15 years not thinking to call ide cables lasagna and now it's just too late