How to replace macOS with a fully open source Linux system

By: ( +David Herron; Date: December 8, 2017

Tags: Linux » macOS

Maybe the direction Apple and Microsoft are taking is not aggreable in that both are seeking tighter control over what we do with our computers. Both are businesses and obviously will try to extract as much money from us as possible. In the case of Apple, their computers are increasingly closed boxes that cannot be opened and repaired. Instead you're faced to pay ridiculous prices for upgrades and repair, which lines Apple's pockets at our expense. As a what if exercise, I'm thinking over what it would take to supplant macOS with a Linux system (won't ever go back to Windows).

I've been happily using Unix-like systems since 1982 when I found a PDP-11 running Unix V7 in a computer science department computer lab. Within a year or so I'd wangled a job administering the brand new VAX-11/750 running BSD 4.2, and held a position in that team for about 6 years. Since then, except for a brief dalliance with Windows, I've used SunOS, Solaris, Mac OS X, Linux, and FreeBSD systems almost exclusively.

When Apple announced Mac OS X, I jumped in at the first chance -- because it was a Unix with a pretty face that also had a decent Java implementation. At the time I worked for Sun in the Java SE team, and therefore Java support was important.

After about 15 years of using Mac OS X, I'm starting to wonder if or when I should switch to Linux. I can't point to any one thing, but have a nagging feeling that Apple is going to be tightening and tightening their control. Plus, it clicked one day that most of the applications I use daily are extremely portable. Meaning that it may well be feasible to use Linux full-time, and to a large extent that's due to Electron - the desktop application framework that's a weird amalgam of Node.js and Chrome.

In this post I'm going to summarize the application set I'm interested and a few notes about each. Each application type will warrant one or more followup posts exploring alternatives. All will be linked here.

Software Development

