Tagged: uclinux

uCLinux: Processes in kernel 0

uCLinux: Processes in kernel

Processes can be classified as either I/O-bound or processor-bound. As the name suggests, the former is a process where much of the time is spent in waiting for relatively slow I/O operations to complete. For instance, a...

uCLinux: Multitasking in Linux kernel 0

uCLinux: Multitasking in Linux kernel

Multitasking operating system is a software that offers interleave execution of more than one process. It is capable of executing several processes concurrently and therefore giving an illusion of parallelism in the view of user abstraction. Multitasking operating systems come in two...

uCLinux: Timer Interrupt Handler 0

uCLinux: Timer Interrupt Handler

Having the understanding of HZ, jiffies, and system timer, it is appropriate to discuss the implementation of time management. Most of the jobs in time management are handled by a dedicated function called timer handler. In...

uCLinux: System Timer 0

uCLinux: System Timer

Time management is crucial to Linux kernel. A massive of kernel functions are time-driven and therefore it is heavily dependent on time management. In Linux kernel, time management is handled by a piece of...

uCLinux: Jiffies in the Kernel 0

uCLinux: Jiffies in the Kernel

Having the discussion of tick rate in my previous post, it is therefore appropriate to introduce jiffies in linux kernel. Jiffies is a global variable declared in <linux/jiffies.h> as: extern unsigned long volatile jiffies; Its...

uCLinux: Tick Rate 0

uCLinux: Tick Rate

With a large number of kernel functions are time-driven, the time management in kernel is very important. The frequency of the system timer (tick rate) is programmed on system boot based on a static preprocessor...

Trivial Do/While Loop 0

Trivial Do/While Loop

A trivial do/while loop is an useful technique in C programming to make a multi-statement macro. Consider the following multi-statement C preprocessor macro and if-statement with two branches: #define aemb(x) { do_this(x); do_that(); }...

Introduction to uClinux 0

Introduction to uClinux

As mentioned in the previous post, I’ve decided to work on μClinux kernel porting as my project in AESTE. I will briefly introduce it in this post. μClinux (Micro-Controller Linux) is a linux kernel targeted...

Yick Hong: Introductions 0

Yick Hong: Introductions

I’m a final year student from Multimedia University (MMU), currently pursuing Bachelor of Engineering (Honours) in Electronics. As for my first post in AESTE’s blog, I’m sharing my experiences on job application to AESTE, and...