AFPISH OS

One CPU. One clock. Six always-on processes.

Life Systems Masterclass

You Don't Balance Six Lives.
You Schedule One Machine.

Allah, family, profession, independence, social life, and health are not six hobbies competing for your spare time. They are six processes sharing one CPU (your day) and one disk (your one life) — and the ones you never consciously schedule get starved or killed by the ones you do. This masterclass reframes AFPISH as an operating system: one kernel, five dependent processes, and the scheduling rules that keep all six alive at once by allocating time and space on purpose instead of by accident.

Allah
The Kernel
"What does every process answer to?"
Family
Process Zero (init)
"Whose child am I, and who's mine?"
Profession
The Foreground Process
"What's running when someone looks at my terminal?"
Independence
Persistent Storage
"What survives when the power goes out?"
Social
The Network Stack
"What packets go in and out?"
Health
The Hardware Itself
"What throttles when I don't maintain it?"

2. The Process Table

One machine, six processes — read like ps aux for a life instead of a server.

CONCEPT #1 REAL-TIME

Allah

"The Kernel"

The Human Metaphor: The kernel owns the master clock interrupt. Every other process, however important it looks, yields to it or the whole machine eventually corrupts. Five daily interrupts, plus Duha, are the only priority level nothing else is allowed to preempt.

Core Question Answered:
"What does every process answer to?"
  • Unit: Salah, Duha, fasting, Qur'an
  • Fixes Failure: Stops any other process from crowning itself kernel
  • Real-world Parallel: An interrupt that fires on schedule whether or not the CPU "feels like it"
CONCEPT #2 PID 1

Family

"Process Zero (init)"

The Human Metaphor: init spawns and supervises every user process on the machine; if it dies, its children don't die instantly — they become orphans nobody is watching. Family is the tree you inherited (parents) and the one you're spawning (spouse, kids).

Core Question Answered:
"Whose child am I, and who's mine?"
  • Unit: Parents, spouse, kids
  • Fixes Failure: Prevents orphaned processes nobody supervises
  • Real-world Parallel: A server whose init crashed still boots, but never reaches a usable state
CONCEPT #3 FOREGROUND

Profession

"The Foreground Process"

The Human Metaphor: The foreground process is the one everyone can see in the terminal window, so it's easy to mistake it for the whole machine. It's one process among six sharing the same CPU — not the CPU itself.

Core Question Answered:
"What's running when someone looks at my terminal?"
  • Unit: Projects, learning
  • Fixes Failure: Stops mistaking the visible job for the entire self
  • Real-world Parallel: Dozens of daemons keep a system alive while one foreground job gets the credit
CONCEPT #4 PERSISTENT

Independence

"Persistent Storage"

The Human Metaphor: RAM is fast but volatile; everything in it vanishes on power loss. Financial and mental independence are what you've written to disk instead of leaving in an employer's or a crowd's RAM.

Core Question Answered:
"What survives when the power goes out?"
  • Unit: Financial, mental / opinion
  • Fixes Failure: Prevents total data loss on one power failure
  • Real-world Parallel: A machine with no disk loses everything the instant power cuts
CONCEPT #5 I/O

Social

"The Network Stack"

The Human Metaphor: A machine can compute flawlessly in total isolation, but a severed network stack means no I/O with anyone else. Friends and charity are the packets in and out — and a fully open, unfirewalled port fails the same way a fully closed one does.

Core Question Answered:
"What packets go in and out?"
  • Unit: Friends, charity
  • Fixes Failure: Prevents both isolation and unbounded overexposure
  • Real-world Parallel: Zakat is a scheduled outbound packet the protocol requires, not a discretionary one
CONCEPT #6 HARDWARE

Health

"The Hardware Itself"

The Human Metaphor: Software can be flawless while fried hardware halts every process at once. Sleep, diet, and movement aren't one more app competing for CPU time — they're the chip everything else executes on.

Core Question Answered:
"What throttles when I don't maintain it?"
  • Unit: Gym, diet, sleep
  • Fixes Failure: Prevents total hardware failure that halts every process simultaneously
  • Real-world Parallel: Sleep debt doesn't pause one process — it underclocks the whole machine

