Retrieve Last Log After Crash

In Linux, there are two kinds of crashes - kernel panic/oom and user space core dump. For kernel panic, the standard config is rebooting the system. Unfortunately, the panic log can only be printed to console and will disappear after reboot if there is no additional device to record the console log - most kernel panic/oom logs won’t be written to system log, and even they do, there is no way to sync them to disk storage during panic.

Customizing OpenWRT System Log Timestamp

As explained in previous post Linux System Log, threre is no way to directly change the default timestamps printed on Linux console. However, it is still possible to get human readable timestamp without using fancy syslog tools like syslog-ng.

Debug Kernel Space Memory Leak

This is a general guide for detecting and debugging kernel space memory leak. Since the drivers and firmwares in real products vary a lot, this post cannot cover the specific issues.

Linux System Log

This is a note of Linux system logging mechanism.

Click Notes II - Click Script Language

The Click programming language was developed to configure Click routers, but nowadays you also can use it to write test cases for Click elements.

Click Notes I - Overview

Click is a modular router toolkit written mainly in C++, which can be run in both user space and OS kernel space. Since its invention in late 1990s by Eddie Kohler, Click is has gained great successes in both research and industry. This series of notes aims to (1)introduce Click platform, (2)analyze the implementation of Click, and (3) discuss some general problems related to Operating System and Network Programming. The Click Source code can be found here.

Building Remote+Local *nix Develop Environment(II)

This is the second article(collection) on how to build a *nix development environment by integrating remote servers and local Linux/Mac clients. For the previous article on this topic, please refer to Building Remote+Local *nix Develop Environment.

Be careful to pthread_exit() in main()

When using pthread for multithreading, most threads call pthread_exit() implicitly on return from the thread start routine. Besides, pthread_exit() also can be used to terminate the initial process thread in main(), leaving other threads to continue operation. The process will go away automatically when the last thread terminates. If you don’t care about the process exit status, or if is difficult to know the created thread IDs(e.g. created by third party APIs), you can call

Building Remote+Local *nix Develop Environment

This is the first article(collection) on how to build a *nix development environment by integrating remote servers and local Linux/Mac clients. For the following-up article on this topic, please refer to Building Remote+Local *nix Develop Environment(II).

Binary Tree Operations(IV) - Determine if a Binary Tree is a Binary Search Tree

This is the fourth article on binary tree operations. For other topics on binary tree, please refer to: