Tutorials

This page features various tutorials I have created to help new researchers get started in hardware and system security.

Firmware Tutorial Series

This is a simple tutorial series about basics about writing firmware for embedded systems. All the tutorials are based on RISC-V ISA based picoRV32 processor design and can be simulated to visualize the outputs to the terminal.

  1. Firmware at Bare metal
  2. Hello world! Firmware
  3. Linker Scripts in Brief
  4. Bootloader at Home?

RackeTutes : Verification with Racket

RackeTutes is a tutorial series for Racket and Rosette solver-aided programming language to promote “Secure and Validated” hardware designs. This series utilize Jupyter Notebook for interactive verification.

  1. Racket with Jupyter
  2. Racket101
  3. Rosette101
  4. Veri(fy)log
  5. Serval

LetsKernel : Linux Kernel Programming Tutorial

LetsKernel is a tutorial series based on the book “The Linux Kernel Module Programming Guide”. Objective of this series is to familiarize linux kernel development with ubuntu based linux kernels.

  1. Hello World! Kernel Module

TinyOS🐞: Operating System Tutorial Series

TinyOS is a tutorial series about minimal operating system kernel implementation based on the comprehensive tutorial series mini-risscv-os. This operating system kernel is based on RISC-V. instrucion set architecture. A fully built environment is available as a docker environment. This tutorial will cover several chapters related to implementing a operating system from begining.

  1. TinyOS
  2. Hello world!
  3. Context-Switch
  4. Multitasking
  5. TimerInterrupts
  6. Preemptive-Scheduling
  7. Spinlocks
  8. Interrupts and Peripherals

CrPT🔑: Applications of Cryptography

Welcome to my new blog series on Applications of Cryptography. This series aims to examine the factors and trends that will and will not influence the future of applications that rely on cryptography. This series contains interactive examples to illustrate different concepts behind the cryptogrphic algorithms.

  1. Introduction
  2. Lattice Problem

I’ve written a bunch of blog articles on all sorts of engineering and research stuff. You can find the below.

  1. Android Device Security and GSI
  2. Routour🗼: Building the Ultimate Travel Router
  3. Docker for Research
  4. Computing Giants
  5. Learn from Failures
  6. Neural Network on 8-bits?

Tools, Framworks and Hardware