# mastermakrela - Projects & Memoirs > Personal blog and memoir website showcasing software engineering projects, kernel programming, mobile development, and web technologies. Features detailed technical articles about Flutter, Bun, Linux kernel development, and various open-source projects. ## Overview This is the personal website of mastermakrela, featuring: - Technical articles about software development - Linux kernel programming tutorials - Flutter and mobile development projects - Web development and JavaScript/TypeScript projects - Open-source contributions and plugins ## Articles and Projects ### Debugging ARM kernel with `kgdb` in QEMU URL: https://mastermakrela.com/kernel/kgdb-aarch64-qemu-setup/ Technical guide to setting up KGDB for debugging ARM64 Linux kernel in QEMU. Complete configuration for serial ports and debugging workflow. ## Debugging ARM kernel with `kgdb` in QEMU During the development of the kernel or its modules, it's often necessary to debug it/them while running. The kernel provides a built-in debugger for it called [`kgdb`](https://www.kernel.org/doc/html/latest/dev-tools/kgdb.html). The problem is that [the generic qemu arm64 machine](https://www.qemu.org/docs/master/system/openrisc/virt.html) has only one serial port: `ttyAMA0`, which is usually already used for the console. The solution is to add ano... --- ### Debugging ARM kernel with `kgdb` in QEMU on macOS URL: https://mastermakrela.com/kernel/lkp/debugging-with-kgdb/ Complete guide to setup KGDB for debugging ARM64 Linux kernel in QEMU on macOS. Learn kernel debugging techniques for Apple Silicon development. ## Debugging ARM kernel with `kgdb` in QEMU If you came here from Google and are only interested in the `kgdb` setup for arm64 qemu, you can skip [here](#serial-connection-to-the-target-machine) or read the more technical [article](/kernel/kgdb-aarch64-qemu-setup). Otherwise, let's start from the beginning. ### What is `kgdb`? According to [Wikipedia](https://en.wikipedia.org/wiki/KGDB): > KGDB is a ==debugger== for the Linux kernel […]. > It requires two machines that are connected via a =... --- ### Compiling Linux kernel on macOS URL: https://mastermakrela.com/kernel/lkp/kernel-dev-on-macos/ Step-by-step guide to compile Linux kernel on macOS using GCC from Homebrew. Learn challenges and solutions for kernel development on Apple systems. ## Compiling Linux kernel on macOS ### Introduction Guided by the similarity of macOS and Linux, one expects that: (1.) cloning the kernel source (`git clone git://git.kernel.org/pub/​scm/​linux/​kernel/​git/​stable/linux.git --depth 1 -b v6.5.7`) (2.) installing `gcc` from Homebrew (`brew install gcc`) (3.) running `make` (or rather `make defconfig && make -j $(nproc)`) (4.) and waiting for a few minutes should lead to a working kernel somewhere in `/arch/arm64/boot/` directory. If you ... --- ### ouichefs URL: https://mastermakrela.com/kernel/lkp/ouichefs/ A custom Linux filesystem implementation that automatically frees space when disk is full, featuring configurable eviction policies. Final project for Linux Kernel Programming course. ## `ouichefs` _I'll write a longer article when I have more time, but for now, here's the GitHub link:_ [`ouichefs`](https://github.com/mastermakrela-rwth/ouichefs) and overview of our changes: [Documentation](https://github.com/mastermakrela-rwth/ouichefs/blob/v6.5.7/submission/documentation.typ) --- ### Linux Kernel Programming URL: https://mastermakrela.com/kernel/lkp/ Complete guide to Linux kernel development on Apple Silicon Macs. Learn to compile, debug, and develop kernel modules using QEMU, VS Code, and KGDB on macOS. In the winter semester 2023/24 I took part in the [Linux Kernel Programming](https://www.os.rwth-aachen.de/cms/os/Studium/Lehrportfolio/~bdduoy/Linux-Kernel-Programming/lidx/1/) course at RWTH. But because I'm mainly a Mac user (and like a challenge), I decided to do the whole course on my M1 MacBook Pro (2020). _I mean, they are both Unix-like systems, right? What could possibly go wrong?_ Well… a few things, actually. Some are connected with macOS itself, others with the ARM architecture. Bu... --- ### VS Code for kernel development URL: https://mastermakrela.com/kernel/lkp/vs-code-setup/ Configure VS Code for optimal Linux kernel development experience. Setup extensions, autocompletion, formatting, and linting for kernel code on macOS. ## VS Code for kernel development Now that we know that the [kernel compiles and runs](/kernel/lkp/kernel-dev-on-macos), we can start making some changes to it or write some modules. To make this experience more ~~bearable~~ enjoyable, we'll use VS Code with some extensions. Most of them are automatically recommended to install, but because the kernel isn't your usual everyday codebase, we have to configure them for optimal performance. As before I'll assume your directory looks something lik... --- ### Flutter Handoff URL: https://mastermakrela.com/flutter-handoff/ Learn how to implement Apple Handoff in Flutter apps. Share activity between iOS, macOS, and web with this practical guide and pub.dev package. # Flutter Handoff First _what is Handoff_? According to the Apple Docs: > Use Handoff to transfer activities the user starts on one iOS, watchOS, or macOS device to a different device. > ~ Apple Developer Documentation This is the source of the Apple magic that makes all the devices feel like a single entity. With this, we could implement the full Handoff with sharing activity... --- ### Bun C Plugin URL: https://mastermakrela.com/bun-plugin-c/ A Bun plugin that allows you to import C functions directly in TypeScript code. See how to use C libraries seamlessly in your Bun projects. # Bun C Plugin | | | | ------ | --------------------------------------------- | | GitHub | https://github.com/mastermakrela/bun-plugin-c | | JSR | https://jsr.io/@mastermakrela/bun-plugin-c | What if you could just: ```ts import lib, { add } from './lib.c'; const sum = add(1, 2.5); // sum is 3 lib.hello(); // does whatever the C function does ``` in your TypeScript code? ### How and why? The goal of a bundler is to _bundle_ code ... --- ## Technical Information This website is built with: - **Framework**: SvelteKit 5 with TypeScript - **Styling**: Tailwind CSS v4 - **Content**: MDSveX (Markdown with Svelte components) - **Deployment**: Cloudflare Pages - **Package Manager**: Bun ## Contact - **GitHub**: https://github.com/mastermakrela - **Twitter**: @mastermakrela - **Website**: https://mastermakrela.com