• Linux TTY Internals

    Some good links to linux tty subsystem, high level overview: The TTY demystified Input Output Internals


  • Deep Dive into IOVisor

    Understand IOVisor better. Extended BPF and Data Plane Extensibility: An overview of networking and Linux New (and Exciting!) Developments in Linux Tracing Extending the extended BPF eBPF: One Small Step BPF Internals – I BPF Internals – II Linux Socket Filtering aka Berkeley Packet Filter (BPF) BPF – in-kernel virtual...


  • Lock less programming & Transactional Memory

    Some good articles collected from Internet on lock free programming and Transactional Memory IBM’s new transactional memory: make-or-break time for multithreaded revolution ABA Problem: Introduction to lock-free/wait-free and the ABA problem ABA Prevention Using Single-Word Instructions Intel’s Haswell RTM (Restricted Transactional Memory): Transactional memory going mainstream with Intel Haswell Hardware...


  • Distributed Systems: good introductory articles

    Distributed systems for fun and profit Synchronization in a Distributed System Why use Vector Clocks in a distributed database? Leader Election, Why Should I Care? Still no good introductory article on replicated state machine, replicated logs and consensus. Paxos is difficult to understand, so I left it. The Raft Consensus...


  • Linux Glibc Heap internals

    Some information on glibc heap implementation. Found very useful. Once up on a free() from Phrack Inc. Understanding the heap by breaking it BlackHat. Presentation from BlackHat. Scalable memory allocation using jemalloc from Facebook. A Scalable Concurrent malloc(3) Implementation for FreeBSD from FreeBSD.


  • Devstack in single VM: Containers( LXC ) on Openstack

    Linux containers are lightweight virtualization (no virtualization, only compartmentalization). I was trying to bring plain containers using lxc, not using other frameworks like docker, or many others. There is a blog entry from canonical developer, here. But when I tried it was giving some problems. So I had to solve...


  • Non-blocking accept() and connect()

    I was trying to do accept() and listen() in a non-blocking way. Pseudo code is below. Non Blocking Accept() Check whether listening fd is ready for read, by using select() Once ready issue accept(), this will return a new socket fd Non Blocking Connect() Issue connect on socket fd If it is...