Files
pornOS/README.md
T

6.4 KiB

pornOS - The Most Miserable Operating System Ever

     ____            ____  _____  _____  ______
    |  _ \  ___  ___|  _ \|  __ \/ _ \ \/ / ___|
    | |_) / _ \/ __| |_) | |  | | | | \  /|  _|
    |  __/  __/\__ \  _ <| |__| | |_| /  \| |___
    |_|   \___||___/\_\ \_\_____/ \___/_/\_\____|

pornOS is a deliberately miserable, fully joke GNU/Linux distribution. Do not use this for anything real. We're not even sure it works.

Requirements Status

# Requirement Status
1 Package manager porn, hybrid compile+binary, .pornpkg format, written in Holy Porn ✅ pornpkg
2 TUI install, fastfetch logo = Pornhub logo in ASCII ✅ porninstaller.py
3 Miserable to use, working ISO, install script, custom init porn ✅ porn init, installer, build-pornos.py
4 No glibc/musl, uses pornlibc ✅ usr/lib/pornlibc/libporn.so
5 Lightweight ✅ (pure Python + shell + own FS)
6 Very porn ✅ obviously
7 ctrl+p opens porncli (CLI) / pornGUI (browser to Pornhub) ✅
8 Every 20 min plays "Misery" by Pupsies ✅ misery-daemon
9 Miserable working OS ✅
10 Kernel linux-very-hardened (linux-hardened + bore), genuine ass, xvideos instead of sudo ✅ xvideos

Bonus (no archiso, no ext4): we wrote our own filesystem called cum (src/cumfs/) and use our own tools + porn init + own bootloader config. Your drive is cum.

Components

Holy Porn (language)

src/holyporn/holyporn.py - the official esoteric language of pornOS. All system utilities (the package manager) are written in it.

Syntax highlights:

  • porn x = 6 - declare
  • sexy("hi") - print
  • naked foo(a): { } - define function
  • erect cond: { } limp: { } - if/else
  • wet i 5: { } - for loop
  • thrust() - return
  • creampie(a,b) add, gangbang(a,b) multiply, cuckold(a,b) subtract, smut(a,b) divide
  • missionary(file) import, jack(cmd) run shell, finger() input
  • husl / bonk - program start/end
  • prostate() - system info

Holy Porn is a prefix-notation (s-expression-like) language, compiled/interpreted to Python, for maximum misery.

pornlibc (requirement #4)

src/pornlibc/libporn.c + Makefile - pornOS's own standard library. No glibc/musl. A tiny, auditable shared object (libporn.so) exporting porn_write, porn_read, porn_exit, string helpers, a minimal porn_printf, and version queries. Built with make on a real host (sudo make install -> /usr/lib/pornlibc/libporn.so). When the build host has no compiler, the pipeline ships a stub so pornOS always boots.

pornpkg (package manager)

src/pornpkg/pornpkg written entirely in Holy Porn. Hybrid package manager supporting install/remove/search/list/upgrade/update/clean/info.

porncli / pornGUI

src/porncli/porncli.py - full TUI shell tool with many themed commands (proton, protonvpn, nsfw, nakedpics, stripclub, hentai, gangang, camgirl, dominatrix, exhibitionist, voyeur, onlyfan, roleplay, fetish, latex, etc.)

src/pornGUI/pornGUI.py - opens the browser with a Pornhub page.

Both are bound to ctrl+p via src/scripts/pornsh.

cum filesystem

src/cumfs/ - our own filesystem that replaces ext4. Your drive is cum.

  • include/cumfs.h - on-disk format spec (superblock, inode table, data region)
  • mkfs.cum (Python) + mkfs.cum.c (reference C impl) - build a cum image
  • cum-ls - inspect / extract / --info a cum image
  • cumfs.c + Makefile - in-kernel Linux VFS driver (mount -t cum)

cum is read-only, flat, simple and pure. Just like it sounds.

porn (init)

src/porninit/porn - custom init replacing systemd. Handles initramfs pivot + real-root bring-up: mounts core filesystems, mounts the cum root, loads udev, starts the misery daemon, sets hostname, spawns agetty.

xvideos (sudo replacement)

src/xvideos/xvideos - the only way to get root on pornOS. xvideos pacman -S vim, xvideos -u root bash, etc.

misery-daemon

src/misery-daemon/misery-daemon - plays "Misery" by Pupsies every 20 minutes (1200 seconds). Includes an init script for completeness.

porninstaller

src/installer/porninstaller.py - TUI installer with the Pornhub-ascii logo, GPT partitioning, cum formatting, the pornOS userland, kernel, init, and boot setup. No pacstrap, no archiso - our own components end to end.

linux-very-hardened (kernel)

src/kernel/ - the custom pornOS kernel, requirement #10: linux-hardened + BORE, genuine ass. It's linux-hardened in spirit (hardening .config + lockdown LSMs + memory hardening) and ships the BORE (Burst-Oriented Response Enhancer) EEVDF scheduler. See src/kernel/README.md and src/kernel/docs/HARDENING.md for the full decision log and a per-switch table of what's hardened and why.

Built on a real build host via src/kernel/scripts/build.sh (no compiler exists inside pornOS itself), producing vmlinuz-linux-very-hardened plus System.map and config-. BORE is a runtime toggle: sysctl kernel.sched_bore. On boot porn-init prints the BORE banner so you know the "very hardened" claim isn't a placebo.

Build / Test (NO archiso)

build/build-pornos.py assembles the pornOS userland, packs it into a cum filesystem image, builds a cpio initramfs, and produces a bootable El Torito ISO with the host tools (xorriso / mkisofs / genisoimage + syslinux). The .cum rootfs image and initramfs are always produced even without ISO tools.

# Run the holy porn test suite
python3 src/holyporn/holyporn.py tests/test.hp

# Full no-archiso build -> build/pornos.cum, build/initramfs.cpio.gz, build/pornos-live.iso
python3 build/build-pornos.py

# Inspect the cum image
python3 src/cumfs/cum-ls --info build/pornos.cum
python3 src/cumfs/cum-ls build/pornos.cum

Needs a kernel image at /boot/vmlinuz-linux-very-hardened for the ISO, and xorriso/mkisofs/genisoimage + syslinux on the build host for the ISO step. The cum rootfs does not need any of that.

Quick demo (without arch)

python3 src/holyporn/holyporn.py tests/test.hp
./src/pornpkg/pornpkg list
./src/xvideos/xvideos --version
python3 src/porncli/porncli.py   # then type 'proton', 'exit'

Disclaimer

This is a joke. pornOS is not a real, secure, or usable operating system. While xvideos accepts any password and there's no firewall, that's exactly the point: it is very porn and very miserable. Don't run it on real hardware. Use a VM. Safer: don't use it at all.