Language Selection

English French German Italian Portuguese Spanish

Understanding a Kernel OOPS

Filed under
Linux
HowTos

Understanding a kernel panic and doing forensics to catch the bug is considered a hacker‘s job. This is one of those complex tasks that requires a sound knowledge of the architecture you are working on, and the internals of the Linux kernel. Depending the on the type of error detected by the kernel, panics in the Linux kernel are classified as hard panics (Aiee!) and soft panics (Oops!). This article explains a sample Linux kernel oops, and helps to create a simple oops and debug it. It is mainly intended for developers getting into kernel development, who need to debug the panics that the kernel throws at them. Knowledge of the Linux kernel, and C programming, is assumed.

An oops is what the kernel throws at us when it finds something faulty, or an exception, in the kernel code. Oopses are somewhat like the segfaults of user-space. An oops dumps its message on the console; it contains processor status, and CPU registers when the fault occurred. The offending process which triggered this oops gets killed without releasing locks or cleaning up structures. The system may not even resume its normal operations sometimes; this is called an unstable state. Once an oops has occurred, the system cannot be trusted any further.

Let’s try to generate an oops message with sample code, and try to understand the dump.

Setting up the machine to capture an oops

The running kernel should be compiled with CONFIG_DEBUG_INFO, and syslogd should be running. To generate and understand an oops message, let’s throw together a sample kernel module, oops.c:

rest here




More in Tux Machines

Review: Ubuntu 16.04 LTS (Xenial Xerus)

When we get to our Conclusion, we always find recent Ubuntu releases a little difficult to summarize. This is probably because each new release does not really bring major changes to the table anymore, rather they all seem to feel like just another update. In truth, that’s all they really are. But when third-party Linux distributions continue to innovate and give their users something fresh each time a new release is delivered, we can’t help but wonder why Ubuntu Developers can not achieve the same. Yet we can not quite put our finger on what Canonical are doing wrong. Essentially, they’re not really doing anything wrong. They are just not really offering anything fresh, new or innovative anymore. Read more

Today in Techrights

Gorgeous Live Voyager 16.04 Linux OS Comes Hot on the Heels of Ubuntu 16.04 LTS

The team of developers behind the Live Voyager desktop-oriented operating system have announced today, May 1, 2016, the release and immediate availability for download of Voyager 16.04 LTS. Read more

BlackArch Linux Now Provides over 1,400 Penetration Testing Tools, New ISO Lands

The BlackArch Linux devs have been preparing this for months, but now it is finally here, the new ISO image of the Arch Linux-based operating system designed for hackers and security professionals. Read more