Thursday, June 19, 2025

Virtual Machines

I run linuxCNC (a Debian variant) in the shop.  There are times especially when it very hot out there thst I would prefer to debug programs inside.  At one time, under Windows 10, I used the VMWare virtual machine software to run linuxcnc on my Windows PC.

At some point this stopped working.  I was never able to get Oracle VirtualBox to do this.  The Windows 11 Hyper-V feature seemed to not work either.

I now see that Windows Subsystem for Linux gives this ability to run Linux variants under Windows 11.  This is good.   I can write software and run the CNC part as a simulation.   (There are some real-time aspects of linuxCNC that make it not work under any Windows VM.)  I can then use FileZilla to move the needed files to the shop PC.
 
UPDATE: Attempting to install linuxCNC under WSL was not easy.  This may require more help.

2 comments:

  1. “There are some real-time aspects of linuxCNC that make it not work under any Windows VM.”

    Not directly analogous, but this reminded me of important lesson I learned while getting my computer science degree back in the dim ages of 1980 or so.

    The assembler class had a teaching machine, TI 980A, which was about the size of a refrigerator, not counting the attached card, reader, and the attached printer. It had lights to show each bit setting in the registers, and corresponding switches to allow you to directly change individual bits in the registers. I think you could even trudge through memory word by word, and do the same thing, but I’m not sure. It was too many years ago. It really was a nice little learning machine, installed, and I rather cozy little closet, but there was only one and during sane hours it was always occupied course.

    Happily someone had written a TI 980A emulator that ran on the University’s CDC6600, which was much more available. I ran most of my class assignments on that.

    One very late night I was trying to complete my final assembly program assignment for the semester, and the darn thing kept blowing up. Error messages were unhelpful of course.

    I fiddled with it for hours, running it over and over, and it crashed every single time. I sweated through it line by line, and the program was perfect, it just didn’t run.

    Finally about three in the morning it occurred to me that perhaps the emulator didn’t have absolute fidelity to the TI 980A.

    I rushed across campus to the TI 980 A, and happily it was unoccupied at that hour.

    I plopped the card deck into the reader, hit the read button and wowser! It ran perfectly first time.

    I felt like I learned something significant about porting and emulating software that night, but boy was it was painful.

    ReplyDelete
    Replies
    1. This reminds me of the IBM 1401 on which I learned assembly language, and an Interdata Model 15. The 1401 would display instructions as they executed. Some of the big operations were slow enough to be readable, The Interdata has switches through which you could read and write memory locations. Some failures would require entering the boot code through those switches. A fellow student was too lazy to get out of his chair. He successsfully did it with his toes.

      Delete