Live data from Hacker News

Brushing up on operating systems and C programming

shubhro.com

41–50 of 89 posts

Re: Brushing up on operating systems and C programming

#41
post #40

Somewhat unrelated but I've always wanted ask: What types of small projects can a beginner start to develop a better understanding of C ? (Beyond basic syntax, something that would actually make use of memory allocation, pointers etc)

Creating a small UFS implementation (on top of your file system, rather than as a raw disk is probably easier) in C is a nice fun exercise.

Re: Brushing up on operating systems and C programming

#43

Earlier quoted context omitted.

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.

Even then... Where are you going to start in reading references? A random syscall or function a day? I think it is far more useful to e.g. read the late W. Richard Stevens' Advanced Programming in the Unix environment. It puts everything in context, provides historical background where necessary, and gives examples.

Reference pages are not really for brushing up, but more for the 'what was the address family field of sockaddr called again'-type of questions? Or put differently: they are external memory.

Re: Brushing up on operating systems and C programming

#47
post #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

Hey, thanks a lot! Went through some pages around, and looks like a very informative book. Is there a printed version?

Re: Brushing up on operating systems and C programming

#49
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)?

I graduated from college more than 2 years ago so I forgot almost all of them CS topics that I've learned and wanted to review the fundamentals (OS, databases, computer architecture, etc). And no, I don't use of these concepts very much at work, only surface level knowledge. I've also been trying to learn more about malware analysis and reverse engineering, and it seems like having a solid foundation in CS concepts is key to being proficient at it.

Re: Brushing up on operating systems and C programming

#50
Knowing and fully understanding the concept of undefined behaviour (UB) and the difference to unspecified and implementation-defined behaviour is a must for safe and secure C programming. Because arguably, C and C++ are broken at the specification level. Chris Lattner puts this in kind words:

http://blog.llvm.org/2011/05/what-every-c-programmer-should-...

Post reply on HN