Linux

Tips, tutorials and walkthroughs for the modern Linux developer.

  1. a standalone kubelet with containerd

    installing containerd and getting a sole kubelet to create pods via CRI

  2. failed to locate iptables

    kernel tracing to figure out a little mistake

  3. a practical look into overlayfs

    how to use overlayfs and some analysis of its performance impact in certain situations

  4. the effect of writing to the uid map proc file

    a dive into the mechanics of writing to /proc/pid/uid_gid when setting up user namespaces

  5. tar and permission bits

    exploring how tar deals with uid and gids when archiving and extracting under different types of users

  6. the setuid bit, or, how sudo minimally works

    a deep dive into the mechanism that allows sudo to work

  7. user namespaces and why some containers might take a while to start in Concourse

    a look into the translations performed under the hood

  8. glibc and golang - an interesting mix

    exploring what glibc is, what ISO C and POSIX covers, and why golang might use glibc for some standard libraries.

  9. booting a fresh linux kernel on qemu

    going from source code to a working linux on qemu

  10. A Raspberry PI Concourse Worker

    Lessons learned building Concourse workers for ARM - a visit to CGO cross compilation, and necessary modifications to the workers' runtime

  11. How Linux creates sockets and counts them

    A deep dive into what goes under the hood in the Linux kernel when you can the socket system call

  12. Using /proc to get a process' current stack trace

    Check out how you can use the proc filesystem to retrieve the kernel stack trace of a given process

  13. Process resource limits under the hood

    Go through the internals of implementing ulimit, how prlimit works, as well as inspecting how the kernel limits the number of open files

  14. Why top and free inside containers don't show the correct container memory

    Go through the reason why free and top show the host's memory instead of container memory.

  15. How is /proc able to list process IDs?

    Go through how we can use syscalls to list directory entries and at which point procfs responds to that.

  16. What is /proc?

    Get to know what is under the hood of procfs - what Linux does when you interact with /proc

  17. A month of /proc

    The challenge has been set - a month of blog posts around procfs!

  18. A bpftrace Ansible role

    Check out how to fetch and install bpftrace using Ansible

  19. A UDP server and client in Go

    Getting from Golang's net package down to the Linux kernel methods invoked when UDP messages are sent.

  20. Dmesg under the hood

    Dmesg allows us to grasp what's going on under the hood when the kernel gets bad. Check out how dmesg is able to read kernel logs and show to the user.

  21. Analyzing Tcpdump capture in real-time with Wireshark

    Check out how to pipe a live packet capture from tcpdump into a Wireshark instance in MacOS

  22. Developing eBPF code with autocompletion support

    There's no need to lose the great features of a well set up Vim configuration when coding eBPF code.

  23. Navigating the Linux Kernel source tree with YouCompleteMe

    Check out how to configure YouCompleteMe to have auto completion and source code navigation capabilities for the Linux source code.

  24. Adding privileged containers to Docker Swarm mode

    Privileged services are not something you can have with a regular Docker Swarm cluster. Check out how to have privileged containers using Docker Swarm Mode

  25. Compiling and running your own forked Docker release

    Installing docker has never been easier - add the apt repository and install it. What about running your own fork of it?

  26. Implementing a TCP server in C

    Writing a TCP server in C can teach many things. Check out how to implement a TCP server and understand some of the syscalls involved in the process.

  27. Using C to inspect Linux syscalls

    A deep dive into how to make use of ptrace to inspect syscalls made by a tracee while they occur.

  28. Augmenting Linux Swap Space

    How to extend Swap space on Linux after you already set it

  • GitHub
  • LinkedIn

© Ciro da Silva da Costa, 2018.