RSSAmplifier

Blog

Shawn Anastasio

A little blog showcasing some of my projects and findings over the years.

anastas.ioRSS feed ↗4 posts

Latest posts

Debugging incorrectly closed file descriptors with LD_PRELOAD

I recently tracked down a bug in a relatively complex piece of software using the LD_PRELOAD mechanism and I figured it was worth documenting it here in case anybody finds it useful or interesting. For those unfamiliar, LD_PRELOAD is a hack present in the dynamic linker of most unix-like systems that allows hooking calls to any functions located in a dynamic library. It goes without saying that…

Programming a Xilinx XC9500XL CPLD with a Raspberry Pi and xc3sprog

I recently got a breakout board for the XC9572XL CPLD from Dangerous Prototypes to play around with, which was particularly interesting to me because of its 5v tolerant I/O banks. Soon after it arrived, though, I realized I didn’t have an ISE-compatible Xilinx JTAG adapter to program it, but thankfully a number of open source solutions exist that allow you to program the device without forking…

Running a mainline linux kernel on the NVIDIA Jetson Xavier AGX

The Jetson Xavier AGX is an embedded ARM64 linux platform from NVIDIA with pretty impressive specifications and a decent software ecosystem. Most users will probably be using the NVIDIA-provided Linux4Tegra (L4T) distribution on their Xaviers, which comes with a laughably ancient 4.9 kernel build and quite a few out-of-tree drivers. This means users will miss out on new features, upstream driver…

OSDEV: Implementing a basic x86 page frame allocator in C

When writing an operating system for any architecture, one of the most important functions you’ll have to write is the page frame allocator. The page frame allocator allows the OS to divide the physical memory available on a system into chunks called page frames, which can then be used later to allocate memory to applications with a separate paging function. There are many methods of page frame…