Yet another System Engineering blog

2019-08-23
Write yout own fuzzer for NetBSD kernel! Fuzzing Filesystem

Write yout own fuzzer for NetBSD kernel! Fuzzing Filesystem

How Fuzzing works? The dummy Fuzzer.

Recently I started working on Fuzzing Filesystems on NetBSD using AFL.
In the previous post I explained the basics of the fuzzing and the way how kernel can expose coverage data.
This post is divided to the 3 sections:

  1. Porting AFL kernel mode to work with NetBSD.
  2. Running kernel fuzzing benchmark.
  3. Example howto fuzzing particular Filesystem.
Read More

2019-07-22
Write yout own fuzzer for NetBSD kernel!

Write yout own fuzzer for NetBSD kernel!

How Fuzzing works? The dummy Fuzzer.

The easy way to describe fuzzing is to compare it to the process of unit testing a program, but with different input. This input can be random, or it can be generated in some way that makes it unexpected form standard execution perspective.

The simplest ‘fuzzer’ can be written in few lines of bash, by getting N bytes from /dev/rand, and putting them to the program as a parameter.

Read More

2018-09-29
EuroBSDCon 2018

EuroBSDCon 2018

This year I attended the EuroBSD conference in Bucharest as a presenter. During my talk, I summarized last year of research and development of Live-patching feature for the FreeBSD kernel.

Read More

2018-09-01
Livepatching the kernel

Livepatching the kernel

One of the interesting features of the modern operating systems is live-patching: availability to do updates of the kernel without the need of rebooting the system. Updates without any downtime can be beneficial for businesses such a Data Centers or other service providers. In this post, we will take a look at how different kernels implemented this feature.

Read More

2018-07-28
ELF's Linker's and other magical creatures

ELF's Linker's and other magical creatures

One of the popular topics on many engineering blogs is program startup and ELF file structure.
Given that fact, a reader may have some objections about whether another post about ELF makes sense or not. Besides that, I decided to attack this topic from the different angle.
There are two reasons beyond that decision: first of all is a really interesting topic, but more importantly, this material will be useful in the future (without spoiling why).

Read More

2018-05-16
Writing Linux Filesystem 4Fun

Writing Linux Filesystem 4Fun

Writing Linux Filesystem 4Fun

In May I did a talk for C/Cpp Dublin meetup group, which took place in MongoDB office.
During the presentation, I went from a historical background to the real implementation of simple filesystem on the Linux.

Read More

2018-04-28
Digging into Linux FileSystems

Digging into Linux FileSystems

UNIX Filesystem story goes back to the first implementation of the operating system. Since then, many different implementations and improvements were made. Due to that FileSystems became quite composed but also rock solid piece of software. Currently, most people treat FS as a black box or an indivisible part of OS.
In this article, I will present basics structures and differences between Linux filesystems.

Read More

2017-07-15
How to Abstract Hardware Acceleration Device

How to Abstract Hardware Acceleration Device

How to abstract hardware acceleration device in cloud environment

During this year Xen Developer Summit, I gave a presentation about abstracting hardware acceleration device. The presentation went from topics related to accelerators in general to specific areas important for virtualization and cloud.

Read More

2016-08-11
The Xen way

The Xen way

What is Xen?

In terms of open source hypervisor main players are: KVM and Xen, these projects can be used on a personal laptop as well as in commercial. There are also: Virtual Box which is good if you are using Windows and bhyve for these that are die hard BSD fans. From commercial solution should be mentioned: VMware ESXi and Microsoft Hyper-V.
In this article, I’m going to describe some basics concepts of Xen hypervisor. Usually, Xen is considered as difficult to configure and manage, but In this article, I would like to overturn this myth. My goal is to make a short introduction and highlight basic concepts and show some examples. One thing that I didn’t want to do is to provide a complex overview of each tool, installation etc, rather than I will provide more links to better and more focused on one topic articles.

Read More

2016-06-13
Qemu for the impatient

Qemu for the impatient

Why not using qemu?

In this article, I am trying to provide some useful qemu configuration for debugging or evaluation purposes. I will assume that reader is already using qemu so I am not going to describe any theoretical aspects of this tool but focus on real use-cases that can increase productivity and save some time. Rather than describing why we should use qemu I will try just touch few cases when in my opinion qemu is not the best choice.

Read More