# Kernel Hacking - Write a Cryptographic Module(2/3)

Welcome back to the second part of this series of tutorial on Linux kernel hacking. Below, you will find the links to the other parts of the series. If you have not read the first part yet, make sure to start from there. Part one: Introduction to the Linux kernel architecture; Part two(this one): Building a device driver from scratch; Part three: Introduction to syscalls, how to create a new syscall; In this article, we will try to extend our knowledge about Linux programming by building a kernel module that actually does something.

# Kernel Hacking - Introduction To The Linux Kernel(1/3)

This guide will walk you through a brief introduction on how to get started with kernel hacking. The guide is split into three parts, each one covering one of the following topic: Part one(this one): Introduction to the Linux kernel architecture; Part two: Building a device driver from scratch; Part three: Introduction to syscalls, how to create a new syscall; While this guide aims to provide a beginner-friendly resource to get started on kernel hacking, I take for granted some prior knowledge:

# How To Install OpenBSD on DigitalOcean

Recently, I had to set up a new server based on OpenBSD on DigitalOcean. While they do support non-Linux systems such as FreeBSD, they do not provide official supports for other BSD flavours such as OpenBSD. In this guide, we will see how to overcome this small inconvenient by manually flashing the installer image in the boot sector of the hard drive. Let’s get started. Create A New Droplet The first thing we need to do is to create a new droplet from the main menu of DigitalOcean as shown in the following picture.

# How to use Smart Pointers in C++

In this guide we will see smart pointers in C++ as a replacement to the old, unsafe, C-like pointers. I will assume that you have some knowledge of modern C++(i.e., $\geq$ C++11) and of object oriented programming. What Is a Smart Pointer? A smart pointer is an object that simulates a normal pointer while ensuring the program to be free of memory leaks. It achieves that by providing an automatic memory management system that deletes an object if no longer in use.

# Evaluating Limits With Euler’s Number

In calculus, there are many ways to evaluate(i.e., finding the actual value) a limit. There is not a preferred method over another, you have to learn all of them and choose the right one according to the limit you are trying to solve. In this guide, we will see how to solve limits using Euler’s number($e$). Before going further, I will assume that you already know the formal definition of a limit, how to solve them(at least the simpler one) and the basics of algebra.