All of lore.kernel.org
 help / color / mirror / Atom feed
* Learning things
  2015-04-06 17:43 Learning things Joris Bolsens
@ 2015-04-06 17:02 ` Valdis.Kletnieks at vt.edu
  2015-04-06 17:07   ` Joris Bolsens
  2015-04-06 17:05 ` Jeff Haran
  2015-04-06 17:17 ` Greg KH
  2 siblings, 1 reply; 11+ messages in thread
From: Valdis.Kletnieks at vt.edu @ 2015-04-06 17:02 UTC (permalink / raw)
  To: kernelnewbies

On Mon, 06 Apr 2015 10:43:46 -0700, Joris Bolsens said:

> I'm working on trying to teach myself C and was wondering if you had any
> kernel specific recommendations.

Don't bother trying until you have an actual good working knowledge of C.

Work in userspace where your screw-ups just take the process out, not
the entire system, until stuff like a SIGSEGV becomes a rarity. *THEN*
start considering kernel work.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 848 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150406/fb7a7847/attachment.bin 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-06 17:43 Learning things Joris Bolsens
  2015-04-06 17:02 ` Valdis.Kletnieks at vt.edu
@ 2015-04-06 17:05 ` Jeff Haran
  2015-04-06 17:17 ` Greg KH
  2 siblings, 0 replies; 11+ messages in thread
From: Jeff Haran @ 2015-04-06 17:05 UTC (permalink / raw)
  To: kernelnewbies

-----Original Message-----
From: kernelnewbies-bounces@kernelnewbies.org [mailto:kernelnewbies-bounces at kernelnewbies.org] On Behalf Of Joris Bolsens
Sent: Monday, April 06, 2015 10:44 AM
To: kernelnewbies at kernelnewbies.org
Subject: Learning things

>Hey list,
>
>I'm working on trying to teach myself C and was wondering if you had any kernel specific recommendations.
>
>I started the eudyptula challenge but so far it seems to be mostly learning the standards and whatnot. Are there any kernel/C books or online tutorials you guys think would help?

Well, I have to credit you for jumping into the deep end. 8^)

You might want to get familiar with C in user space first where if you get it wrong you have an OS and a memory manager on your side to generate a nice clean core file and debuggers like gdb to look at what happened when something goes bad. Bugs in the kernel are notorious for being difficult to track down.

Jeff Haran

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-06 17:02 ` Valdis.Kletnieks at vt.edu
@ 2015-04-06 17:07   ` Joris Bolsens
  2015-04-06 17:14     ` Jeff Haran
  0 siblings, 1 reply; 11+ messages in thread
From: Joris Bolsens @ 2015-04-06 17:07 UTC (permalink / raw)
  To: kernelnewbies

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

In that case do you have any general recommendations? Or is there some
sort of project that covers most of the basics? I learn best by doing
and most stuff I found online goes pretty slow and is a bit boring :/

Thanks a ton

