Category Archives: OS

Operating System – UNIX/Linux, Solaris

arpsec – Securing ARP from the Ground Up

Our paper “Securing ARP from the Ground Up” has been accepted as a short paper by CODASPY15, which will be in San Antonio, TX from March 2nd to 4th. In this post, we will talk about our solution to ARP … Continue reading

Posted in Network, OS, Security | Tagged , , , , , , , , , , , , , | 2 Comments

Retrieve PID from the packet in Unix domain socket – a complete use case for recvmsg()/sendmsg()

The original question was how to retrieve the PID of the packet (sender) in the Unix domain socket. As titled, the answer is recvmsg()/sendmsg(). However, the most useful information I could find online is Michael’s man7.org. People keep talking about … Continue reading

Posted in OS, Programming | Tagged , , , , , , | 1 Comment

Bash Hacking – bash2, add setting CPU affinity support to the Bash

This post is NOT initially designed for how to hack Bash. But it does tell the truth that hacking Bash is not that hard, by adding a useful feature to Bash itself – setting CPU affinity support. Have fun and … Continue reading

Posted in OS, Programming | Tagged , , , , , , | 4 Comments

Kernel Hacking – use crypto API in the IRQ context

After my first post about Linux kernel crypto API, I keep playing with kernel crypto API for DSA and RSA implementations (will talk about these in my future posts). The truth is crypto API is NOT designed for IRQ context. … Continue reading

Posted in OS, Security | Tagged , , , , | 1 Comment

byte order – Linux kernel byte order APIs

Most of the time, user-space applications do not care about the endian of the running machine, like we call send() and recv() directly expecting the right order of the data and they work! However, things could be changed if you … Continue reading

Posted in OS, Programming | Tagged , , | 2 Comments

ksig – sending signals from the kernel space to the user space

While syscall kill() gives users the ability to send certain signal to certain process in the user space of Linux, the story is totally different if we want to send signals from the kernel space to the user space. After … Continue reading

Posted in Dave's Tools, OS, Programming | Tagged , , , | Leave a comment

KT – use kernel timers in the Linux kernel

Compared to start a timer directly in certain kernel thread which will make the thread sleep for a while, using a kernel timer may be much more desired without stopping the current working thread. This post demonstrates a live example … Continue reading

Posted in OS | Tagged , , | Leave a comment

ARP – Linux kernel ARP behavior with multiple NIC

This post is the summary based on a recent discussion in the kernelnewbies mail list. Thanks to the collective intelligence, the Linux kernel ARP behavior with multiple NIC is now pretty clear. 0. Original Question “Assume there are two interfaces … Continue reading

Posted in Network, OS | Tagged , , , , | 8 Comments

crypto – use Linux kernel crypto API

Crypto is an important part of the Linux kernel source code. One can tell from the standalone crypto directory under the kernel source tree. Device drivers, file system and security all need crypto. This post does not help understand the … Continue reading

Posted in OS, Programming, Security | Tagged , , , , , | 3 Comments

EXT4-fs error – use Ubuntu to fix Fedora

The most terrible thing a Linux could have may be some errors reported by the file system. It is usually caused by power outages or bad blocks/sectors within the hard drive. Eventually, as a Linux user, you may at least … Continue reading

Posted in Linux Distro, OS | Tagged , , , , , , , , | 1 Comment