Albert Borgmann says in Technology and the Character of Contemporary Life that a distinguishing feature of a “device” is the “concomitance of radical variability of means and relative stability of ends.” What matters about a device is what it does, not how it does it. “The concealment and unfamiliarity of the means” is the point: a device relieves us of the burden of caring about how it works.
This sounds like the kind of thing a critic of technology would exaggerate, on the way to portraying, as Borgmann does, the thing a device produces as a commodity that “can be enjoyed as a mere end, unencumbered by means.”
But I’m realizing how much this understanding of the device is an explicit goal in computer engineering. The distinction between the abstraction and implementation is fundamental. Noam Nisan and Shimon Schocken call it a “cognitive gift” (The Elements of Computing Systems, 2nd ed.) and “the most important design principle in hardware and software construction projects.” The “abstraction-implementation paradigm helps developers manage complexity and maintain sanity.”
In practical terms:
Whenever your implementation uses a lower-level hardware or software module, you are to treat this module as an off-the-shelf, black box abstraction: all you need is the documentation of the module’s interface, describing what it can do, and off you go. You are to pay no attention whatsoever to how the module performs what its interface advertises.