On 04/06/2015 10:02 AM, Valdis.Kletnieks at vt.edu wrote:
> On Mon, 06 Apr 2015 10:43:46 -0700, Joris Bolsens said:
> 
>> I'm working on trying to teach myself C and was wondering if you
>> had any kernel specific recommendations.
> 
> Don't bother trying until you have an actual good working knowledge
> of C.
> 
> Work in userspace where your screw-ups just take the process out,
> not the entire system, until stuff like a SIGSEGV becomes a rarity.
> *THEN* start considering kernel work.
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJVIr1HAAoJEORnMHMHY2Frm+UP/0moBmxc1KWrMHrSRSkqGlOG
lmiNZh1KJBw51mm8Ye6ML6cQlUyiA4XBe7vBnt/zJ0exou0hTDgHBFfXddXjnPyr
687HYOxH8uKymXh3qHTRxI8tjbnOUHdwXtzjOBxms62FNKmkvdnvbkDF0PGiu4+c
eqi0eiFZ00DuNntzvkM375+swR1D/BnW44hWGaFv7sEjvREFSgmcYwmjZuFBNn8D
8FoYans5y4vM91+MnEE7A34niuqXgz3ZHUXyTz5ZfB/ZZWQKnaymfU4Yew7pD2og
aP/dwrjmPogg4n21WMJnBG1Aj0b/heXZWzVIknGeQEHzyKJNtoAz5P92EEdyIRTB
ZeGZm8333IpJcQ7VtG0VQMzs8xwJ889fo7Prp0c/pxDgsUqy2AaWSiKhMXhy5Yzy
6Dq4uYZWZehOf99tZxl21+eadMeYokBvyvpBQPZqeKw4V1J90tg9D7stXrszLlwZ
cxFxp/1xeHTcy45yJ8L9klVnIaZCqLu7DFej/fI5I0xhRokDz+ArmP7BqxgMCaAg
vYrBqDEdTSvyJZn+6tQ6KZFGJGhavbkbvSMgmzbv/NS1mzMZ17sM6xoyNeC/DHkZ
keeypFtW/u8b96cNDTqLl9wWI7wYudaeH9d5XnpAGmyUldApMAkmEyKXykSmdbwq
W0jRXuJpwmCxftmD/qBu
=TUgV
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-06 17:07   ` Joris Bolsens
@ 2015-04-06 17:14     ` Jeff Haran
  2015-04-06 23:09       ` Joris Bolsens
  0 siblings, 1 reply; 11+ messages in thread
From: Jeff Haran @ 2015-04-06 17:14 UTC (permalink / raw)
  To: kernelnewbies

-----Original Message-----
From: kernelnewbies-bounces@kernelnewbies.org [mailto:kernelnewbies-bounces at kernelnewbies.org] On Behalf Of Joris Bolsens
Sent: Monday, April 06, 2015 10:07 AM
To: Valdis.Kletnieks at vt.edu
Cc: kernelnewbies at kernelnewbies.org
Subject: Re: Learning things

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

In that case do you have any general recommendations? Or is there some sort of project that covers most of the basics? I learn best by doing and most stuff I found online goes pretty slow and is a bit boring :/

Thanks a ton

On 04/06/2015 10:02 AM, Valdis.Kletnieks at vt.edu wrote:
> On Mon, 06 Apr 2015 10:43:46 -0700, Joris Bolsens said:
> 
>> I'm working on trying to teach myself C and was wondering if you had 
>> any kernel specific recommendations.
> 
> Don't bother trying until you have an actual good working knowledge of 
> C.
> 
> Work in userspace where your screw-ups just take the process out, not 
> the entire system, until stuff like a SIGSEGV becomes a rarity.
> *THEN* start considering kernel work.
> 

A google search on "open source projects written in c" yielded this:

http://www.quora.com/What-are-open-source-projects-that-are-written-in-C-C++-are-easy-to-contribute-to

Jeff Haran

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-06 17:43 Learning things Joris Bolsens
  2015-04-06 17:02 ` Valdis.Kletnieks at vt.edu
  2015-04-06 17:05 ` Jeff Haran
@ 2015-04-06 17:17 ` Greg KH
  2015-04-06 18:38   ` Mike Thompson
  2 siblings, 1 reply; 11+ messages in thread
From: Greg KH @ 2015-04-06 17:17 UTC (permalink / raw)
  To: kernelnewbies

On Mon, Apr 06, 2015 at 10:43:46AM -0700, Joris Bolsens wrote:
> Hey list,
> 
> I'm working on trying to teach myself C and was wondering if you had any
> kernel specific recommendations. I started the eudyptula challenge but
> so far it seems to be mostly learning the standards and whatnot. Are
> there any kernel/C books or online tutorials you guys think would help?

Don't learn C with kernel code, please take a few years really learning
the language in userspace, with one of the other thousands of other
userspace programs that could use help that are written in C.

Good luck,

greg k-h

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
@ 2015-04-06 17:43 Joris Bolsens
  2015-04-06 17:02 ` Valdis.Kletnieks at vt.edu
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Joris Bolsens @ 2015-04-06 17:43 UTC (permalink / raw)
  To: kernelnewbies

Hey list,

