My knowledge is woefully inadaquate...
Hi,
A couple months ago I was inspired by Linux and the open source movement, and I'm trying to learn as much about the usage and administration of Unix/Linux as I can. I installed Slackware Linux, and I think I'm getting gray hairs just trying every time I try to swap drivers, make some modification, or whatever.
It was my goal to become knowledgable about Linux. I admit that my ultimate dream is to become a "Linux" guru. By Linux guru I mean by having an intimate knowledge of the Linux kernel, Linux module programming, how everything fits and works together. Some people might call this a true hacker.
Its all hard to soak in. I tried reading documentations on the Linux kernel, and I try hard, but I don't really learn anything. Paging, TCP/IP stacks, its all really hard to juggle in my head. And then there is the "weird" stuff like /proc/devices and /dev/null and how Linux manages devices and what DHCP is and what does dhcpcd do (I use it but I have no idea what it does. I go dhcpcd wlan0. I can only assume it applies an IP address to device wlan0). I can only guess at the functions of ifconfig and iwconfig, although I follow rote tasks such as ifconfig wlan0 up.
I google some of these, but there's a vast amount of hits, and I can't hope to google all that I want to know.
Five minutes ago I just turned up devfs vs udev. Someone was bitching about udev. So I google it. They have something to do with device management. I mean, what the heck?
How can I ever possibly try to be the guru I wish to be? I mean, I'm already 16, yet I know next to nothing about Linux. I guess I've been pampered in Windows too long.
I can go on and on and on, but I'll leave it at that.
How do you sys admins and kernel programmers and Linux gurus grasp it all? How do you keep a coherent picture on how a complex piece of software like Linux works?
Another reason I want to become a Linux guru is taht I want to program my own device drivers for some unsupported hardware...
Cipher3D
I eat heart attacks
You want too much and you want it all now.
Writing drivers is difficult, especially without manufacturer documentation. Just about the only drivers not written today are the ones without docs.
Give yourself a long time, and a better goal, and you won't have as many problems.
But anyway, you ask how people like me get to where we are...
The same way a baby learns to speak a language. Surround yourself with it, and the meanings of things will follow.
There's a lot of good stuff that you can read that'll eventually teach you things.
LWN, slashdot (yeah, really, sometimes), the PLANETs (planet debian, gnome, freedesktop, and more), Kernel Traffic, Kernel Trap, ...
and lurk in large IRC channels about the subject. and I mean lurk, never speak. Instead, just look at the questions being asked and the answers given. eventually you figure things out.
Writing drivers is difficult, especially without manufacturer documentation. Just about the only drivers not written today are the ones without docs.
Give yourself a long time, and a better goal, and you won't have as many problems.
But anyway, you ask how people like me get to where we are...
The same way a baby learns to speak a language. Surround yourself with it, and the meanings of things will follow.
There's a lot of good stuff that you can read that'll eventually teach you things.
LWN, slashdot (yeah, really, sometimes), the PLANETs (planet debian, gnome, freedesktop, and more), Kernel Traffic, Kernel Trap, ...
and lurk in large IRC channels about the subject. and I mean lurk, never speak. Instead, just look at the questions being asked and the answers given. eventually you figure things out.
All I can say is: Welcome to the intricate world of computer systems internals, where what you see and what it lets you do is built up from layers upon layers upon layers upon layers upon layers of technology and understanding. You can't hope to understand all of it at once, and most people (even the "gurus") never do - there's just too much of it. This is the very reason why we've got all these different layers: So you don't have to understand how it all works all at once. All you need to do to work in one layer is understand the contracts the surrounding layers give you.
Besides that, C-Junkie is absolutely right. Do some lurking, ask some questions, even have a tweak here and there, but most of all, give it some time. And at 16, you've got plenty of time yet.
Besides that, C-Junkie is absolutely right. Do some lurking, ask some questions, even have a tweak here and there, but most of all, give it some time. And at 16, you've got plenty of time yet.
My stuff.Shameless promotion: FreePop: The GPL god-sim.
I have installed Linux from Scratch. It was a big waste of time as far as installing a nice distro is concerned - I could have just installed gentoo and received the same quality plus (much) more. But I did learn a lot about the way linux works. I recommend it for anyone who wants to "become a linux guru".
Zorx (a Puzzle Bobble clone)Discontinuity (an animation system for POV-Ray)
Start from the outside and work your way in.
For example, start by writing a non-trivial (but not overly complex) application for a given environment. Once you get the hang of this, move on to writing similar environments (eg, go from writing KDE apps to writing your own WM; or go from writing Emacs macros - yuck! - to writing your own programmable text editor; or go from writing Mozilla XUL apps to writing your own extensible host application).
Wash, rinse, repeat. Each time, write an insulation layer that will later allow you to port your previous application to your new environment (eg, insulate your app from KDE using an adapter layer, so that you can later have your own WM support that adapter interface).
Oh, and give it time. [KDE/GNOME/other]/GNU/Linux wasn't built in a day.
For example, start by writing a non-trivial (but not overly complex) application for a given environment. Once you get the hang of this, move on to writing similar environments (eg, go from writing KDE apps to writing your own WM; or go from writing Emacs macros - yuck! - to writing your own programmable text editor; or go from writing Mozilla XUL apps to writing your own extensible host application).
Wash, rinse, repeat. Each time, write an insulation layer that will later allow you to port your previous application to your new environment (eg, insulate your app from KDE using an adapter layer, so that you can later have your own WM support that adapter interface).
Oh, and give it time. [KDE/GNOME/other]/GNU/Linux wasn't built in a day.
Rather than installing linux from scratch, you might like to take a look at the prerequisites page they have. You'll know an awful lot of stuff by the time you've got through all of that
O'Reilly publishing has an excellent library of books on the subject of linux and Unix. I think that reading "Learning the Bash Shell" should be mandated for anyone wanting to learn about linux.
Some will point out that bash is only one of many shells, and that's true, but understanding how to manipulate your environment will go a long way towards your goal, and this book in particular is very good:
http://www.oreilly.com/catalog/bash2/?CMP=IL7015
Slackware is, in my opinion, probably the best distro to learn with as well. There is a great amount of documentation that comes with Slackware including the linux HowTo's. Usually in "/usr/doc/Linux-HOWTOs". Slackware is the most compliant with those docs of any distro I can think of; I've never encountered a point when following one of the HowTo's where a file wasn't where the howto said it would be etc...
Cheers,
Aaron
Some will point out that bash is only one of many shells, and that's true, but understanding how to manipulate your environment will go a long way towards your goal, and this book in particular is very good:
http://www.oreilly.com/catalog/bash2/?CMP=IL7015
Slackware is, in my opinion, probably the best distro to learn with as well. There is a great amount of documentation that comes with Slackware including the linux HowTo's. Usually in "/usr/doc/Linux-HOWTOs". Slackware is the most compliant with those docs of any distro I can think of; I've never encountered a point when following one of the HowTo's where a file wasn't where the howto said it would be etc...
Cheers,
Aaron
Thanks guys. Now that I look at it, I see that I haven't been totally clueless - I'm now a lot farther in Linux than I was three weeks ago - back then I didn't even know what bash was! Now I'm at somewhat ease with the terminal, and I can pretty much find my way around things...
I guess I'll just keep on going.
Thanks for the replies!
I guess I'll just keep on going.
Thanks for the replies!
I eat heart attacks
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement