Live data from Hacker News

Brushing up on operating systems and C programming

shubhro.com

11–20 of 89 posts

Re: Brushing up on operating systems and C programming

#11
post #4

http://pages.cs.wisc.edu/~remzi/OSTEP/ is really good and approachable. It was even recommended in one of the Gatech OS courses.

I've gone through the first few chapters of this book, it's fine. The exercises are somewhat lacking though, in my opinion (the last course I did was nand2tetris, which was project-based, so perhaps I have unrealistic expectations). I started learning C concurrently, and didn't find it a problem.

Re: Brushing up on operating systems and C programming

#12
post #2

I recently decided to review operating systems, but my old Tanenbaum textbook from college would take forever to read through especially now that I'm working full time. I've been watching the Berkeley lecture series on Youtube (CS 162) and its been pretty good at covering the main topics concisely.

What prompted you to review? Does this somehow indicate that you weren't using the course material in your job(s)?

Re: Brushing up on operating systems and C programming

#13
post #5

Can anyone recommend an intermediate to advanced C book? I feel like most C material I've been exposed to in the past lacks what a modern C project should have when it comes to best practices, code organization, build tools (should I use make for this, cmake, where does autotools fit? what about clang vs gcc?), linters (valgrind?), testing, etc. I recognize that much of this falls outside of C, but all of these tools…

I would recommend https://www.amazon.com/C-Programming-Modern-Approach-2nd/dp/.... There's specifically a section on organizing large projects IIRC.

Re: Brushing up on operating systems and C programming

#14

Earlier quoted context omitted.

> This book is not about OS dev but rather systems programming: "The Linux Programming Interface", https://nostarch.com/tlpi You can also look through the man pages for free. https://www.kernel.org/doc/man-pages/ Or if you are adventurous you can play around with syscalls in assembly. https://syscalls.kernelgrok.com/ Also, the examples for TLPI are available online http://man7.org/tlpi/code/online/index.html

Not to pick on you specifically, but I've really grown to hate this type of response to this very common question. Most people new to a topic want an instructional manual or guide, not a technical reference. Man pages and tables of syscalls are decidedly the latter, and therefore primarily intended for people who are already familiar with the topics they cover.

> Most people new to a topic want an instructional manual or guide, not a technical reference. Man pages and tables of syscalls are decidedly the latter, and therefore primarily intended for people who are already familiar with the topics they cover

But this thread is about brushing up on OS and C programming. So not novices, but people who are already familiar with the topic.

Re: Brushing up on operating systems and C programming

#16
post #5

Can anyone recommend an intermediate to advanced C book? I feel like most C material I've been exposed to in the past lacks what a modern C project should have when it comes to best practices, code organization, build tools (should I use make for this, cmake, where does autotools fit? what about clang vs gcc?), linters (valgrind?), testing, etc. I recognize that much of this falls outside of C, but all of these tools…

One of the best books: Computer Systems: A Programmer's Perspective (3rd Edition)

Re: Brushing up on operating systems and C programming

#17
post #5

Can anyone recommend an intermediate to advanced C book? I feel like most C material I've been exposed to in the past lacks what a modern C project should have when it comes to best practices, code organization, build tools (should I use make for this, cmake, where does autotools fit? what about clang vs gcc?), linters (valgrind?), testing, etc. I recognize that much of this falls outside of C, but all of these tools…

Take a look at this one, you wont regret http://icube-icps.unistra.fr/img_auth.php/d/db/ModernC.pdf

Re: Brushing up on operating systems and C programming

#18

Earlier quoted context omitted.

> This book is not about OS dev but rather systems programming: "The Linux Programming Interface", https://nostarch.com/tlpi You can also look through the man pages for free. https://www.kernel.org/doc/man-pages/ Or if you are adventurous you can play around with syscalls in assembly. https://syscalls.kernelgrok.com/ Also, the examples for TLPI are available online http://man7.org/tlpi/code/online/index.html

Not to pick on you specifically, but I've really grown to hate this type of response to this very common question. Most people new to a topic want an instructional manual or guide, not a technical reference. Man pages and tables of syscalls are decidedly the latter, and therefore primarily intended for people who are already familiar with the topics they cover.

> Not to pick on you specifically, but I've really grown to hate this type of response to this very common question.

what question? this isn't an Ask HN, and partycoder didn't ask a question.

Re: Brushing up on operating systems and C programming

#19
post #9
post #5

Can anyone recommend an intermediate to advanced C book? I feel like most C material I've been exposed to in the past lacks what a modern C project should have when it comes to best practices, code organization, build tools (should I use make for this, cmake, where does autotools fit? what about clang vs gcc?), linters (valgrind?), testing, etc. I recognize that much of this falls outside of C, but all of these tools…

I really liked this one: http://shop.oreilly.com/product/0636920033677.do (21st century C, in case the link is wrong as I’m on my phone now)

Second.

Re: Brushing up on operating systems and C programming

#20
post #5

Can anyone recommend an intermediate to advanced C book? I feel like most C material I've been exposed to in the past lacks what a modern C project should have when it comes to best practices, code organization, build tools (should I use make for this, cmake, where does autotools fit? what about clang vs gcc?), linters (valgrind?), testing, etc. I recognize that much of this falls outside of C, but all of these tools…

One of the best books: Computer Systems: A Programmer's Perspective (3rd Edition)

I second this. Seriously the best textbook on systems programming I've worked through especially when accompanied with the famous CMU labs[0]. Anyone who works thoroughly through this book can become a master systems programmer.

[0]: http://csapp.cs.cmu.edu/3e/labs.html

Post reply on HN