Blast from the Past: Run Unix V7 in a VM
nordier.com
nordier.com
It took a bit of work but I was pretty amazed that it just kind of worked.
Back to topic: I wouldn't mind playing around with that old UNIX vm image, though I better wait until I'm home.
I quickly tried xget and "password" but got a core dump.
Oh the irony of that :-)
Can you elaborate a little?
Any more suggestions for VMs of other classic systems worth pursuing (and available for download)?
/*
* generate hours:minutes:seconds
*/
*tp++ = hms%60;
d1 = hms/60;
*tp++ = d1%60;
d1 /= 60;
*tp++ = d1;
It uses a pointer and does *tp++ = value rather then p->tm_hour = XXVery efficient but would be frowned upon in modern code reviews. Sometimes I think the "art" of performance has been lost to our modern development values.
I'm not advocating the code, more I wonder about how much the general population of developers has lost connection with the underlying performance of things. The systems we work with today are so powerful that they forgive errors that just could not be ignored on older systems.
I recently re-wrote a streaming MapReduce job from Perl to C code and improved it literally 10x in speed. I resisted doing it because most of my team doesn't understand C well enough to slice and dice a bunch of pointers and buffers etc. I wanted maintainable code that the rest of my team could maintain. But in the end I needed performance so short of writing it in assembly C was the next best thing.
Just checked with Clang (and otool), in Os and O2 the disassembly is exactly the same whether one uses struct accesses or raw pointer assignments.
There are differences in O0 though.