![]() ![]() One of my biggest complaints with MacOS was how difficult it was to streamline or automate things. One of the additional discoveries I made that were essential to making MacOS more hospitable for me was discovering Nix-darwin. I recently discovered the Linux distribution NixOS and absolutely fell in love with it immediately due to the configuration management with configuration.nix. This allows me to use Docker for the Linux-specific workflows that don’t translate well to native MacOS tools. Plus, terminal emulators and your preferred shell make things look consistent across Windows, MacOS and Linux. Using command line applications for as much as possible has allowed a lot of my core workflows to remain consistent. You can tweak the resource allocation for the VM in Docker’s preferences. I haven’t seen any noticable performance hits on Mac vs Linux for what I do, however, but it’s still good to be aware of. In theory, Docker running within a kernel in a VM on MacOS will add some latency and performance restrictions compared to Docker running on a Linux host and sharing the same kernel as the host. Unless you run rootless Docker or a rootless alternative like Podman (both of which I think are better than running Docker on Linux and adding yourself to the docker group), it’s pretty trivial to pwn a system if you have access to the Docker daemon on Linux. I actually view this is a good thing, though, because it separates Docker from a lot of the privileged resources in MacOS. To make up for this Docker on Mac runs a Linux virtual machine. One of the downsides of Docker on Mac compared to Docker on Linux or Windows is that the MacOS kernel lacks the virtualization needed to more natively run a Linux kernel for containers. Docker is cross-platform and allows me to run a virtual Linux kernel on Windows, Mac or Linux. I use Docker for all of my client-side Linux workflows. I prefer NixOS, Arch Linux and/or FreeBSD for my server-side needs. On a side note: I think MacOS is the worst for servers. I use Unix-like OS-es exclusively for my back-end, server-side stuff to augment the applications I have available to me so there isn’t much to get into that’s relevant to my MacOS setup. With Linux as my preferred runtime, it’s very easy to make my workflows cross-platform and still based on Linux due to tools like Docker. Using Linux as my portable runtime everywhere (I prefer Docker for this): CLI applications, in my experience, are typically easy to port between OS-es. Many of my favorite command-line Linux tools have a MacOS port since both Linux and MacOS share a similar Unix heritage. While I dislike Apple’s deliberate attempts to make MacOS as closed as possible, I love the strengths of Unix. Unix-like operating systems were created to mimic all of the strengths of the proprietary Unix operating systems while allowing for even more open-ness and versatility as they are typically open source. Formally, Linux is considered “ Unix-like”. In my defense, people refer to it informally as “Unix” so that’s where my confusion lied. Unix’s design was meant to be as convenient as possible for programmers.īefore a few years ago, I mistakenly believed that Linux was actually a Unix derivative. Unix is a family of proprietary operating systems that are derived from AT&T Unix first published in the early 1970’s at Bell Laboratories. ![]() ![]() For those who are really into Linux they are probably familiar with Linux’s close-ness to Unix. This doesn’t really change much on the technical side, but it’s super interesting to me. Without the open source software I have discovered and will share in this article MacOS would not be tolerable for me. This article is my attempt to document my attempt to take the things I like best about desktop Linux and apply them on MacOS through open source tools. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |