Notes for macOS Users

Notes on SSH

I describe how to use PuTTY on Windows in a separate document. If you are a Mac user you can use the OpenSSH command line client. You need to first open a terminal window on your Mac and then use the command:

      $ ssh -p 2221

The $ represents the prompt. Do not type that. Otherwise, replace 'username' in the command above with your username on Lemuria. The -p 2221 specifies port 2221. This is necessary because Lemuria is using a non-standard port for SSH.

Below is a note from Leslie Damon about how to open a terminal window on the Mac:

The fact that macOS is *nix based (actually from the Mach micro kernel legacy) is one reason why Craig and I are strong Mac users. Basically, you get a fully modern, maintained *nix system which runs almost all open source software. Plus, enough scientific types use it that there are quickly Mac graphical based ports of anything major. And the hardware is pretty sweet, too.

If you have a student who doesn't know how to find the Terminal app to open a terminal window, have them go to the magnifying glass in the top right of the toolbar at the top of their screen. That will bring up a window that says "Spotlight Search", where they can type in Terminal, which will complete to, which they can then double-click on to open.

Once there, the default shell these days is bash, but all the other standard *nix shells are available, too — they just have to set up up their .login or .profile to change the default.

I did see a mention that macOS might ship with ssh disabled by default (which was news to me). If so, here is how to check and enable/disable.

Notes on Virtualization

Here is a long message from Leslie Damon about virtualization on the Mac. It is a warning about the new M1 chips that Apple is producing and current limitations those chips have for supporting Intel based virtual machines (like Bellatrix).

Last year, Apple announced a new system on a chip — the M1 chip aka Apple Silicon. If you are not aware of this development, here is a reasonable overview and some deeper benchmarking details.

Why do you care?

The tl;dr is that the M1 is now shipping in the low end 13” MacBooks Pros, the MacBook Airs and the Mac Mini. It is an ARM based architecture, and as such total break from the Intel architecture we know and love. AT THIS TIME, there is no support for virtualization of x86 architecture based operating systems — i.e. Windows or Linux.

THIS MEANS THAT AT THIS TIME WE SHOULD DISCOURAGE STUDENTS FROM PURCHASING M1 BASED MACHINES AS THEIR PRIMARY SCHOOL MACHINES for CIS purposes. They can use the intel based Macs — Craig and I will continue to be resources for the department if you need help with student issues using macOS.

Deeper details: the version of macOS that runs on the M1 does include a translation service (Rosetta 2) that allows macOS based executables to run on the new processor without recompilation, but that does not apply to the lower level services needed for virtualization. These machines are also limited to no more than 16 GB of memory. Both of these make the machines a non-starter for now when we rely on being able to virtualize either windows or linux in our classes.

I’m sure Apple is working on both of these limitations, because they want to get the chips into their high-end machines, but for now it is a wait and see. Corellium has done a port of Ubuntu but you can see that this is preliminary work, and is a full boot, not a virtualization.

Notes on Ada

Recent versions of the Community Edition of AdaCore's GNAT compiler aren't available for macOS. However, the Free Software Foundation has a version of GNAT that can be installed via the Alire tool.

GNATstudio is also not available for macOS, but Visual Studio Code with AdaCore's Ada extension is a good substitute.

The GtkAda library for GUI programming is not available for macOS. At this time there is no known substitute. If you know of something, please let me know so I can include information about it here.

Last Revised: 2022-03-21
© Copyright 2021 by Peter Chapin <>