Surveying the eBPF Developer Ecosystem

This article provides guide to the different developer tools available for writing eBPF programs, covering the core tools BCC, bpftrace, ebpf-go, and libbpf. These tools satisfy a different use case depending on whether you are trying to use eBPF for running analysis scripts, or full-fledged programs, in what programming language you wish to use, and the maturity and feature parity with the most recent eBPF features in the Linux kernel. Unfortunately, there is no single definitive guide to BPF and there is still a lot of unwritten knowledge, though some of the resources provided in this article may help you get started on your own journey. ...

March 22, 2024 · 20 min · Kevin Sookocheff

What is eBPF and Why is it Important?

A short tagline from the book Learning eBPF describes eBPF as a revolutionary kernel technology that allows developers to write custom code that can be loaded into the kernel dynamically, changing the way the kernel behaves. The key word in this phrase is dynamically. eBPF allows you to write custom code that changes the way the kernel behaves without having to implement a kernel module or integrate your code directly into the kernel. ...

December 4, 2023 · 5 min · Kevin Sookocheff

Generating Large Test Files

I was recently testing file upload performance, and needed several large files of different sizes to test with. To make the math easier, it was helpful if I had files with round numbered sizes like 10MB, 20MB, or 100MB. After searching around for files of the right size, it turns out the easiest solution is to generate one yourself using the Linux command line. Depending on your needs, you can use two different methods of generating files using some simple commands. ...

May 24, 2023 · 2 min · Kevin Sookocheff

A cheap home server

In order to have a home server you need the server. That is, you need the hardware. You could probably find all sorts of information comparing performance, power consumption, and cost for an assortment of different parts (check tomshardware.com or do some intense [Googling][2]). Or, you can trust that I’ve done my research and go with the same setup as me. ...

January 11, 2011 · 2 min · Kevin Sookocheff

How to get Pulse Audio to recognize your Delta 44 (and other ICE1712 cards)

I bought a used Delta 44 soundcard with the intention of recording my guitar playing. Pairing this with Rockit 5 powered monitors, a Mackie 802-VLZ3 mixer and the classic Shure SM57 microphone made for a good quality, inexpensive home studio. Using the PCI-based Delta 44 meant that any old computer would work and my idea was to use vanilla Ubuntu and install the Ardour digital audio workstation to push costs even further down. So far so good. Now the only issue is getting everything up and running. Ubuntu is a fairly mature distribution; you can expect a certain level of quality with each release. Unfortunately, this has not been the case with PulseAudio. I won’t go into details; suffice it to say it had a tumultuous upbringing and many of the kinks have since been worked out. Anyways, I quickly discovered that PulseAudio does not recognize the Delta 44. Don’t worry, this is a known problem and a workaround exists. Finding the workaround, however, did take some time. ...

September 28, 2010 · 4 min · Kevin Sookocheff

Share multiple mt-daap libraries

I recently moved all of our household music to a shared network drive and was looking for a solution to stream these libraries as distinct entities; I wanted to keep my wife’s library separate mostly so I could keep all of my painstakingly catalouged music organized exactly how I like it. I was already using mt-daapd, now known as the Firefly Media Server, to stream my own library from my Linux server. Unfortunately, it doesn’t support streaming two libraries from one program instance. The solution to this is to run two copies of mt-daapd and configure them to play nice with each other. Don’t worry, it’s not quite as difficult as it sounds. The first thing you’ll need is to have a separate configuration file for the second daap instance. The easiest way to do this is to copy the files from an existing installation. ...

August 3, 2010 · 3 min · Kevin Sookocheff

Mounting SAMBA shares from the command line

I recently started using Xubuntu to see if the proclaimed speed differences actually made a difference in productivity. Unfortunately, the Thunar file manager does not automatically recognize network drives so I needed to manually mount SAMBA shares from the command line. In my searches I stumbled across this thread giving the exact solution I used. Hopefully this helps someone else who is having this same problem. ...

July 28, 2010 · 1 min · Kevin Sookocheff

How to forward root users mail to an external address

I recently set up a RAID array wanted to keep notified of any errors that may occur. By default Ubuntu Server sends mail to the root user whenever an error occurs but logging in as root to check mail every so often didn’t seem very convenient. There had to be a better way. The best information that I found came from the Ubuntu community forums. Here I’ll expand on that discussion, hopefully helping other people who are trying to do the same thing. The traditional way to forward mail is to create a .forward file in your home directory, entering the addresses that you would like to forward mail to. ...

June 1, 2010 · 5 min · Kevin Sookocheff

How to monitor a RAID array in Ubuntu server

I’ve been searching for a way to reliably monitor a RAID array. I found a few resources and decided to compile them in one post. If you are running Ubuntu Server skip to the bottom for some good news. ...

May 28, 2010 · 3 min · Kevin Sookocheff