3. Allah: The Kernel

REAL-TIME PRIORITY

The interrupt handler nothing else in the system is allowed to preempt.

The Snooze Button

Yusuf sets an alarm for Fajr and hits snooze — just five more minutes, it costs nothing. Except the adhan doesn't renegotiate. It fired on schedule regardless of how the CPU felt that morning, and ignoring an interrupt doesn't cancel it; it just queues a missed deadline that has to be made up later, and the debt compounds daily.

Treat Fajr as a low-priority background job and every other process on the machine will happily consume the slot — a scroll session, an extra hour of sleep, an email. The kernel doesn't fight for its own CPU time. That's the engineer's job, not the interrupt's.

The Fix: Real-Time Scheduling Class

Give the five daily prayers and Duha SCHED_FIFO priority in your actual calendar — blocked, not "hopefully available." Everything else negotiates for the gaps between them, never the reverse.

SCHED_OTHER (normal) Can be delayed indefinitely by higher-priority work
SCHED_FIFO (kernel) Runs the instant it's ready; nothing preempts it

The 1-Sentence Recall Lock-In

"The five daily interrupts aren't optional background tasks — they're the one priority level the rest of your day is scheduled around, not squeezed against."
Priority Level: REALTIME (SCHED_FIFO)
Frequency: 5x/day + Duha
Source: Qur'an 28:77 — "seek the home of the Hereafter, and do not forget your share of this world"

Visual Memory Anchor 1: Six Interrupts on a 24-Hour Timeline

SIX FIXED INTERRUPTS THE SCHEDULER CANNOT SKIP FAJR DUHA DHUHR ASR MAGHRIB ISHA F · P · I · S · H negotiate for the remaining slices Everything else negotiates for the gaps between these six fixed points — never the reverse.
/etc/cron.d/kernel-interrupts CRONTAB
# cannot be renice'd, cannot be killed, missed runs queue a makeup (qadaa)
05 05 * * *  sched --priority=REALTIME  salah --name="Fajr"
30 09 * * *  sched --priority=REALTIME  salah --name="Duha"    --rakat=2
30 12 * * *  sched --priority=REALTIME  salah --name="Dhuhr"
00 16 * * *  sched --priority=REALTIME  salah --name="Asr"
30 18 * * *  sched --priority=REALTIME  salah --name="Maghrib"
00 20 * * *  sched --priority=REALTIME  salah --name="Isha"

4. Family: Process Zero

PID 1

The process tree that dies loudest when it's starved, not fed.

The Partner Track

Sara works seventy-hour weeks for three straight years to make partner. She makes it — and her father has a stroke while she's four thousand kilometers away, and her kids call their stepmom's name at bedtime. Nothing crashed loudly. The processes she was starving didn't die instantly; they became zombies, technically still listed, no longer really running.

A process that only gets "whatever time is left over" isn't scheduled — it's opportunistic, and opportunistic processes starve the moment anything with higher declared priority shows up. Family loses that contest every single week unless it's given a guarantee, not an intention.

The Fix: A Dependency the OOM Killer Can't Touch

Give init-class processes an explicit Requires= on the processes above them and an OOMScoreAdjust that makes them the last thing ever killed under memory pressure — not the first thing cut when a deadline gets tight.

Opportunistic scheduling Runs only if nothing else claims the slot first
Guaranteed minimum A fixed weekly time-slice that survives a launch week

Danger: Orphaned-Process Syndrome

Children and spouse are technically still "listed" — same roof, same last name — but structurally unsupervised. Homework, grief, a hard day: all running unsupervised, because init never actually scheduled time for them, only intended to.

"Golden Rule: if it's not on the calendar with a guaranteed time-slice, it isn't running — it's a zombie."

Visual Memory Anchor 2: The Process Tree

