Tinkering with Linux code

Hi I am new to the Linux environment but am wondering if anyone can tell me where is the best place to go in order to find out how to edit the LINUX source code in particular the graphical User Interface. And what should I be aware of when doing so...
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Karl Heinz KremerCommented:
It depends ...

First of all, you have to understand where the different parts come from. "Linux" is just the kernel. You can download the source code here: http://www.kernel.org/
If you want to learn about kernel hacking, check out this site: http://www.kernelhacking.org/

The graphical user interface is based on XFree86. You can find more about this project at

What you usually see when you look at a Linux system is a desktop environment like KDE or Gnome. If you want to learn more about this, go to http://www.gnome.org or http://www.kde.org
Both environments have documentation about how to program for their respective systems.
myleseven2Author Commented:
So does this mean that xfree86 is the interface for KDE?
If I wanted to learn how to remove things from the Desktop or customize what appears from the desktop should I go to learn from xfree86.org or kde.org.
For example I would like to develop a very simple interface environment for my grandfather to allow him to load up his computer and then just be presented with 1 or 2 buttons to take him to eg Email or Write a letter etc, and then maybe have a big Turn Off button on the screen to allow him to turn off the computer easily.
Can I hide menus and things like that that only confuse him?
Karl Heinz KremerCommented:
All the things you've listed can be done with just some configuration of KDE. There is no need to start programming. Just visit http://www.kde.org and read the user documentation.

If you look at the KDE interface, you will see that most of the things you want to do are already on the UI (e.g. the button for EMail or Write). The menus can be confusing, but you have full control over what gets displayed, so you can remove the ones you don't need.

You are right, KDE is built on top of XFree86, so XF86 is the interface that KDE (or Gnome) uses to paint on the screen.
PMI ACP® Project Management

Prepare for the PMI Agile Certified Practitioner (PMI-ACP)® exam, which formally recognizes your knowledge of agile principles and your skill with agile techniques.

myleseven2Author Commented:
Wow all that info looks great to get started with...
 if I wanted to develop a simple email or word program for him, would you recommend starting from scratch or from making adjustments to someone elses source code?
I have expereince in Borlands Delphi and have heard that there is version of this that can be used for Linux called Kylix, do you know of this and if using Kylix would be a good way to begin programming in Linux, from what I have read though I need to know C++ or java... what do you think?

thanks heaps
Karl Heinz KremerCommented:
Before you start to develop a mail application or an editor, please take a look at what's already available.

If you really think that none of the existing applications does what you need it to do, you should seriously consider modifying an existing application. Doing this from scratch is a lot more work. You also have to solve all the problems other applications have already solved. Good user interface design is something that requires a lot of experience. We can probably assume that an application that's used by a number of people is better than something that you can come up with for one user (please don't get me wrong. I have no idea about how good you are and it's certainly possible that you have a huge experience in human factors, but chances are that you don't,a nd this is a potential problem).

If you decide to start from scratch, you can probably work with Kylix. I've never used it. All I know about it is that it's a distant relative of the old Turbo Pascal.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
myleseven2Author Commented:
I think modifying an existing application would be the best way to go, thanks heaps for your help that was awesome :)
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Linux OS Dev

From novice to tech pro — start learning today.