I'm working on trying to teach myself C and was wondering if you had any
kernel specific recommendations. I started the eudyptula challenge but
so far it seems to be mostly learning the standards and whatnot. Are
there any kernel/C books or online tutorials you guys think would help?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150406/cc8a93a4/attachment.bin 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-06 17:17 ` Greg KH
@ 2015-04-06 18:38   ` Mike Thompson
  2015-04-07  4:06     ` Anupam Kapoor
  0 siblings, 1 reply; 11+ messages in thread
From: Mike Thompson @ 2015-04-06 18:38 UTC (permalink / raw)
  To: kernelnewbies

> I'm working on trying to teach myself C and was wondering if you had any
> kernel specific recommendations. I started the eudyptula challenge but
> so far it seems to be mostly learning the standards and whatnot. Are
> there any kernel/C books or online tutorials you guys think would help?

As others mention, using the Linux kernel to come up to speed with C is the
wrong approach.  If you have a strong desire to learn kernel programming
concepts while coming up to speed on C, I would suggest getting the latest
book on Xinu, buying an Intel Galileo board and working your way through
that book.  Xinu is what I cut my teeth on 25 years ago and I remember it
being a terrific learning environment.  Xinu is not Linux (or Unix), but
for starting at the ground level all the concepts will map over when you
are ready to tackle Linux kernel work.

Information for Xinu can be found here: http://www.xinu.cs.purdue.edu/

Good luck on your learning...

Mike Thompson


On Mon, Apr 6, 2015 at 10:17 AM, Greg KH <greg@kroah.com> wrote:

> On Mon, Apr 06, 2015 at 10:43:46AM -0700, Joris Bolsens wrote:
> > Hey list,
> >
> > I'm working on trying to teach myself C and was wondering if you had any
> > kernel specific recommendations. I started the eudyptula challenge but
> > so far it seems to be mostly learning the standards and whatnot. Are
> > there any kernel/C books or online tutorials you guys think would help?
>
> Don't learn C with kernel code, please take a few years really learning
> the language in userspace, with one of the other thousands of other
> userspace programs that could use help that are written in C.
>
> Good luck,
>
> greg k-h
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150406/0d8525bd/attachment.html 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-06 17:14     ` Jeff Haran
@ 2015-04-06 23:09       ` Joris Bolsens
  0 siblings, 0 replies; 11+ messages in thread
From: Joris Bolsens @ 2015-04-06 23:09 UTC (permalink / raw)
  To: kernelnewbies

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Thanks for the suggestions,
I'll look into those, hopefully ill find something I can help out with
and learn at the same time xD

- -Joris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJVIxJCAAoJEORnMHMHY2Frq1IP/21ZJWUnTseYFnD1HOaDgGmo
MQSEqHdNKS07aWffsRNyndGo2ht7niM4K0g7yhUJMbPi9ek+tsU5sC1WOXvCXSFF
HrIlbZzbFWmhzHag3G5gD2QHZ93FslwhZrWzI/N+C0wQ11e1ekTtJ7ZLDHIdXXvz
GemFehrPw28OebyJChCnuNfBsqw8zP6O7r3TaWo2iWmcnI3hZDdZbtTSewypBuxd
mkKlvCkQ9HQM3VKeBbVzHtyS5ok0/3pIIh2GNHzORTqasKCz5dIlTCefzujOkaOp
E8ooy5v0i8nDIEmLogWm0xY4p/bu+df8OmAgjtpRLvv2d0+VrCZ7Eg6hUYpTTG6p
NP8ADVAljWYePnE9l+US6rEiA9CmXvqHQ1SB9xI2dVGlBckpGV0hSMGr5Q3WgOaC
UFWbWr//PU0Asx5AAcnYr7p8O/iBj/3hB6lWBAFVMikoBo/cOa8D9qkf9e4G6l16
obgwP0e7JtExJWP3FLFYft2uPKn0SLr1SCFfeB4soTjju+t0NqrWwxaZFSDUatMj
dZo64K4XPRgOZD64royXnh1UroDmEVyyJLob/4Q7jnL+PPw8+M0LgHQ9fDrIJt5O
J23b2Q+VQiF0Dnn1VDolYBaWLg53lb5VGW4iutwtr9NjKZQj93ujfNklyD8a6hUy
YWtFegGEjHZ5h7fwONjT
=cU/x
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-06 18:38   ` Mike Thompson
@ 2015-04-07  4:06     ` Anupam Kapoor
  2015-04-07 12:43       ` Malte Vesper
  0 siblings, 1 reply; 11+ messages in thread
From: Anupam Kapoor @ 2015-04-07  4:06 UTC (permalink / raw)
  To: kernelnewbies