parents.service Requires= (inherited) YOU init — PID 1 spouse.service co-init, Before=career KID_1 .service KID_2 .service if init stalls, children aren't killed — they're orphaned, silently
family.service SYSTEMD UNIT
[Unit]
Description=Family (PID 1 descendant tree)
Requires=parents.service
Before=career.service

[Service]
Restart=always
RestartSec=0
OOMScoreAdjust=-1000  # never eligible for the OOM killer

5. Profession: The Foreground Process

VISIBLE, NOT SPECIAL

The window everyone can see, mistaken for the machine that's running it.

The Promotion

Da'ud gets the promotion, and for the first time in years he can't remember eating dinner with his wife awake. He'd assumed the terminal window — his job title — was the whole machine. Six months in, a top on his own life would have shown the daemons quietly keeping the system alive — sleep, prayer, a marriage — all getting starved to feed one foreground process.

The foreground process isn't wrong to run. It's wrong to run unsupervised at 94% CPU while everything that isn't visible in the window gets silently deprioritized to STAT D — uninterruptible sleep, unable even to respond to a signal.

The Fix: Monitor the Whole Process Table

Cap Profession's CPU share deliberately — one process among six, never all six at once — and check ps aux on your own week before assuming the visible job is the only thing that matters.

Uncapped foreground Consumes whatever the scheduler doesn't defend elsewhere
cgroup CPU quota A hard ceiling profession cannot exceed, no matter the deadline

The 1-Sentence Recall Lock-In

"The foreground process is the one everyone can see; the daemons everyone can't see are the ones actually keeping the machine alive."
Visible To: Everyone — that's the trap
Fair Share of CPU: 1 of 6, not 6 of 6
Failure Signature: top shows 94% CPU, daemons stuck in state D

Visual Memory Anchor 3: The Process List Nobody Checks

profession --deadline=fri — FOREGROUND, 94% CPU salah.daemon     [S] sleeping — waiting for CPU family.daemon     [S] sleeping — waiting for CPU health.daemon     [S] sleeping — waiting for CPU social.daemon     [S] sleeping — waiting for CPU
a week, unmonitored CLI TRANSCRIPT
$ ps aux --sort=-%cpu
USER   PID  %CPU  %MEM  STAT  COMMAND
you    501  94.2   3.1  R     profession --deadline=fri
you    102   1.8   0.4  D     salah.daemon
you    103   0.6   0.2  D     family.daemon
you    104   0.3   0.1  D     health.daemon
# D = uninterruptible sleep. Not idle. Starved.

6. Independence: Persistent Storage

SURVIVES A REBOOT

What's written to disk, versus what only ever lived in someone else's RAM.

The Layoff Email

Layla is financially dependent on one employer and emotionally dependent on being liked there. When the layoff email lands, she loses her income and her sense of self on the same Tuesday morning — because both were stored in the same volatile, employer-owned RAM. Neither had ever been written anywhere she owned.

RAM is fast to read from and fast to write to, which is exactly why it's tempting to leave everything important there. It's also the first thing wiped the moment power is interrupted — and a single employer, a single platform, a single audience is one power source.

The Fix: Scheduled Writes to Disk

Automate a recurring transfer from volatile income to persistent savings, and from borrowed approval to convictions you hold regardless of who's applauding. Both need a write operation on a schedule, not a hope that it happens eventually.

RAM (volatile) Job income, workplace status — gone at power loss
Disk (persistent) Savings, an owned skill, a held conviction — survives it

Danger: Single Point of Failure

Income, identity, and self-worth all stored in one employer's volatile memory means one event wipes all three at once — not because any one of them was fragile alone, but because they were never on separate disks.

"Golden Rule: anything you can't survive losing in a day shouldn't be the only place you stored it."

Visual Memory Anchor 4: What a Power Loss Actually Erases

RAM (volatile) job income · workplace status EMPTIED ON POWER LOSS DISK (persistent) savings · owned skill · convictions SURVIVES A REBOOT scheduled WRITE
what actually survives a layoff YAML
# /etc/fstab-equivalent
mount: /independence/financial
  device: savings + owned-skill
  type: persistent   # not ramfs
  min_free: 6_months_expenses
