Getting started with fixing bugs for Linux

Okay I want to try my luck at fixing bugs for the Fedora OS, but I guess this question deals with any Linux distro or any open source OS for that matter.

I want to know how I can start fixing bugs on the OS level. For example the particular bug that I want to target is this logout bug

I mean how do I start with debugging something like this. These may involve OS modules that are already running in the OS, I can get the source, but how do I deploy and test it ?

MOST IMPORTANTLY-:
Can it be done in a VM like VirtualBox or KVM ?
Maybe I can test my "patched" OS there ?

Not sure about how approach this problem. Any of you who does Linux OS bug fixing could really help me out.

Do you know anything at all about programming?

Yes what do you mean by that ?

Not a trick question. You won't be able to debug this without extensive internal knowledge of C/C++, PAM, and possibly X and Gnome.

I agree.
But can the debugging be done inside a VM ? Also are there debuggers that you can use ? I mean how would you attach a debugger to an OS module. Not necessarily a kernel module, but lets say the File Manager GUI.

I mean how do I go about this ? Any tutorials or blogs or any source that could give me some pointers on how to start ?

Lacking extensive internal knowledge of X, Gnome, and File Manager, I can't really say.

I will say that "file manager GUI" is not an "os module". Everything except the kernel is just a program like everything else.

Hi.

If you are not familiar with some *nix tools, you will need to pick up some practice with vi/emacs , and make at the least. You may also need to become familiar with source control: check out/check-in.

I was a: Member of the Process Engineering group chartered with defining, realizing, and maintaining the processes and practices associated with the software lifecycle at Caspian.

I did course development and training for that general process: nightly builds, release packaging, etc. Development, including design and debugging, was not a trivial activity. I also did training in shell, perl, regular expressions, etc.

At that shop each developer checked out a piece of the system and worked on it. When it was ready to go, the code was checked in. The nightly build and tests were done on a separate hardware system based on the current state of the system with every developer's contribution. Extensive records were kept for bug tracking.

If you are interested in diving deep into Linux, you might appreciate the structure of Debian development -- I use Debian for my main activities currently.

You can read about Debian maintenance and development -- all done by volunteers world-wide -- at Debian Developer's Reference

It is also not a trivial activity.

You could certainly do some, perhaps even much, of this kind of work on your own in an isolated virtual system. For example, suppose you wanted to work on utility ls for your own purposes. You easily could get the source, modify it, and test it in a VM. However, working on real bugs, for example, might be far more interesting

Best wishes ... cheers, drl