36 ms·
I first learned C in 1991 on a VAX running VMS and also on an IBM AIX machine. If I went outside the array bounds I might get a crash or segfault and could use
by lizknope 4y ago
I first learned C in 1991 on a VAX running VMS and also on an IBM AIX machine. If I went outside the array bounds I might get a crash or segfault and could use a debugger to load the crash dump and see where it died.
When I tried using my roommate's DOS PC and C compiler I crashed the entire machine so many times. There was no memory protection of any kind. Write something outside the array bounds and you could overwrite critical DOS data structures and lock up the whole machine. Hard reboot so many times.
Then my roommate tried to explain near and far pointers. I never understood it until I looked it up a few years ago. It was all related to the 16-bit vs 32-bit segmented vs flat memory models. Everything just seemed so much easier and faster on the VMS and Unix systems. But the also cost 10 to 100 times as much.
I also thought it was really pathetic that I could only run one program at a time. On the VAX and Unix systems 10 to 200 people could be logged on at the same time all doing there own thing and it was very difficult to accidentally bring down the whole machine.
It all made me NOT want my own PC because DOS/Win 3.1 was so limited. It wasn't until Linux in 1993 that I wanted my own PC.
- karmakaze 4y agoI agree DOS/Windows wasn't anything to look forward to running. It was only good for FreeCell or selling software for. I did have a Windows laptop that dial-up connected to the Internet via Winsock.dll though, so that was cool. I was running OS/2 1.2 and 1.3 in 1988-89 and beta versions before that. It only let you run a single DOS box but you could run any number of protected mode OS/2 text and Presentation Manager (PM) GUI programs. These were of the 16-bit (near/far) segmented memory model. In 1992, OS/2 2.0 ran the 32-bit flat mode and multiple DOS boxes in windowed areas of the desktop, as well as Win16 programs. The company also had developed their software for IBM mainframes, Wang minis, VAX, AIX, HP-UX, and DEC Alpha. Of all of these OS/2 and Windows NT were the most interesting to me as they seemed close to consumer platforms. The experimental NeXT target we dabbled with but never ported to. That was the future that we had to wait many years to be popularized by Apple. Interface Builder seemed so much better than XCode though. DOS4GW was the flavour that came free with the Watcom compilers. It was very popular with DOS games that let you use the available hardware to the maximum capabilities.
- indymike 4y ago> I first learned C in 1991 on a VAX running VMS and also on an IBM AIX machine. If I went outside the array bounds I might get a crash or segfault and could use a debugger to load the crash dump and see where it died. I started on DOS... but one day I bought an AT&T 3B2400 and two veritcal format Televideo terminals at a university salvage sale for $25 (it didn't do Lotus 1-2-3, so the business school didn't want it). That machine was a a true SVR3.2 Unix machine, complete with all the development tools and incredibly good documentation. The 3B2 was a world into itself, and opened my eyes to how limiting DOS was.
- Bluecobra 4y agoWow, that’s a steal! They did eventually release 1-2-3 for Unix in 1990, in fact someone recently ported it to Linux: https://lock.cmpxchg8b.com/linux123.html https://lock.cmpxchg8b.com/linux123.html
- indymike 4y agoI didn't fully appreciate what a deal I got until the SCSI controller failed. The part cost more than the 386 PC that replaced the 3B2.
- icedchai 4y agoI learned C on an Amiga around 1989 or so. K&R second edition had just come out. The Amiga had multitasking and a flat address space, but no memory protection. If you slipped up, you got a visit from the old "Guru Meditation" error, followed by a reboot.
- glonq 4y agoDitto for "C in 1991 on a VAX". But at least my college had the courtesy to teach us asm on a PC before that so that we could appreciate how addressing worked. Plus it helped to demystify pointers in C.