5 ms·
* Start with C programming language. K&R book is still the best, even though outdated. * Take a course like Nand2Tetris (freely available online) * Read a goo
by _448 3y ago
* Start with C programming language. K&R book is still the best, even though outdated.
* Take a course like Nand2Tetris (freely available online)
* Read a good OS book, e.g. The Design of the UNIX Operating System by Maurice Bach or any Andrew Tanenbaum book on the subject.
* Search for "unix systems programming" or "linux systems programming" and you will find some fantastic free books online.
* Read the free Linux Device Driver book. It is outdated but will still provide enough information to help you self navigate Linux driver code.
* Visit https://wiki.osdev.org/Expanded_Main_Page https://wiki.osdev.org/Expanded_Main_Page
* And as they say, "Read the source, Luke"; read the Linux source code. First you will have to identify which subsystem you are interested in, and then start browsing that.
- anditherobot 3y agoIf it's outdated is it still the best? Did you mean: even though it's old ?
- linguae 3y ago“The C Programming Language, Second Edition” is an excellent book for learning the basics of ANSI C. However, there have been a few revisions of the C standard since then. While none of the changes are extreme (it’s not like learning Java 1.2 or Python 2 in 2023, and there are many ANSI C code bases still being maintained today), it’s still good to know of the newer features of the language. Additionally, the book does not cover certain pitfalls that affect the security and reliability of programs written in C, such as security problems caused by faulty uses of gets() and strcpy(). It’s unfortunate Dennis Ritchie is no longer with us; it would be nice to have a third edition of K&R that covers modern C standards and has information about best practices for avoiding situations that can lead to insecure code.
- _448 3y agoThere is one free book for modern C https://gustedt.gitlabpages.inria.fr/modern-c https://gustedt.gitlabpages.inria.fr/modern-c Did not check whether it covers security issues.
- 1letterunixname 3y agoThe "Downloads" link is dead but the other 2 work.
- 1letterunixname 3y agoIn general, following a combined approach of OpenBSD and MISRA is generally a good way to code. Code defensively, check all external untrusted input (Windows (NT-kernel) has checked and unchecked syscalls).
- shric 3y agoI would highly recommend C Programming: A Modern Approach by K.N. King as an alternative and replacement for K&R. http://knking.com/books/c2/index.html http://knking.com/books/c2/index.html
- _448 3y agoOutdated because the versions have changed a lot since the last publication of the book. It is still good because it gives information about general things which are applicable across any version. BTW,just checked the meaning of outdated on Cambridge dictionary portal; outdated means "no longer useful or modern" When I used the word outdated I meant "no longer modern" :)