mount: /independence/mental
  device: convictions
  type: persistent
  readonly_from: applause   # cannot be overwritten by opinion

7. Social: The Network Stack

RATE-LIMITED I/O

A closed port and an unfirewalled one fail the exact same way: nothing real gets through.

Two Machines, Same Failure

Omar either ghosts every group chat to "focus" — network stack effectively down, total isolation — or says yes to every request and every fundraiser, unfirewalled, no rate limit, every port wide open. Neither machine is healthy. One computes alone until it forgets how to route a packet at all; the other spends every cycle answering inbound traffic and never gets its own work done.

A working network stack isn't "maximally open" or "maximally closed." It's scheduled: specific outbound packets, on a cadence, to specific destinations, with a rule for everything else.

The Fix: Rate Limits in Both Directions

Set an outbound cadence for friends and charity so they actually happen on a schedule instead of "whenever," and set an inbound rate limit so the whole day doesn't get consumed answering everyone else's priorities.

Port fully closed Isolation — reads as "stable" right up until it isn't
Port fully open Unbounded inbound traffic drowns every other process

The 1-Sentence Recall Lock-In

"A network stack with no rate limit and one with no packets at all fail the same way: nothing real gets through."
Outbound Rate: Scheduled, not unlimited
Mandatory Packet: Zakat — not discretionary
Closed-Port Risk: Reads as stable right up until it isn't

Visual Memory Anchor 5: Scheduled Ports vs. an Open One

YOU FRIENDS CHARITY COMMUNITY rate-limited: 3/wk scheduled: 1/wk (zakat) rate-limited: 2/wk EVERYONE ELSE unfiltered inbound ⚠ NO RATE LIMIT
outbound / inbound social I/O FIREWALL RULES
# rate-limited outbound
-A OUTPUT -p charity  -m limit --limit 1/week  -j ACCEPT
-A OUTPUT -p friends  -m limit --limit 3/week  -j ACCEPT

# bounded inbound — no unlimited traffic from anyone
-A INPUT  -p everyone -m limit --limit 20/week -j ACCEPT
-A INPUT  -p everyone                        -j DROP

8. Health: The Hardware Itself

THE SUBSTRATE

Not one more process competing for CPU time — the chip everything else runs on.

Three All-Nighters

Karim pulls three all-nighters to ship a deadline, hits it, then gets sick for two weeks and misses the next three deadlines. Total output across the month was lower than if he'd slept. He debugged every process except the machine they were all running on.

You don't get a crash dialog when you're sleep-deprived. Every process just quietly runs thirty percent slower, and it's tempting to blame the processes — poor focus, low motivation — rather than the chip they're all executing on.

The Fix: Scheduled Maintenance Windows

Treat sleep, diet, and movement as maintenance the whole system requires on a fixed cadence — not an optional background task the scheduler is free to kill the instant load increases.

Deferred maintenance Runs fast short-term, throttles hard once thermal debt compounds
Scheduled maintenance A fixed floor (7h sleep) every process depends on, not negotiates around

Danger: Silent Thermal Throttling

There's no alert when you're running hot. Every process above the hardware just gets slower together, and because nothing crashed, the slowdown gets attributed to the processes instead of the substrate underneath all of them.

"Golden Rule: you cannot optimize software running on hardware you're actively destroying."

Visual Memory Anchor 6: What Throttles When the Chip Overheats

⚠ SLEEP DEBT → EVERY PROCESS ABOVE THROTTLES TOGETHER ALLAH FAMILY PROFESSION INDEPENDENCE SOCIAL HARDWARE — BODY sleep · diet · movement Fixing five processes never works if the sixth (the chip) is overheating.
hardware-health.rules YAML
groups:
  - name: hardware-health
    rules:
      - alert: SleepDebtCritical
        expr: hours_slept_avg_7d < 6
        for: 2d
        labels: { severity: throttle_all_processes }
        annotations:
          summary: "CPU (body) about to thermal-throttle every process"

9. The Scheduler's Law

DISTILLED RULE

Six processes, one clock, one rule that decides the other five without a daily renegotiation.

