From: Dan Foster <dsf@gblx.net>
To: Todd Lipcon <tlipcon@mercea.net>
Cc: "Kevin B. Hendricks" <khendricks@ivey.uwo.ca>,
linuxppc-dev@lists.linuxppc.org
Subject: Re: Roles for distributions
Date: Mon, 11 Sep 2000 13:32:00 -0700 [thread overview]
Message-ID: <20000911133200.A20561@gblx.net> (raw)
In-Reply-To: <Pine.LNX.4.10.10009111558170.25787-100000@mercea.net>; from tlipcon@mercea.net on Mon, Sep 11, 2000 at 04:01:57PM -0400
Hot Diggety! Todd Lipcon was rumored to have wrote:
>
> Anyway- I am a fairly decent C, C++, and Java programmer. I'd love to be
> able to contribute to the Linux/PPC effort, however I don't even know
> where to start. Most of the projects that are large enough to actually
> need patches to run correctly on PPC are so large that they are inherently
> intimidating to one not familiar with the source. Do any of you veteran
> hackers have suggestions for the contribution-newbie? What projects are in
> the largest need of help, and how can someone who has never seen their
> source get into the flow of helping out?
Suggestion.... learn the kernel before you tackle arch-specific issues.
Alessandro Rubini's book (_Linux Device Drivers_, wasn't it?) is *excellent*
for a nice introduction to the kernel from a kernel programmer's perspective.
Also look through any UNIX OS textbooks. I love my copy of the Vahalia book
because it covers all areas of the UNIX kernel well, and treats us to a case
by case comparison of how several different UNIX OSes handles it. Digital UNIX,
AIX, FreeBSD, Solaris, ...
Then, usually very helpful to also just read (and re-read and re-read even
more) various kernel source files... a couple key directories. It may be
about 110 MB uncompressed, but sheer majority of that is for device drivers.
The actual kernel core stuff is *MUCH* smaller.
Try writing some kernel modules, like ones in the Rubini book, even if they're
'dummy modules', just so you get a feel for things.
Then when you're feeling more comfortable with the UNIX kernel itself -
then start digging into all the files in arch/ppc/* as well as read
linuxppc-dev (or the online archives) to get an appreciation of arch-specific
issues.
Endianness is one *big* one - lots of times, people in x86 world will release
drivers that assumes the x86 endianness without thinking to use macros that
will automagically ensure correct byte order for whatever platform you use.
This issue bites the other platforms, too.
Then of course, we have the PPC hardware stuff. OpenFirmware docs are *great*
to read... looking at how the boot loader does it will tell you a thousand
things about how things actually *happen* in the dark ages before a kernel is
booted. It's a little work, but you can usually eventually manage to dig up
hardware tech docs for various chips, so that one knows how to manipulate them.
For example, the Motorola web site has PDF files on the CPU and the memory
controller (ie MPC106 aka "Grackle").
IMO, if you can understand a boot loader, you've probably taught yourself a lot
of the concepts needed to understand hardware at a low level, and how/why
the kernel is structured the way it does for the arch-specific stuff. It's also
(IMO) one of the most interesting pieces of software, too.
And so on... lots of stuff that you can indeed do. I've been doing all of
the above (why dispense advice if one doesn't take one's own advice, eh?) for
a while now and it's been a rather pleasant, interesting, and fun journey
into the innards of Linux for the PowerPC family.
-Dan
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
next prev parent reply other threads:[~2000-09-11 20:32 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-09-10 19:52 Roles for distributions Kevin B. Hendricks
2000-09-11 1:36 ` Ariel Rios
2000-09-11 13:14 ` Dan Malek
2000-09-11 13:33 ` Hendricks, Kevin
2000-09-11 14:03 ` Dan Malek
2000-09-11 14:11 ` Hendricks, Kevin
2000-09-11 23:06 ` Sriranga Veeraraghavan
2000-09-11 15:17 ` Daniel Jacobowitz
2000-09-11 17:32 ` Hendricks, Kevin
[not found] ` <200009111757.NAA23936@mal-ach.watson.ibm.com>
2000-09-11 18:04 ` Hendricks, Kevin
2000-09-11 19:16 ` Gary Thomas
2000-09-11 19:27 ` Hendricks, Kevin
2000-09-11 18:16 ` Hollis R Blanchard
2000-09-11 18:43 ` David A. Gatwood
2000-09-11 20:01 ` Todd Lipcon
2000-09-11 20:32 ` Dan Foster [this message]
2000-09-11 20:45 ` Todd Lipcon
2000-09-11 20:49 ` Michel Dänzer
2000-09-12 4:24 ` Graham Stoney
2000-09-12 6:14 ` Getting patches in (was: Re: Roles for distributions) Michel Lanners
2000-09-12 6:49 ` Jeff Garzik
2000-09-12 23:13 ` Daniel Jacobowitz
2000-09-12 8:59 ` Benjamin Herrenschmidt
2000-09-12 15:40 ` Dan Malek
2000-09-13 3:47 ` Paul Mackerras
2000-09-12 15:09 ` Roles for distributions mberglund
2000-09-12 20:55 ` Michael Schmitz
2000-09-12 21:36 ` mberglund
2000-09-12 22:09 ` Geert Uytterhoeven
2000-09-13 13:54 ` mberglund
2000-09-13 13:46 ` Michel Dänzer
2000-09-13 14:21 ` mberglund
2000-09-12 23:04 ` Daniel Jacobowitz
2000-09-11 21:00 ` Geert Uytterhoeven
-- strict thread matches above, loose matches on Subject: below --
2000-09-11 19:04 Hendricks, Kevin
2000-09-11 20:42 ` Franz Sirl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20000911133200.A20561@gblx.net \
--to=dsf@gblx.net \
--cc=khendricks@ivey.uwo.ca \
--cc=linuxppc-dev@lists.linuxppc.org \
--cc=tlipcon@mercea.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).