Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Comments on What's the "big picture" of how my operating system is put together?

Post

What's the "big picture" of how my operating system is put together?

+5
−0

My understanding is that one of the key advantages of Linux is modularity: the actual Linux kernel is quite small, and then what we call Linux is that plus the "rest of the system" - hence "operating system" (or "Linux Systems"). And then the latter is typically, but not necessarily GNU (or should I say "the GNU system", to distinguish it from the organization?), and it's built up of a lot of smaller pieces.

Now, my package manager tells me that I have over 2500 installed packages, but it seems like the system isn't really as complicated as that implies. I know that a single application could account for many packages in some cases (e.g. over 100 of them on my system seem to have something to do with Python). And I've heard nebulous terms like "desktop environment" and "window manager" that seem like they describe conceptually distinct, separable components of this "Linux system".

Is it really like that? Without getting into details about the dependencies between packages, does it make sense to think of them as logically grouped into a few components?

If so, what might those components be? And how modular are they really - can a distro maintainer basically choose an option for each and call it a day; or does everything have to be stitched together at the level of individual software packages and then carefully reconfigured to cooperate properly; or just what?

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

Split multiple questions (5 comments)
Split multiple questions
matthewsnyder‭ wrote 5 months ago

This is an interesting topic but there's multiple questions here. I tried to write an answer, but even though I stayed very superficial, it ended being long. I gave up because I don't want to keep up with the maintenance of such a long post.

IMO this should be split into:

  • How do I analyze the package inventory and dependency graph on my OS? (where you can talk about things like pactree)
  • What is the architecture of a Linux system? (where you can do the taxonomy of DE, graphics server, systemd...)
  • Can I swap out my DE? (you've picked an uncharacteristic example, most things like browsers or file managers obviously can be swapped, it's only the DE that's mysterious because "it starts on its own from the start so how could I possibly swap it")
matthewsnyder‭ wrote 5 months ago

Also, I feel like this invites the interjection. It would be better if the question sounded like it understands the difference between Linux and an OS, and maybe there could be another question like "Why do people say Linux is just the kernel, not the OS?" if it's really necessary.

Karl Knechtel‭ wrote 5 months ago

The second of those questions is really what I was trying to get at. It honestly didn't occur to me that the DE would be "special" in this regard. The goal is to identify coherent components of the system - questions about swapping them could be separate, sure. What I meant about the package count is simply that there are a lot of packages, so I want to be able to think about groups of packages that make up comprehensible subsystems. I don't actually care about a dependency graph.

Karl Knechtel‭ wrote 5 months ago

I more or less rewrote the question to try to express what I'm getting at more clearly. How does it look now?

matthewsnyder‭ wrote 5 months ago

Yeah, I think it's much better now.