Schedule the Kernel First

None of the six domains individually causes a crash. What crashes a life is scheduling them in the wrong order — letting the foreground process claim the CPU before the kernel gets its interrupt, or leaving init to run on whatever time is left over instead of a guarantee. Fix the order once and the daily renegotiation disappears: pin the five daily interrupts as REALTIME, give init and hardware a guaranteed floor, and only then tune profession, independence, and social I/O for actual output. Qur'an 28:77 states the whole shape of the rule in one line — seek the Hereafter through what you've been given, and do not forget your share of this world. Neither half is optional; the order between them is what the whole system depends on.

Distillation Pipeline

DATA Raw hours in your day
DOMAINS A · F · P · I · S · H
MECHANISM Priority + guaranteed slice
RULE Kernel-first scheduling
priority.yaml YAML
schedule:
  - process: allah
    priority: REALTIME
  - process: family
    guarantee: yes
  - process: health
    guarantee: yes
  - process: profession
    quota: 1/6 # tunable, never all six
  - process: independence
    quota: 1/6
  - process: social
    quota: 1/6

You don't find balance. You configure it once, then run the scheduler.

10. Reader Retention & Active Recall System

LONG-TERM MEMORY LOCK

Interactive self-testing tools designed to lock these mental models into your long-term memory before you leave.

RECALL CUE #1

Why can't a "busy day" ever cancel Fajr the way it can cancel a meeting?

RECALL CUE #2

Why does a neglected family often look fine right up until it doesn't?

RECALL CUE #3

Why is it dangerous to let your job title answer "who am I"?

RECALL CUE #4

Why can a layoff destroy income and identity on the same day?

RECALL CUE #5

What do total isolation and saying yes to everyone have in common?

RECALL CUE #6

Why can perfect discipline in five domains still fail the sixth week?

RECALL CUE #7

What's the one scheduling change that removes the daily renegotiation?

11. One Machine, One Clock

From six apps fighting for attention to one scheduler with a guaranteed slice for each.

The Multitasking Illusion

It feels like six independent apps competing for your attention — work, family, faith, money, friends, and your body, each demanding its own dedicated window. But there's one body, one day, twenty-four hours: a single-core CPU time-slicing between processes that only look independent from the outside.

Why It Feels Right

Each domain really does have its own priorities and its own crises — treating them as separate apps isn't wrong, only incomplete, because they all still share one substrate underneath.

The Scheduled System

Explicit priorities plus a guaranteed minimum time-slice per process prevents any one domain from starving the rest — a real-time interrupt for the kernel, a protected floor for init and hardware, and a tunable quota for the three that can actually flex.

What It Buys

A machine that degrades gracefully under load instead of catastrophically — one process slows, not six domains collapsing at once.

Visual Memory Anchor: Six Processes, One Kernel, One Output

KERNEL Allah — REALTIME FAMILY (init) guaranteed floor PROFESSION (fg) quota: 1/6 INDEPENDENCE (disk) quota: 1/6 SOCIAL (network) quota: 1/6 HEALTH (hardware) guaranteed floor FALAH a life that doesn't crash Five scheduled processes, one privileged kernel, one output — not six lives running in parallel.

12. Build Order

The mistake this avoids: optimizing profession before the kernel and init are even scheduled.

Phase 1 · Mandatory Baseline

Pin the Kernel

  • Block the five prayers plus Duha as REALTIME on the actual calendar, not "hopefully available"
  • Nothing else can preempt it — the day finally has a fixed spine
  • Feels rigid for the first two weeks
Phase 2 · Safety & Invariants

Guarantee init & Hardware

  • A minimum weekly slice for family (e.g. two non-negotiable dinners) that survives the busiest work week
  • A 7-hour sleep floor treated as scheduled maintenance, not optional
  • Profession may feel slower in the short term
Phase 3 · Optimization

Tune the Rest

  • Now tune profession, independence, and social I/O for real output
  • The foundation processes can't be starved by whatever you optimize here
  • Requires re-tuning as life stage changes — the config isn't static