0

I have an idea of the answer for this, but i think i need help with the answer.

My university lecturer told me the best way to learn about an OS was to 'get inside' Linux. Would someone be able to tell me, practically, how i could go about doing this? I dont really know too much about Linux or dissamblers etc?

Also, any other useful tips would be very welcome.

The reason i am asking this is because eventually i want to be able to re-write parts of the kernel, optimise an OS, make a 'barebones' version as im very interested in electronic trading platform programming/high frequency trading.

Ben
  • 97
  • 1
  • 3
  • And possible duplicate: http://stackoverflow.com/questions/536506/how-do-real-time-operating-systems-work – karlphillip Jan 17 '11 at 19:47
  • surely there's a sort of "linux handbook for programmers" around. Finding a textbook like that and a copy of linux's sources should help you. – BlackBear Jan 17 '11 at 19:49
  • Doing this won't help you much with regard to electronic trading. Just sayin'. – John Zwinck Jan 17 '11 at 20:02
  • 1
    The usual answer to *"How can I fully understand foo?"* for any reasonably mature field is *"Study foo for at least 10000 hours over at least ten years."*, but you might start by implementing a small one... – dmckee --- ex-moderator kitten Jan 18 '11 at 03:25

4 Answers4

2

I read some chapters of this book in school:

alt text

Operating Systems Design and Implementation by Andrew S. Tanebaum.

You may take a look at it.

OscarRyz
  • 196,001
  • 113
  • 385
  • 569
2

Head over to the OSDev wiki - it's a great resource for starters and much friendlier than jumping directly into the fires of the Linux kernel.

http://wiki.osdev.org/

NTDLS
  • 4,757
  • 4
  • 44
  • 70
0

There are many books on the subject. Here's even a free one - Linux Device Drivers. Count LXR as one of your resources too.

Nikolai Fetissov
  • 82,306
  • 11
  • 110
  • 171
0

In fact, when I started to do linux development, the book that gave me a good interstanding of the role of an OS, was the "ARM architecture reference manual". I understood basic concepts of how a general purpose processor works :

the various mode (supervisor, user, etc...), the concept of virtual memory, page, page table. The various stacks etc...

And then, all this things about userspace vs kernelspace, system call, process, thread execution contex etc... were fitting very nicely on the mental model I had of a processor.

Then I read "Linux device driver", it was the second edition, but a third one has been published since, and it teached me an aspect of how an OS work. So, programming book are fine, but understanding how a processor works is a great help

shodanex
  • 14,975
  • 11
  • 57
  • 91