Wrote a userspace sandboxing program which ensures all internet access (TCP+UDP) for child processes goes through a SOCKS proxy: gist.github.com/rrampage/92f...
This is inspired by Tor's Oniux
#linux #docker #sandbox
@rrampage.bsky.social
Bored Programmer | Interested in distributed systems, databases | On a quest to build minimal software • https://rrampage.github.io • https://github.com/rrampage/
Wrote a userspace sandboxing program which ensures all internet access (TCP+UDP) for child processes goes through a SOCKS proxy: gist.github.com/rrampage/92f...
This is inspired by Tor's Oniux
#linux #docker #sandbox
TIL that we can check public IP address via DNS lookup:
- `dig +short myip.opendns.com @resolver1.opendns.com -4`
- `dig +short AAAA myip.opendns.com @resolver1.opendns.com` (IPv6)
- dig +short ANY whoami.akamai.net @ns1-1.akamaitech.net
- `dig +short TXT o-o.myaddr.l.google.com @ns1.google.com`
A 193 byte ELF kernel printing Hello World to UART
Built a tiny Hello World ARM64 ELF kernel which boots in a UEFI shell on QEMU. It compiles to a 193 byte binary.
Learning a lot about bootloaders, ARM64 device trees, QEMU. Would love links to useful resources and tips for debugging
Code: gist.github.com/rrampage/c66...
Would love to give this a try!
09.07.2025 09:39 — 👍 0 🔁 0 💬 1 📌 0My strace command is usually like `strace -fintrCDTYyy -o strace.log -v -s128`. Wrote a blog: rrampage.github.io/2025/06/13/s...
I remember a faulty rsync command causing a prod issue because of one of the options deleting files from the destination. We called it "rsink"
Solved the JIT calculator challenge using ARM64 assembly. This challenge helped me understand the mechanisms on executing JIT code on Linux. Learned more about the memfd_create and mmap syscalls.
Code: gist.github.com/rrampage/8d1...
Challenge: ochagavia.nl/blog/the-jit...
#linux #arm64
Solved the JIT calculator challenge using ARM64 assembly. This challenge helped me understand the mechanisms on executing JIT code on Linux. Learned more about the memfd_create and mmap syscalls.
Code: gist.github.com/rrampage/8d1...
Challenge: ochagavia.nl/blog/the-jit...
#linux #arm64
Hand-crafted ELF in ARM64 assembly (no linker!): gist.github.com/rrampage/745...
Wrote the ELF headers in the assembly file. Uses `as` to create the object file and `objcopy` to fish out the binary which is a valid ELF. ELF headers overhead is 120 bytes. Code is 12 bytes. #linux #arm64 #elf
elfcat visualization of binary. Just 56 bytes of code and 176 bytes overall
ARM64 implementation of `yes` utility, similar throughput as GNU yes. Compiles to 176 bytes! Code: gist.github.com/rrampage/157...
#linux #arm
Wrote up a small post on using strace to better debug Linux programs: rrampage.github.io/2025/06/13/s...
#linux #strace #debug
Cleaned up the C code to not rely on any standard library. Now binaries for both C and Zig are at ~5kb.
Next step, write own _start function instead of relying on the main function
A minimal Linux shell in C and Zig: gist.github.com/rrampage/504...
- <10 kb executables (using `zig cc` for C and `- O ReleaseSmall` for Zig)
- Uses `clone3` instead of `fork`, `getdents64` to check for file name in large directories, `execveat` to open binary from `dirfd` used in getdents64
#zig
TIL you can start a SSH session in screen/tmux which will auto-end on detach e.g `ssh user@server -t tmux new-session -A -s S1` or `ssh user@server -t screen -d -R S1`. This will create a session "S1" if it does not exist and attach to "S1" if it exists. Useful for running commands on flaky network
21.04.2025 06:31 — 👍 0 🔁 0 💬 0 📌 0@mtlynch.io Followed your awesome post mtlynch.io/notes/nix-or... to get NixOS painlessly setup on OCI ARM
11.04.2025 23:08 — 👍 1 🔁 0 💬 1 📌 0Hyderabad boi attending Hytradboi :)
#hytradboi
📢 Episode 222 is out! 📢 In this episode, @elbeno.com and I chat with @tristanbrindle.com about graph algorithms resources 📊, tropical semirings 🌴, Stepanov stories 📖, FM2GP 📓, EOP 📙, TV shows & movies 📺 and more! adspthepodcast.com/2025/02/21/E...
21.02.2025 13:23 — 👍 8 🔁 5 💬 0 📌 0Okay, these challenges are addictive! Finished the 2025.1 challenge and solved 2024.4, 2024.3 and 2024.2 challenges from Internet archive. Loved how each challenge focuses on a small set of operators and makes us use them in various devious combinations to solve the problems #APL #Dyalog
19.02.2025 18:38 — 👍 0 🔁 1 💬 0 📌 0Okay, these challenges are addictive! Finished the 2025.1 challenge and solved 2024.4, 2024.3 and 2024.2 challenges from Internet archive. Loved how each challenge focuses on a small set of operators and makes us use them in various devious combinations to solve the problems #APL #Dyalog
19.02.2025 18:38 — 👍 0 🔁 1 💬 0 📌 0Enjoying learning APL by doing the Dyalog APL challenge (challenge.dyalog.com) #apl
19.02.2025 11:32 — 👍 1 🔁 0 💬 1 📌 0