6 ms·
It’s funny how I used to think that operating systems, databases, and cloud systems, as these kind of arcane things that were somehow apart from the rest of sof
by ElFitz 3y ago
It’s funny how I used to think that operating systems, databases, and cloud systems, as these kind of arcane things that were somehow apart from the rest of software.
I could not begin to grasp how they could deal with running programs, access control, or any of these things that once seemed so foreign and mysterious to me.
And realising that it’s actually just software, that there’s no black magic to it, just lower-level APIs, less pre-built batteries-included stuff to rely on, and probably a whole lot of more complexity, that was… both mind blowing, exciting, and kind of a let down.
And it has enabled me to have more realistic expectations from these tools.
It however doesn’t take away any of the brilliance and effort that went into the these things, or lessen the credit due to those behind them. I can only begin to imagine the complexity involved in a full-fledged modern OS.
- dlivingston 3y agoIt's turtles all the way down. Layers of abstraction stacked on layers of abstraction.
- selestify 3y agoUntil you get to the physics of transistors and logic gates :) Though I suppose in a sense, even subatomic particles are abstractions over quarks. It’s just that those are no longer abstractions we control.
- underdeserver 3y agoYup. APIs and constraints all make engineering sense. Turtles, all the way down... except when you get to quantum mechanics, that stuff is whack.
- javajosh 3y ago>QM is whack Very much so. But I also think it always had to be that way. A universe of infinite classical regression (atoms made of atoms made of atoms...) would be more insane than whack.
- underdeserver 3y agoIf I had to guess, I'd say infinite regression is how the real world works, and quantum mechanics is how our reality's simulator lazily computes interactions.
- dylan604 3y agoWould that make things like wormholes similar to a heartbleed attack?
- xattt 3y agoI realized the brilliance of the name Quartz for the graphics framework. It’s what happens to “rendered” silicon.
- kzrdude 3y agoQuartz glass is strong and very clear, it implies sharp, clear images.
- fatneckbeard 3y agowhy i like arduino. why i kind of like old IBM PC environment. x86 + a few bios calls, dont even need DOS after you load game.exe
- meepmorp 3y agoYeah NetWare used to boot DOS then load their kernel over it. I feel like computers used to be cooler.
- LeFantome 3y agoWell, that is it worked on Windows as well ( up until Windows ME ), load DOS first and then Windows. You could still do it that way if you want. Windows 11 needs a boot loader. No reason you cannot write a DOS based one. The comment about game.exe above probably refers to the days of “DOS Extenders” that games were based on. You would launch a game from DOS and, instead of just running a 16 bit DOS executable, it would switch into 32 bit mode and use a “DOS extender” to run the game. “DOS extenders” are really just operating systems though that use DOS as a boot loader. Popular options for DOS games and programs were DOS/4GW, Phar Lap, and Quarterdeck ( from memory ). There were many others. Windows 95 was really a “DOS extender” too.
- fatneckbeard 3y agodos.exe was kind of referring to how a lot of games would just completely ignore DOS even before the days of protected mode and 32 bits, im going back to the 8088 days. but yeah same idea. actually now that i remember it, my first linux was a copy of ... i think Dragon Linux? It used Dos as a bootloader, it ran off the existing DOS FAT filesystem so you didnt have to mess with partitions, and it dealt with the filename-too-short issue by keeping a dot file in each directory with a list of the 'real' linux long names and how they matched the DOS fake shortnames. but like even windows and linux, they are having layers and layers of abstractions. trying to do anything in X11 or win32 API calls, compared to the before-times where you just write directly into RAM at A0000 to draw pixels.. there is something about that that is very interesting.
- apples_oranges 3y agoYeah, it's all a bunch of programs doing their thing. One draws a GUI, another talks to the network adapter, and so forth.. And when you click a launcher icon, a loader program is started that (more or less) copies a program into RAM and when all is set up, it tells the OS (and the hardware) to run that, too.
- amelius 3y agoYes, a modern OS is a tangled mess of microservices.
- sgt 3y agoThey just don't communicate using JSON. I can see it now; Kernel JSON (aka kjson) support in the Linux kernel to attract Node developers.
- jwandborg 3y agoJust take the Unix philosophy and replace the word "file" with "JSON file".
- skissane 3y agoSeriously I wish /proc was available as a tree of JSON documents as opposed to all these different ad hoc plain text formats. It would make using /proc a lot easier and more reliable
- jwandborg 3y agoCould be unnecessarily costly unless the files are written ahead-of-time. I propose some kind of GraphQL-like interface to only read what you need.
- skissane 3y ago/proc files are generated on-demand as you read them. Generating JSON couldn’t be significantly more costly than the current ad hoc plain text formats are
- gl-prod 3y agoIt hits you in the face, how do you eat an elephant? A bite at a time. One API, one abstraction at a time.
- maegul 3y agoFor me this moment was when computers were no longer “magical” to me and that I found comments to this effect (even from those that know more than I and were more senior) odd and kinda culturally cultish.
- astonex 3y agoIf you wanted to learn, I really recommend Operating Systems: Three Easy Pieces (OSTEP). I thought it was excellent and pretty easy to follow. https://pages.cs.wisc.edu/~remzi/OSTEP/ https://pages.cs.wisc.edu/~remzi/OSTEP/
- wkjagt 3y agoThere are many things in OSTEP that I found really eye opening. One thing that stuck with me was that at some point, when discussing virtualization, it referred to an OS as a virtual machine, and that really changed the way I look at operating systems now. > That is, the OS takes a physical resource (such as the processor, or memory, or a disk) and transforms it into a more general, powerful, and easy-to-use virtual form of itself. Thus, we sometimes refer to the operating system as a virtual machine.
- toddmorey 3y agoOh that’s a great quote. Really good framing.
- johnthescott 3y agoken thompson when asked what he thought of virtual machines, his response "they are such a good idea i wrote one. you may have heard of it: unix"
- ElFitz 3y agoThanks!
- CPLX 3y agoIt still kind of blows my mind that basically all this reduces to assembly and then machine language. I’m of the age where my first computing experiences were on green screens, PET computers, networked VAX machines at the colleges my parents taught at and so on. I was aware of what assembly was back then, and the idea that the game or basic business program I was using was just a sequence of MOVE ADD eax and so on. I just couldn’t quite get how you could be smart enough to use that to something useful. And everything we see today is basically just a bunch of moves and adds and pokes a layer or three below the surface.
- ZephyrBlu 3y agoThe thing that made me realize this was compilers! "Wait, code is just text?" "Always has been" I still have to remind myself of this sometimes when I think "woah, how does this work?" and then I try to step through how it might be built.
- eric-hu 3y agoI don’t know that code was always text, but I’m thankful to have been born in the days after programming assembly on punch cards was not the only way.
- robotresearcher 3y agoThe early days of programming was also text in the form of pencil on paper, then the program was transferred to the machine in various manual ways, such as flipping toggle switches, followed by punch cards. But the actual process of writing programs was always text. Even before electronic computers people wrote down algorithms to be executed by themselves on paper, or by rooms full of people whose job title was ‘computer’.
- billforsternz 3y agoMy first experience of programming was a 1970s 8085 kit with a hex keypad and a few digits of 7 segment LED display. The only book was Intel's technical reference manual for the 8085, and my first big project (a full year university project) involved conceiving the right program, writing it on paper in assembly language, hand assembling it, entering it as hex (a few hundred bytes). It worked first time because it pretty much had to work first time so I was very very careful.
- valianteffort 3y ago[flagged]
- dhosek 3y agoI think that’s one of the advantages of coming into computing in the early 80s. Computers like the Apple ][ were completely understandable by a single person (and it’s still my mental model for how a computer works 40 years later).