Notes on the “late binding” of Virtual Memory, etc.

When a DLL/shared object is loaded into process virtual memory, it competes for space with the process' code and data, so its base address is knowable only at load-time. The DLL has metadata ("relocations") describing the address references in its code, and the loader uses this metadata to go through all these references and patch … Continue reading Notes on the “late binding” of Virtual Memory, etc.

The Unix Binary wants to be a Smalltalk Method, Not an Object

(Update 2025-10-20: I developed these ideas into an Onward! Essay (paper, talk, poster).) (Update 2025-05-13: I see a lot of traffic! I recently got part of Squeak By Example's SBECrossMorph>>horBar working, see this github repo.) Much of the appearance of commitments in programming comes from how programming systems live within the Unix Paradigm. It's very … Continue reading The Unix Binary wants to be a Smalltalk Method, Not an Object

Introducing drw: a “useful tool” to solve a “practical problem”.

(I have gripes that I need to get out of my system. I think that documenting my approach to a coding task could demonstrate some points I want to make, and help me give some ideas solid grounding.) Motivation Existing solutions for drawing graphics suffer from numerous technical, performance and usability flaws. (probably—I didn't bother … Continue reading Introducing drw: a “useful tool” to solve a “practical problem”.

There is only one OS, and it’s been obsolete for decades

Consider the three operating system families we are forced to choose from: Windows, Apple, Other (which I shall refer to as "Linux" despite it technically being more specific). All of these are built around the same foundational concepts, those of Unix. Android sits atop the Linux kernel, with iOS (as well as Mac OS) atop … Continue reading There is only one OS, and it’s been obsolete for decades