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
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!
My 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
@mtlynch.io Followed your awesome post mtlynch.io/notes/nix-or... to get NixOS painlessly setup on OCI ARM
Hyderabad 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...
Okay, 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
Okay, 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
Enjoying learning APL by doing the Dyalog APL challenge (challenge.dyalog.com) #apl