TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Brushing up on operating systems and C programming

422 pointsby shbhrsahaover 7 years ago

16 comments

teerayover 7 years ago
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 seem like things C projects routinely grapple with.
评论 #16196824 未加载
评论 #16196646 未加载
评论 #16197127 未加载
评论 #16196758 未加载
评论 #16196722 未加载
评论 #16197878 未加载
评论 #16196642 未加载
评论 #16196684 未加载
评论 #16198523 未加载
评论 #16198059 未加载
评论 #16196609 未加载
评论 #16196862 未加载
tonyover 7 years ago
I recommend (by most expensive, to free):<p>Marshall Kirk McKusick&#x27;s FreeBSD Intensive Code Walkthrough: <a href="https:&#x2F;&#x2F;www.mckusick.com&#x2F;courses&#x2F;advdescrip.html" rel="nofollow">https:&#x2F;&#x2F;www.mckusick.com&#x2F;courses&#x2F;advdescrip.html</a><p>Also, <i>The Design and Implementation of the FreeBSD Operating System (2nd Edition)</i>: <a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Design-Implementation-FreeBSD-Operating-System&#x2F;dp&#x2F;0321968972" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Design-Implementation-FreeBSD-Operati...</a><p>Thirdly: grab a copy of FreeBSD (or OpenBSD) and (a) set it up in VirtualBox and SSH it into locally (b) use an old ThinkPad. Then grab the source code of the base system. Build and install it. And start reading code of things like usr.bin&#x2F;grep&#x2F;grep.c
评论 #16197128 未加载
partycoderover 7 years ago
This book is not about OS dev but rather systems programming: &quot;The Linux Programming Interface&quot;, <a href="https:&#x2F;&#x2F;nostarch.com&#x2F;tlpi" rel="nofollow">https:&#x2F;&#x2F;nostarch.com&#x2F;tlpi</a><p>For OS development resources, this wiki is very good: <a href="http:&#x2F;&#x2F;wiki.osdev.org" rel="nofollow">http:&#x2F;&#x2F;wiki.osdev.org</a>
评论 #16196822 未加载
评论 #16196630 未加载
评论 #16196798 未加载
dhuramasover 7 years ago
<a href="http:&#x2F;&#x2F;pages.cs.wisc.edu&#x2F;~remzi&#x2F;OSTEP&#x2F;" rel="nofollow">http:&#x2F;&#x2F;pages.cs.wisc.edu&#x2F;~remzi&#x2F;OSTEP&#x2F;</a> is really good and approachable. It was even recommended in one of the Gatech OS courses.
评论 #16196676 未加载
评论 #16206526 未加载
评论 #16197492 未加载
beeforporkover 7 years ago
To learn which traps to avoid in C, have a look at SEI CERT C. It&#x27;s written very well with examples and explanations, and is structured as a coding guide.<p><a href="https:&#x2F;&#x2F;wiki.sei.cmu.edu&#x2F;confluence&#x2F;display&#x2F;c&#x2F;SEI+CERT+C+Coding+Standard" rel="nofollow">https:&#x2F;&#x2F;wiki.sei.cmu.edu&#x2F;confluence&#x2F;display&#x2F;c&#x2F;SEI+CERT+C+Cod...</a>
csnewbover 7 years ago
I recently decided to review operating systems, but my old Tanenbaum textbook from college would take forever to read through especially now that I&#x27;m working full time. I&#x27;ve been watching the Berkeley lecture series on Youtube (CS 162) and its been pretty good at covering the main topics concisely.
评论 #16196680 未加载
lettergramover 7 years ago
I personally found the best method of brushing up on C and operating systems was just walking through examples myself...<p>Haven&#x27;t personally done it for a few years, but I went through step by step on my blog (particularly in 2014):<p><a href="https:&#x2F;&#x2F;austingwalters.com&#x2F;knowledge&#x2F;" rel="nofollow">https:&#x2F;&#x2F;austingwalters.com&#x2F;knowledge&#x2F;</a><p>I also have a nice repo of a bunch of IPC examples:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;lettergram&#x2F;IPC-examples" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;lettergram&#x2F;IPC-examples</a>
beeforporkover 7 years ago
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:<p><a href="http:&#x2F;&#x2F;blog.llvm.org&#x2F;2011&#x2F;05&#x2F;what-every-c-programmer-should-know_14.html" rel="nofollow">http:&#x2F;&#x2F;blog.llvm.org&#x2F;2011&#x2F;05&#x2F;what-every-c-programmer-should-...</a>
zabanaover 7 years ago
Somewhat unrelated but I&#x27;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)
评论 #16197838 未加载
评论 #16197239 未加载
评论 #16197686 未加载
b3h3mothover 7 years ago
Great &#x27;free&#x27; resources:<p>- C Programming Boot Camp <a href="https:&#x2F;&#x2F;www.gribblelab.org&#x2F;CBootCamp&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;www.gribblelab.org&#x2F;CBootCamp&#x2F;index.html</a><p>- aalto-c.mooc <a href="http:&#x2F;&#x2F;2016-aalto-c.mooc.fi&#x2F;en&#x2F;Module_1&#x2F;index.html" rel="nofollow">http:&#x2F;&#x2F;2016-aalto-c.mooc.fi&#x2F;en&#x2F;Module_1&#x2F;index.html</a>
django1993over 7 years ago
I would also recommend reading Computer Systems: A Programmer&#x27;s Perspective, 3rd Edition.
评论 #16197885 未加载
stiffover 7 years ago
I like this little book, in very small amount of space it teaches you how to build a bare bones OS, from there you can start doing your own experiments which I think is the best way to really learn something:<p><a href="https:&#x2F;&#x2F;littleosbook.github.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;littleosbook.github.io&#x2F;</a><p>It&#x27;s good to not only know operating systems in general, but also to understand some of the internals of the operating system you are actually using. For Linux, this is good:<p><a href="https:&#x2F;&#x2F;0xax.gitbooks.io&#x2F;linux-insides&#x2F;content&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;0xax.gitbooks.io&#x2F;linux-insides&#x2F;content&#x2F;index.html</a>
andlrcover 7 years ago
TLPI is a fantastic reference book to have when written code.
orsenthilover 7 years ago
CS50 courses (This is CS50!), cs50.io is currently one of the easiest and the best introduction to C language. It&#x27;s very modern approach to teaching C programming.
swinghuover 7 years ago
mark as it is ,learned a lot
sifooover 7 years ago
Will recommending my own project get me hell-voted? Cixl is a straight forward 3-stage (parse&#x2F;compile&#x2F;eval) interpreter that is designed to be as fast as possible without compromising on simplicity, transparency and flexibility. The codebase has no external dependencies and is currently hovering around 7 kloc including tests and standard library. There are some articles explaining design decisions, but I&#x27;ve been mostly busy with code. The code should be perfectly readable though, and contains plenty of good ideas distilled from 32 years of daily practice.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;basic-gongfu&#x2F;cixl" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;basic-gongfu&#x2F;cixl</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;basic-gongfu&#x2F;cixl&#x2F;tree&#x2F;master&#x2F;devlog" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;basic-gongfu&#x2F;cixl&#x2F;tree&#x2F;master&#x2F;devlog</a>
评论 #16197662 未加载
评论 #16196853 未加载