I primarily work as a software engineer, and must have good quality tools. Fortunately all the tools I use are readily available for Linux, and are often available in the package management systems. In other words, the environments I use will be precisely the same on Linux versus macOS. Apple may not understand that the Developer Community (all the hip developers use MacBook Pro's) can easily move to Linux-based laptops. The only exception is developers of iOS applications because it may be difficult to do that outside of Xcode.

  • Atom is in the Ubuntu application store, simply install it from there.
  • Visual Studio Code is available as a .deb download
  • Gitkraken and some other tools are available as downloads from their respective websites
  • For Eclipse (I do Spring development) it's widely recommended to not install the Eclipse in the Ubuntu package repository. Instead download Eclipse from the Eclipse website. Afterward use the Eclipse Marketplace to install the required plugins.

In general the vast majority of software development tools run on Linux.

Code editing

  • JavaEE development (my day job involves writing Spring applications) is easily done in Eclipse, IntelliJ IDEA, and Netbeans, all of which run on Linux
  • Microsoft Visual Studio Code and Atom are both modern developers editors built using the Electron platform. I've used both extensively, and both are extremely excellent. They're readily available on Linux.
  • Sublime Text is supposedly a popular developers editor (I've never used it) and is readily available for Linux
  • Komodo Edit is a full-featured IDE that's available for Windows, Mac, and Linux. I used it extensively before discovering Atom, and even installed it inside Crouton on a Chromebook.

Programming Platforms This would be compiler toolchains, debuggers, software platforms, libraries, and so on. Virtually everything that we run on Mac OS X is also available on Linux, and is more-or-less the exact same tool. Sometimes the Linux version is newer than the macOS version.

Virtualized systems

  • VirtualBox This is an excellent open source virtual computer emulator. You install the desired operating system, and it's like you have a whole new computer running inside. It's available for Windows, MacOSX and Linux
  • Vagrant This is a tool simplify creating virtual programming environments. It runs on top of VirtualBox and maybe on top of VMWare. I've never used it, but it's widely recommended and supposedly very nice. It's available for Windows, MacOSX and Linux
  • Docker This is a different take on virtual computer environments. Instead of constructing an entire fake computer, it runs the lightest of operating system emulation layers. It relies on "Containerization" within Linux to create extremely light-weight environments within which to deploy application code. It's really cool in case what I just said didn't make sense. Anyway, it runs on Windows, MacOSX and Linux.

Other tools

There are lots of other development tools. The vast majority of them run on Linux as well as other systems. Here's two that I use routinely.

  • Postman This is an excellent tool for REST service testing. Like Atom and Visual Studio Code, it is built on the Electron framework. Available for Linix
  • GitKraken This is an excellent Git client, and is coincidentally also built on the Electron framework. Available for Linux
  • Arduino IDE This specialized IDE supports developing app's for Arduino devices. It runs on Windows, macOS and Linux

Web Browsing

There are a large number of web browsers available for Linux. Of the primary web browsers, the status on Linux is:

  • Microsoft Edge Obviously for Windows-only
  • Safari For macOS and iOS only
  • Chrome For all platforms including Chromebooks
  • Firefox For all platforms
  • Opera For all platforms

In my case I switch between Chrome and Firefox, and will be satisfied with Linux.

The Ubuntu package repositories do not have Chrome but instead have Chromium. The latter is the fully open source version of Chrome, of course. On the off-chance Chromium was missing something important, I've gone ahead and installed the commercial Chrome build from the Google website.

Multimedia plugins for web browsers

Browser plugins are quickly being abandoned by the software industry. However, some websites still require browser plugins even though non-plugin video and audio playback is very powerful nowadays.

Generally the plugins - e.g. Flash - are proprietary and do not execute on Linux.

Those who use websites still requiring browser plugins will have difficulty with using Linux. Fortunately the number of such websites is shrinking every year.

In my case I don't have a hard dependency on any website requiring a browser plugin. I've seen several websites recently with videos that refuse to play because my browser does not support Flash. The websites in question aren't high enough priority for me to get all worked up over being unable to play those videos.

Word Processors and text editing

Many of us have highly technical requirements for word processing software. I don't, but clearly there are many who do. There are a number of highly competent word processor systems for Linux, or for use in web browsers. For typical folks, the alternate word processors will be perfectly adequate. But there are of course many whose needs will absolutely require their high end word processor.

  • Libre Office and Open Office - Libre Office is the preferred of the two because of Oracle's management style over the Open Office project. Both are open source Office Suites offering not just a Word Processor, but Spreadsheet and Presentation and Database applications. Libre Office is a hostile fork of the Open Office project so the applications are nearly identical, but the Libre Office community is stronger than the Open Office community.
  • Google Docs - This is an Office Suite developed by Google which runs in web browsers. The suite includes a word processor, spreadsheet, presentation program, and drawing program. Google's staff keeps ramping up features and performance, and it is a quite powerful system.
  • Zoho Office - Similar story to Google Docs.
  • WPS Office - A suite of applications, word processor, spreadsheet and presentations, that is meant to be a Microsoft Office alternative on Linux. I have no experience with it, just came across it in passing.
  • Calligra - A full open source office suite containing not just the word processor, spreadsheet and presentation applications, but diagram editor, project management, and vector graphics applications. Wide breadth of capabilities, in other words.

Speaking for myself, Libre Office and Google Docs are all I need. Much of my writing is instead written using Markdown and is formatted using ( AkashaCMS for publishing either as eBooks or websites.


  • Libre Office - Includes a very good spread-sheet application.
  • Google Docs - Includes a very good spread-sheet application.
  • Gnumeric - An open source spread-sheet app that's widely packaged for Linux systems.

PDF and Image viewing

In macOS, the Preview application is excellent, combining PDF viewing, image viewing, image editing, screen capture, and more, all in one application. For Linux this may require multiple applications.

( - Flameshot is supposed to be an excellent screenshot-capture application. Unfortunately it does not install easily on Ubuntu.

Skype and other Internet video/audio calling

For decades we'd been promised video phones - for example Dick Tracy's wrist-watch-phone - but the telephone companies didn't deliver. It took the Internet and Skype to deliver something like a Video Phone experience. Today there are many alternatives to Skype, such as Google Hangouts, Facebook Messenger, and even Slack.

There are so many alternatives that we can't make a list here. Whatever happens to Skype on Linux, it won't matter because of the large number of alternatives to Skype.

Microsoft is downplaying the Skype app for Linux, for what it's worth. At the same time, the web version of Skype is coming along. It may be that Skype in the web browser on Linux works well enough, or else Skype for iOS or the web version on Chromebooks.

The Web version of Skype does not under either Firefox nor Chrome - on Ubuntu 17.10.

UPDATE On Feb 4, 2018 I noticed that Skype is now listed in the AppStore thing on Ubuntu 17.10. I installed it but there are problems.

First is sound support. I'm using an Intel NUC that doesn't have built-in speakers nor microphone. I've got a headphone/microphone thingy plugged into the headphone jack. Running the Sound Preferences, plugging in that headphone is enough to enable audio output and input according to the Sound Preferences. BUT, the Skype application claimed there was no microphone and no speakers. Going to the Skype Test Call contact to try a test call, and the Call buttons were disabled.

The Sound Preferences show audio input and output both working. I can run Audacity, and record sound using the mic on this headphone, and listen to the recorded sound. I can run YouTube in a browser, and it plays fine through this headphone.

Second is system performance. With Skype running, system performance became dismally dreadfully bad. This NUC is a Core i5 with 16 GB of memory and the OS is installed on an SSD drive. The machine feels very fast and responsive, but with Skype running it became unusable. As soon as I killed Skype, the system performance returned. Sort of.

Twitter apps

I don't often use a Twitter application versus the Twitter website. Supposedly there are extra features available by using an application.

Shared calendar, notes, contacts

One great feature of macOS is the shared system for calendars, notes, and contacts. They sync seamlessly between desktop computer and iOS devices. Apple really wants you to use iCloud services for this, but also allow you to configure other services. I've had success with using Google accounts with these features.

But -- Big Brother? Do I want Apple snooping on these things and perhaps turning them over to the Feds?

This will be a hard nut to crack because of the desirability of syncing this stuff to iPhone/iPad.

DVD, Video, Audo playback


What to do with the big pile of stuff I have in iTunes? Especially the stuff I've bought that way? And what if I want to keep buying stuff via iTunes?

Video editing and conversion

There's various video editors for Linux and some of them might even be acceptable. For conversion there's ffmpeg, which has an unfortunately complex command-line user interface.

Photo editing, photo gallery, panorama creator

Gimp? Unsure of what else is available.

Supposedly Darktable is equivalent to Lightroom, but open source. It's available for macOS, the Linux's, and now for Windows. I tried installing it on macOS using MacPorts, and that failed trying to get GTK3 with Quartz support installed.

UPDATE Feb 7, 2018 - installed it on Ubuntu and gave it a quick tour. It has lots of features and capabilities for image manipulation. Looks good.

eBook / EPUB reader software

Reading Kindle books on Linux, supporting a switch to Linux No form of Kindle Reader exists for Linux, and the installer for the Kindle Reader for PC crashes when run under Wine. Therefore Linux users cannot directly read Kindle eBooks. They can use the Kindle Cloud Reader.

Obviously Apple's iBooks will not run on Linux. Fortunately that runs on iPad. As does Kindle and other eBook readers.

On Linux I know of the Calibre suite.

iPhone/iPad backup

I have both iPhone and iPad. One of the control points is how Apple limits you from accessing the file system on the device, and thereby limits your options for backing up the device. Instead you're corralled into backing up via iTunes onto your desktop computer, or else to iCloud ($$$'s per month).

It's fairly easy to get automated backup of pictures and a couple other things. But this is a per-application thing because of how Apple set up the system.

It may be better to switch to Android?

Computer backup

In macOS we have Time Machine built-in and it's excellent.

TODO research Linux backup methodologies and tools

Monitoring system attributes -- SSD and battery health etc

Preventative monitoring and diagnosing of system hardware issues is very important. For example, if the battery is running out of useful life one should be forewarned and replace the battery. SSD's are extremely attractive because of their performance benefits, but theoretically run the risk of sudden catastrophic failure. Therefore monitoring the health of your SSD drives is critically important. There are many more possibilities, from diagnosing other kinds of drive failure, to rebuilding file systems, and other hardware diagnostics.

Linux alternatives to many of these capabilities exist. But they tend to be command-line driven rather than GUI driven, and may not be as polished.

TODO find these tools

For some of this, command-line utilities are available. On macOS I have installed a few GUI's that are nice. The importance is having visibility into the status of your computer. For example the SSD Reporter application is telling me about the degradation of the SSD drive in percentage points.

Controlling the Drobo

I have a Drobo for storing vast quantities of files. The issue is running the Drobo Dashboard app - which doesn't exist for Linux. Seriously, the Drobo corporation only supplies the Drobo Dashboard as Windows and macOS applications. Don't they understand the large number of Linux sophicates who might want to use their boxes?

( -- Drobo Utils is an open source project aiming to allow Linux users to control a Drobo. The website smells of a project that's gone stale, unfortunately. The other unfortunate thing is it doesn't work with network attached Drobo's (I have a Drobo 5N). But it is available on Ubuntu:

$ apt-cache search drobo
drobo-utils - manage data robotics storage units (drobos)

H&R Block tax application, and general accounting

I do my taxes with the H&R Block application. Maybe the Windows version will run on Wine?

Otherwise I use WaveApps - a hosted web app - for accounting.

« Reading Kindle books on Linux, supporting a switch to Linux How to get Windows 10 Professional for free »
2016 Election Acer C720 Ad block AkashaCMS Amazon Amazon Kindle America Amiga Android Anti-Fascism AntiVirus Software Apple Apple Hardware History Apple iPhone Apple iPhone Hardware April 1st Arduino ARM Compilation Astronomy Asynchronous Programming Authoritarianism Automated Social Posting Ayo.JS Bells Law Big Brother Big Finish Bitcoin Mining Black Holes Blade Runner Blockchain Blogger Blogging Books Botnet Botnets Cassette Tapes Cellphones Christopher Eccleston Chrome Chrome Apps Chromebook Chromebooks Chromebox ChromeOS CIA CitiCards Citizen Journalism Civil Liberties Clinton Cluster Computing Command Line Tools Comment Systems Computer Hardware Computer Repair Computers Cross Compilation Crouton Cryptocurrency Curiosity Rover Currencies Cyber Security Cybermen Daleks Darth Vader Data backup Data Storage Database Database Backup Databases David Tenant DDoS Botnet Detect Adblocker Developers Editors Digital Photography Diskless Booting Disqus DIY DIY Repair DNP3 Do it yourself Docker Docker MAMP Docker Swarm Doctor Who Doctor Who Paradox Drobo Drupal Drupal Themes DVD E-Books E-Readers Early Computers Election Hacks Electric Bicycles Electric Vehicles Electron Emdebian Encabulators Energy Efficiency Enterprise Node EPUB ESP8266 Ethical Curation Eurovision Event Driven Asynchronous Express Facebook Fake News Fedora VirtualBox File transfer without iTunes FireFly Fraud Freedom of Speech Gallifrey git GitKraken Gitlab GMAIL Google Google Chrome Google Gnome Google+ Government Spying Great Britain Heat Loss Hibernate Hoax Science Home Automation HTTP Security HTTPS Human ID I2C Protocol Image Analysis Image Conversion Image Processing ImageMagick In-memory Computing InfluxDB Infrared Thermometers Insulation Internet Internet Advertising Internet Law Internet of Things Internet Policy Internet Privacy iOS Devices iPad iPhone iPhone hacking Iron Man Iternet of Things iTunes Java JavaScript JavaScript Injection JDBC John Simms Journalism Joyent Kaspersky Labs Kindle Kindle Marketplace Lets Encrypt LibreOffice Linux Linux Hints Linux Single Board Computers Logging Mac OS Mac OS X Machine Readable ID macOS MacOS X setup Make Money Online MariaDB Mars Matt Lucas MEADS Anti-Missile Mercurial Michele Gomez Micro Apartments Military Hardware Minification Minimized CSS Minimized HTML Minimized JavaScript Missy Mobile Applications MODBUS Mondas Monetary System MongoDB Mongoose Monty Python MQTT Music Player Music Streaming MySQL NanoPi Nardole NASA Net Neutrality Node Web Development Node.js Node.js Database Node.js Testing Node.JS Web Development Node.x North Korea npm NY Times Online advertising Online Community Online Fraud Online Journalism Online Video Open Media Vault Open Source Governance Open Source Licenses Open Source Software OpenAPI OpenVPN Paywalls Personal Flight Peter Capaldi Photography PHP Plex Plex Media Server Political Protest Postal Service Power Control Privacy Production use Public Violence Raspberry Pi Raspberry Pi 3 Raspberry Pi Zero Recycling Refurbished Computers Remote Desktop Republicans Retro Computing Retro-Technology Reviews Right to Repair River Song Robotics Rocket Ships RSS News Readers rsync Russia Russia Troll Factory Russian Hacking SCADA Scheme Science Fiction Search Engine Ranking Season 1 Season 10 Season 11 Security Security Cameras Server-side JavaScript Shell Scripts Silence Simsimi Skype Social Media Social Media Warfare Social Networks Software Development Space Flight Space Ship Reuse Space Ships SpaceX Spear Phishing Spring Spring Boot SQLite3 SSD Drives SSD upgrade SSH SSH Key SSL Swagger Synchronizing Files Telescopes Terrorism The Cybermen The Daleks The Master Time-Series Database Torchwood Total Information Awareness Trump Trump Administration Trump Campaign Ubuntu Udemy UDOO Virtual Private Networks VirtualBox VLC VNC VOIP Web Applications Web Developer Resources Web Development Web Development Tools Web Marketing Website Advertising Weeping Angels WhatsApp Window Insulation Windows Windows Alternatives Wordpress World Wide Web YouTube YouTube Monetization