Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
i have tried linus from scratch but that didnt agree with me
ROTFL! I'd say Linus wouldn't agree either ;-p
so my questions goes as following, would anyone be able to recommend somewhere to start to learn to develop, program and basically become profecient with linux?
Look at what you've got (or haven't). Maybe there's an app that needs an extra feature? Could supply a patch to the maintainer and see if that starts the ball rolling... Maybe there's a task for which there's no app yet? Figure out how it should work and take it from there... Or maybe you think you could build an app "qualitatively better"? Tear it apart, see what makes it run, and tack the corpse back together with your stuff. Basically the stuff that's closest to your own interests is what will get (and keep) you going.
p.s. please keep in mind i am only 15, am still a student.
Age is not important. What is is that you find something *you* think is cool (worth pursuing).
i only wrote down my age in an attempt to demonstrate that i dont have some qualification etc.
and ok then, but the problem is that i dont have any REAL programming or shell experience. sure, ive fiddled with both but i still cant sit down open up a programs source and pick at it, i dont have the knowledge. but that is what i would like to be able to do.
to be able to comple from source, and edit source, and basically be free to attach myself to any linux related task (ok, not ANY)
Say you want to be a hacker (right sense of the word). Takes a few things. First of all a general interest in finding out "what makes stuff tick": inspiration, motivation, drive. A result of that interest can be you want to really understand what, how and why it does what it does: that's doing research, learning. If you understand what's going on you may want to (help people) solve a problem or change things and find it is fun to do. That's where persistence and such come in, which should be no problem if you love what you're doing. Over time you'll realise the greatest cost of all: time. Like everything else doing something (or not doing something) costs time. There is no way around it.
So, how do people start coding? For a lot of people it starts as an itch to scratch. They have a problem, just jump in and start looking for clues. It may happen to you or it may not. Others start by learning a language, consciously investing time and effort hoping they can reap the benefits. Whichever way you start you'll find out soon enough if it is exiting enough to keep you going.
So. How to find out what looks interesting? Basically anything. Maybe start tweaking your system: solve problems there. Or maybe you like those mobile phone games: get a Java book and SDK and see if that tickles your interest. Or else read some books. There's lots of tutorials and free books available online. It's just like choosing a distro: some people find "their distro" immediately, others have to struggle through tens of installs. (again: perseverance) There's only one thing you should not do: don't make it a single goal to become "teh w0rlds baddassest h4x0r". If you find (after some time) you love coding you will be drawn back to it when time permits whatever else you do. If you don't you'll be coding in anger. Anger leads to hate, and know, we all do, what hate leads to :-]
As long as I've been using Operating Systems I always found tinkering with stuff interesting and fun to do and I spent time back then reading and experimenting. My move to GNU/Linux (after months of reading) was based on the perception it was the most performance-tweakable O.S. I could find and for that it has never let me down. Gradually I became more interested and started experimenting more (yes, making backups *is* and I should have started by reading :-] ) which lead to more reading and more experimenting. Which lead to testing stuff, contributing patches which lead to more reading and more experimenting. While I've contributed to quite a few apps the only one I could be known for would be Rootkit Hunter. I started supplying patches and discussing problems early this millennium and gradually (well not that gradually, heh) took over the project. While it is "just shell scripting" and not a higher language, it's what I like in that it enjoys enough community feedback to help improve it and poses enough problems (read chances for research) to keep me going, time permitting.
Summing it up in one sentence: find your inspiration not by looking outward but inward.
Some will say: Get good grades, go to college, etc......But the fact is that good creative works come at all ages and education levels...
To me, the way to learn something like programming is to---well--do it. Pick a task you would like you machine to do for you, and set out to write it. But I would not start with the OS: In any program, there is stuff on the other side of the interface that you need to understand. In high level application, you will have to understand the basic I/O, commands and signals, but you are spared a lot of the more complex stuff that a kernel programmer needs to understand.
Buy a book of Operating Systems or go to a library, go to intel and amd to download de books for they respective processors.
Learn to program in assembly and C, trie some microcontrolers like pic from Microchip, is useful/essencial to know hardware arquitecture.
Here are some of my books:
1º Introduction to Computing Systems: From Bits and Gates to C and Beyond!
2º Operating Systems Design and Implementation, 3/E
5º search for RFC about tcp ip and ftp, etc...
WEll thanks for all that. im going to have to go explore and do some more damage. as i am posting this i actually am on 3 computers at my dads work, one is a linux computer with sugar CRM installed, so its only got bash it actually is fun, well it wil be once i get it working propealy for my dad... but hey
is shell scripting still a language? i mean can it write full applicationg and everything?
and with patching, is it mostly just trial and error and then fixing what you find with scripting?
thanks for all your help, this was alot less painfull than i though.
scripting is for repetitive tasks, like management your computer files configuration, but you dont do aplication with bash for example, you develope aplications with languages like c, c++, java, python, perl,...
patching is an adiction to de source code to correct sume bugs.
I'm not sure I understanding the patching part, but I certainly agree with the shell scripting part, and so does O'Reilly:
Shell scripting skills never go out of style. It's the shell that unlocks the real potential of Unix. Shell scripting is essential for Unix users and system administrators-a way to quickly harness and customize the full power of any Unix system. With shell scripts, you can combine the fundamental Unix text and file processing commands to crunch data and automate repetitive tasks.