>>>>> [2015-04-07T00:08:10+0530]: "Mike Thompson" (mike-thompson):
,----[ mike-thompson ]
| As others mention, using the Linux kernel to come up to speed with C is the
| wrong approach.  If you have a strong desire to learn kernel programming
| concepts while coming up to speed on C, I would suggest getting the latest
| book on Xinu, buying an Intel Galileo board and working your way through
| that book.  Xinu is what I cut my teeth on 25 years ago and I remember it
| being a terrific learning environment.  Xinu is not Linux (or Unix), but
| for starting at the ground level all the concepts will map over when you
| are ready to tackle Linux kernel work.
| 
| Information for Xinu can be found here: http://www.xinu.cs.purdue.edu/
`----
or there is always xv6 (http://pdos.csail.mit.edu/6.828/2014/) which
might be useful...

-- 
kind regards
anupam

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-07  4:06     ` Anupam Kapoor
@ 2015-04-07 12:43       ` Malte Vesper
  2015-04-07 13:56         ` Miles Fidelman
  0 siblings, 1 reply; 11+ messages in thread
From: Malte Vesper @ 2015-04-07 12:43 UTC (permalink / raw)
  To: kernelnewbies



On 07/04/15 05:06, Anupam Kapoor wrote:
>>>>>> [2015-04-07T00:08:10+0530]: "Mike Thompson" (mike-thompson):
> ,----[ mike-thompson ]
> | As others mention, using the Linux kernel to come up to speed with C is the
> | wrong approach.  If you have a strong desire to learn kernel programming
> | concepts while coming up to speed on C, I would suggest getting the latest
> | book on Xinu, buying an Intel Galileo board and working your way through
> | that book.  Xinu is what I cut my teeth on 25 years ago and I remember it
> | being a terrific learning environment.  Xinu is not Linux (or Unix), but
> | for starting at the ground level all the concepts will map over when you
> | are ready to tackle Linux kernel work.
> |
> | Information for Xinu can be found here: http://www.xinu.cs.purdue.edu/
> `----
> or there is always xv6 (http://pdos.csail.mit.edu/6.828/2014/) which
> might be useful...
>
There is also OS161 or Plan9, these should be enough names to search for 
comparisons or discussions on the OS's to help you pick one.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Learning things
  2015-04-07 12:43       ` Malte Vesper
@ 2015-04-07 13:56         ` Miles Fidelman
  0 siblings, 0 replies; 11+ messages in thread
From: Miles Fidelman @ 2015-04-07 13:56 UTC (permalink / raw)
  To: kernelnewbies

Malte Vesper wrote:
>
> On 07/04/15 05:06, Anupam Kapoor wrote:
>>>>>>> [2015-04-07T00:08:10+0530]: "Mike Thompson" (mike-thompson):
>> ,----[ mike-thompson ]
>> | As others mention, using the Linux kernel to come up to speed with C is the
>> | wrong approach.  If you have a strong desire to learn kernel programming
>> | concepts while coming up to speed on C, I would suggest getting the latest
>> | book on Xinu, buying an Intel Galileo board and working your way through
>> | that book.  Xinu is what I cut my teeth on 25 years ago and I remember it
>> | being a terrific learning environment.  Xinu is not Linux (or Unix), but
>> | for starting at the ground level all the concepts will map over when you
>> | are ready to tackle Linux kernel work.
>> |
>> | Information for Xinu can be found here: http://www.xinu.cs.purdue.edu/
>> `----
>> or there is always xv6 (http://pdos.csail.mit.edu/6.828/2014/) which
>> might be useful...
>>
> There is also OS161 or Plan9, these should be enough names to search for
> comparisons or discussions on the OS's to help you pick one.
>
>

Of course, one might note that Linux started as a personal project. If 
you know something about operating systems, a historical look through 
the kernal might not be a bad way to start learning C.

Miles Fidelman


-- 
In theory, there is no difference between theory and practice.
In practice, there is.   .... Yogi Berra

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-04-07 13:56 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-06 17:43 Learning things Joris Bolsens
2015-04-06 17:02 ` Valdis.Kletnieks at vt.edu
2015-04-06 17:07   ` Joris Bolsens
2015-04-06 17:14     ` Jeff Haran
2015-04-06 23:09       ` Joris Bolsens
2015-04-06 17:05 ` Jeff Haran
2015-04-06 17:17 ` Greg KH
2015-04-06 18:38   ` Mike Thompson
2015-04-07  4:06     ` Anupam Kapoor
2015-04-07 12:43       ` Malte Vesper
2015-04-07 13:56         ` Miles Fidelman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.