Writing a Unix clone in about a month

Overall reaction

  • Many commenters find the project impressive and inspiring, especially given the ~month timescale.
  • Several stress that this kind of “X in N days” feat rests on years of prior low-level experience, not beginner-level work.
  • Some argue that building a minimal Unix-like kernel is a standard advanced–undergrad-level exercise; the standout factor here is completeness and perseverance.

Prior work and experience

  • Commenters note the reuse of code from an earlier kernel project, plus earlier OS work on calculators, as key enablers of speed.
  • This reuse is generally framed as part of the accumulated experience rather than a shortcut that undermines the achievement.

Hare language: philosophy and trade-offs

  • There is interest in Hare as a systems language distinct from C, Zig, Odin, etc.
  • A major debate centers on Hare’s official stance of not supporting Windows or macOS.
    • Critics see it as self-limiting “purity” that will constrain adoption and ecosystem growth.
    • Defenders say the project optimizes for its own goals, not maximal reach, and that others are free to maintain ports.
  • FAQ points draw mixed reactions: no package manager, weaker optimizations vs. LLVM, “probably not” multithreading, and no standard hash map.
    • Some find these principled and simplicity-driven.
    • Others view lack of multithreading and basic data structures as deal-breakers for serious use.

Compiler and performance considerations

  • Avoiding LLVM is seen as reducing dependency and complexity, improving compile times, and enabling self-hosted systems work.
  • Some report that non-optimizing compilers are fine for most apps; performance issues mainly matter for heavy number-crunching.

Unix design, history, and comparisons

  • The project prompts recollections of early Unix and other Unix-like systems written in non-C languages (Pascal, Ada, Concurrent Euclid).
  • Several comments revisit the origin story of Unix, emphasizing it built on extensive prior work (e.g., Multics) and evolved over years.

Signals and OS mechanisms

  • A substantial subthread discusses Unix signals as a weak, historically constrained abstraction:
    • Signals conflate multiple roles: async external events, sync internal faults, and process control.
    • They’re race-prone and interact awkwardly with system calls and reentrancy.
  • Alternatives and improvements mentioned include async-only syscalls, richer IPC primitives, Plan 9–style notes, VMS mailboxes, and Windows structured exceptions.

Learning resources and tangents

  • A classic Unix programming book series and educational OSes are recommended for understanding signals and kernel internals.
  • Side discussions touch on GPUs as first-class OS citizens, difficulties of GPU driver development, and the growing size of system images vs. early kernels.