154 lines
6.4 KiB
Markdown
154 lines
6.4 KiB
Markdown
# 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.
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
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.
|