Why BcalcOS Uses SysVinit

Article 15 of 15
Why BcalcOS Uses SysVinit

The obvious final topic is: Why does BcalcOS use SysVinit?

Simplicity Matters

One of the principles behind BcalcOS is that a computer operating system shouldn’t be unnecessarily complicated.

That of course doesn’t mean that every component has to be old or that newer technology is automatically bad.

It means that complexity should have a reason.

SysVinit provides the functionality BcalcOS needs to initialize the system and manage its services without requiring a larger, more integrated system-management framework.

It’s Understandable

We’ve spent this entire series looking at how SysVinit works.

It may be a cliche but it’s absolutely true here: if I, as a software layman, can obtain a working understanding of SysVinit, you can as well.

Want to see the default runlevel?
Look at: /etc/inittab

Want to see the init scripts?
Look at: /etc/init.d/

Want to see what BcalcOS starts for its normal runlevel?
Look at: /etc/rc2.d/

Want to understand how a particular service is managed? Read its init script.

The system isn’t hiding these mechanisms from you.

That fits an important BcalcOS philosophy:
Users should be able to determine what their computers are doing.

What That Means in Practice

Because services are managed by readable init scripts and traditional text logs, troubleshooting and customization on BcalcOS tend to be direct: when something acts up, the init script, the runlevel links, and the logs under /var/log/ are all available to read.

Systemd’s journal, by contrast, is an integrated binary-format system: more powerful for searching across logs, but opaque to ordinary tools.

That inspectability isn’t a free lunch though. Sequential startup is less parallel than a systemd system’s, and the tradeoffs around integration and fewer built-in management facilities are real.

BcalcOS gladly accepts those disadvantages for what it gets in return: an init system you, the regular user, can read and understand.

Stability

Beyond philosophy and preference: SysVinit is a mature, slowly-changing codebase. It is stable and well-understood after decades of use, rather than rapidly evolving.

That maturity is part of what makes it predictable.

Its purposeful constraint is another. Bluntly: SysVinit isn’t about the scope creep.

Key Takeaway

You don’t need to become a SysVinit expert to understand it.

The basic model is:

Linux kernel
      ↓
SysVinit (PID 1)
      ↓
system initialization
      ↓
runlevel 2
      ↓
init scripts
      ↓
services
      ↓
BcalcOS desktop

And when the system shuts down, that process moves in the other direction.

Each step of the chain is open to you to review and revise.

The point of this series was to make one part of the BcalcOS operating system a little less mysterious.

After all, it’s your personal computer.