The VikiD Truth

Knowledge base / Computing

Algorithms | Apple | AssemblyLanguage | BASH | Bash Cookbook | C-Programmming | CommonLisp | Computer Security | CuisSmalltalk | Databases | Emacs | Exploitation | Firewalls | Fortran | Functional Programming | Git | GNUSmalltalk | Haskell | Social Engineering | Javascript | Julia | Linux | Machine Learning | Metasploit |Machine Learning | Networking | Operating Systems | Open Data Science | Odin | Picolisp | Pharo Smalltalk | Purescript | Python | Racket | Scheme | Unity | vim | V | Web Development | Windows WSL | Zig

Apple Related Stuff

Here is the truth about Apple computers for a Linux person: under the polished glass, a Mac is a Unix machine – a certified one, in fact. With a package manager, a tiling window manager and a few keyboard tweaks, it can feel surprisingly close to home.

What it is, in plain words

Apple makes Macs (laptops and desktops), iPhones, iPads and more, and since 2020 designs its own chips. The pieces that matter to someone who likes to understand their machine:

Why it matters

Macs are everywhere in software development, design and universities. You’ll be handed one at a job, or asked to help someone with theirs. Knowing what’s Unix underneath, and how to bend it, turns a locked-down-feeling appliance into a capable workstation. And Apple silicon is a good look at where hardware is going: wide ARM cores, shared memory between CPU and GPU, aggressive power management.

An everyday analogy: a luxury hotel versus your own flat

Your Linux box is your own flat: you chose every piece of furniture and know where every wire goes. A Mac is a luxury hotel suite: beautifully done, everything works, but you can’t knock down a wall, and some cupboards are locked. You can still rearrange the furniture, bring your own tools and make it comfortable for a long stay.

flowchart TB
  A[Apps: Cocoa/SwiftUI, Terminal, Homebrew tools] --> D[Darwin userland: BSD tools, launchd]
  D --> X[XNU kernel: Mach + BSD]
  X --> H[Apple silicon: CPU, GPU, Neural Engine, unified memory]

A hands-on example: making a Mac feel like Vikix

1. Command line tools and a package manager.

xcode-select --install          # compilers, git, make
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install coreutils gnu-sed gawk ripgrep fd git emacs sbcl
brew install --cask kitty

The default shell is zsh; macOS’s own /bin/bash is stuck at version 3.2 for licensing reasons, so brew install bash if you want modern Bash. coreutils gives GNU versions prefixed with g (gls, gdate), because the built-in ones are BSD versions with different flags.

2. A tiling window manager. macOS doesn’t let you replace its compositor, but these get close:

Apple itself added basic window tiling (drag to edges, Fn+Ctrl+arrows) in macOS 15.

3. Keyboard. Remap Caps Lock to Control in System Settings → Keyboard → Modifier Keys, or use Karabiner-Elements (or KMonad/kanata) for tap-hold and layers.

4. Know the system.

sw_vers                          # macOS version
uname -m                         # arm64 on Apple silicon
sysctl -n machdep.cpu.brand_string
system_profiler SPHardwareDataType
launchctl list | head            # launchd: macOS's init and service manager
diskutil list

5. Running Linux. Use a VM (UTM, Parallels, VMware Fusion or VirtualBox 7.1+ on ARM) with an ARM64 Linux image, or Apple’s own container tool (2025) for lightweight Linux containers. Want Linux on the metal? Asahi Linux (Fedora Asahi Remix) runs natively on M1 and M2 Macs; support for newer chips is still in progress.

Common misconceptions

Connections

Amethyst, an Apple Mac OS Tiling Window Manager

Last edited · 2 revisions

Tags: #Computing