-5

I was reading "Operating Systems Design and Implementation" by Andrew S. Tanenbaum. It has Source code of MINIX when approaching the back of the book. I know C programming and have also studied the subject of Operating Systems, but still I was not able to understand the source code. Very few lines were such which could be understood.

I found many new libraries included over there. These libraries are not taught the syllabus of my university. Also, when asked teachers of this, even they don't understand the code. So, where can whole C programming be learnt, with all of its libraries? Because university doesn't go in depths.

In a nut shell, how can we learn C programming or any other programming language to such a depth, that by just looking at any code, one can tell what is the code gonna do.

Arlene Batada
  • 1,565
  • 2
  • 11
  • 11
  • 1
    [The Definitive C Book Guide and List](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list) – Grijesh Chauhan Jul 18 '13 at 05:25
  • 9
    You can learn it only in practice. There's a lot of libraries and your attempt to learn *all* is like desire to understand the Univerce! – Eddy_Em Jul 18 '13 at 05:25
  • C is a Sea. All the best.. – Krishnabhadra Jul 18 '13 at 05:39
  • 1
    Doesn't the index to the MINIX book include the page number of the definitions of all the functions he uses? – jxh Jul 18 '13 at 05:40
  • 1
    I suggest first go through the following book. C-Programming-Modern-Approach-2nd then once you get the grip on fundamentals then go for other books from following link http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list Yes you can learn by looking into code but first you have to know the basic.Not only by reading you will get all the stuffs to learn any programming language you have to spend time with your Computer and just type the programming exercises from the book suggested. Best of luck.. – pradipta Jul 18 '13 at 05:41
  • 1
    If you want to ask an answerable question, give specific examples of code you don't understand. – n. m. could be an AI Jul 18 '13 at 05:42
  • 1
    Operating system kernels do not usually rely on "libraries" such as you might see in application development. The headers that are being included are just other parts of the kernel. You can probably understand MINIX with only a solid grasp of C as taught by K&R. I'm sure Tanenbaum wanted as few obstacles between you and the kernel source as possible. – Ben Jackson Jul 18 '13 at 06:42
  • I thank all the people who have tried answering my question. I don't understand why some people try demotivating? And what's worse you know? They even vote negatively to the question. The question which may not be important for you can be important to me and I've all the right to ask my questions to the people willing to answer. The ones who are not willing to answer have no compulsion for support but at least don't be a stone in the way. – Arlene Batada Jul 18 '13 at 06:44

2 Answers2

2

I used to refer to a book a long time ago by Plauger...you may find it useful if you implement your own versions and then compare OR just study them. Ref: http://www.amazon.com/The-Standard-Library-P-J-Plauger/dp/0131315099

lsk
  • 532
  • 4
  • 5
0

You need not learn all libraries. You have to learn how to use libraries. All libraries are presented as object files in the our c source. So you will not find any code for libraries. Learn how to use the libraries and make your task done.Here is a reference manual for standard c library. You can go through it.

Chinna
  • 3,930
  • 4
  • 25
  • 55
  • 1
    libraries teach me the best optimal code - Isn't useful ? – VoidPointer Jul 18 '13 at 05:26
  • 6
    *"All libraries are presented as object files in the our c source."* Huh? Did you mean "...without C source"? If so, "all" is blatantly wrong. Consider all of the gnu libraries, for instance. – T.J. Crowder Jul 18 '13 at 05:33