The trouble with layers and layers of computer software is that sooner or later you lose touch with reality.
Reality. That's what's going on with the physical stuff that
makes computers go. CarverMead points out that all
computation is a physical process.
Why not exploit the myriad effects of ChargeCarriers
passing through material, instead of overcoming them?
But I digress. Right now I'm thinking about efficiently
transferring information from block storage devices.
What in the world is my ThinkPad doing as it sits there
blinking my disk light while it boots? A few bytes here,
a few bytes there, that's what it's doing.
I'd love to put a StripChartRecorder on that light and find out
what the real DutyCycle? is. Then again, it probably lights
up while it seeks. I'd need to monitor the actual transfer.
Some people seem to understand this and get it right...
- RogerBates -- collected control variables needed to open a drawing.
- BillCroft -- piggybacked control flags in full data packets.
- ParcPlace -- save an image without traversing it.
- JefRaskin -- booted the CanonCat from all sectors of a diskette read sequentially.
- regardless of whether this means a full track read or a small boot, such things pre-date Jef's work on the CanonCat by years and years; let's not Canonize people for standard practice
- ChuckMoore -- a filesystem abolitionist from the beginning, he strongly prefers to record source code and all persistent data using block storage. Whether using a block cache (a la demand-paging systems today) or full memory image (a la ColorForth today), Chuck gets extremely efficient I/O by eliminating unnecessary filesystem intervention, which from personal experience with both filesystems and direct-access methods, I agree is unnecessary.
Since this page was created June 9 1995 and hasn't significantly changed since then (typos fixed 3 times, is all), I probably shouldn't bother to comment...