This is the final post of how to write a Linux firewall in less than 1000 lines of code. If you haven’t read previous posts, you may want to do so in order to understand this post.
Part 2: Command Line Arguments Parsing in glibc
[...]
procfs is a software created virtual file system that mounted to /proc directory at boot time. It was originally designed to provide information about running process of the Linux system, but has gone far beyond its original purpose as Linux kernel development proceeds.
Basics of procfs
It can act as a bridge connecting the [...]
Memory allocation in Linux kernel is different from the user space counterpart. The following facts are noteworthy,
Kernel memory is not pageable. Kernel memory allocation mistakes can cause system oops (system crash) easily. Kernel memory has limited hard stack size limit.
There’re two ways to allocate memory space for a kernel process, statically from the [...]
Linux kernel has linked-list as a built-in data structure defined in /lib/modules/$(uname -r)/build/include/linux/list.h. Compared with common implementations of linked list, the Linux kernel version allows one to embedded the pre-defined linked-list node into any data structure to form a linked list.
0. Comparison of Common Linked List and Linux Kernel Linked List
Suppose we [...]
Linux kernel is considered as mysterious and tough for many programmers, but it’s actually just another big code base with certain special rules and programming practices.
The loadable kernel module is something easier to start with, and one can still learn specifics about Linux kernel programming. This blog covers the very basics of the [...]
Side note: This article is based on a project in my master course about computer system security at 2010. I’m writing this article to recall the knowledge I’ve learned through the project and also hoping someone else can benefit from it.
Features of the Firewall
The firewall can BLOCK or UNBLOCK packets according to a [...]
This is a follow up of the previous blog: How to Filter Network Packets using Netfilter – Part 1 Netfilter Hooks. You should read the previous blog first in order to follow this tutorial.
The Hook Function Prototype
Once a hook function has registered with any of the 5 netfilter hooks, it’ [...]
Netfilter is a set of hooks inside Linux kernel. It allows kernel modules to register callback functions with the network stack in order to intercept and manipulate the network packet.
The Netfilter Hooks
The IPv4 packet traversal through Netfilter system can be illustrated as below,
Figure 1. Netfilter System hook
[...]
40% Discount on My Book — Android NDK Cookbook
Android NDK Cookbook ebook 40% discount with promotion code MREANC40 at Packt Publishing The promotion code is valid until 15th June.Categories
- Android Apps (18)
- Android Audio Editor (1)
- TS 2 (3)
- Video Converter Android (8)
- Video2Gif (1)
- Android Tutorial (26)
- Android Dev Tools (1)
- API illustrated (8)
- Multimedia API (3)
- ffmpeg on Android (4)
- NDK (6)
- UI (5)
- Animation (1)
- Code Snippet (2)
- Coding Beyond Technique (18)
- a word, a world (4)
- Bug Rectified (4)
- Programming Habit (1)
- Software as a Career (1)
- Software as User Experience (1)
- Compilers and Related (2)
- ELF (2)
- Computer Languages (31)
- C/C++ (13)
- Java (9)
- JavaScript (2)
- PHP (1)
- Python (8)
- Data Structure & Algorithms (29)
- Bits (1)
- Data Structure (5)
- Integers (10)
- BigInteger (1)
- Prime (4)
- Search (3)
- Sorting (5)
- Strings (5)
- Database (1)
- SQLite (1)
- Digital Signal Processing (33)
- Distributed Systems (17)
- Apache Cassandra (6)
- Apache Hadoop (8)
- Apache Avro (3)
- Apache Nutch (3)
- Apache Solr (1)
- Linux Study Notes (40)
- crontab (1)
- Linux Kernel Programming (8)
- Linux Programming (12)
- IPC (2)
- Linux Network Programming (5)
- Linux Signals (2)
- Linux Shell Scripting (1)
- ssh (3)
- Machinery (30)
- misc (1)
- My Ideas (1)
- My Project (3)
- Mobile Caching (1)
- Selective Decoding (2)
- My Publication (1)
- My Readings (1)
- Networking (15)
- Program for Performance (8)
- Uncategorized (1)
- Virtual Machine (2)
- Web Dev (8)
- web components (3)
- Android Apps (18)
Recent Comments
Archives
- May 2013 (1)
- April 2013 (1)
- March 2013 (4)
- December 2012 (2)
- November 2012 (6)
- October 2012 (6)
- September 2012 (3)
- August 2012 (13)
- July 2012 (15)
- June 2012 (3)
- May 2012 (8)
- April 2012 (4)
- March 2012 (13)
- February 2012 (19)
- January 2012 (9)
- December 2011 (11)
- November 2011 (12)
- October 2011 (4)
- September 2011 (12)
- August 2011 (16)
- July 2011 (15)
- June 2011 (6)
- May 2011 (10)
- April 2011 (13)
- March 2011 (20)
- February 2011 (4)
- November 2010 (2)
- May 2010 (1)
- April 2010 (1)
- February 2010 (1)
