5 ms·
> This book is not about OS dev but rather systems programming: "The Linux Programming Interface", https://nostarch.com/tlpi https://nostarch.com/tlpi You can
by CandidlyFake 9y ago
> This book is not about OS dev but rather systems programming: "The Linux Programming Interface", https://nostarch.com/tlpi https://nostarch.com/tlpi
You can also look through the man pages for free.
https://www.kernel.org/doc/man-pages/ https://www.kernel.org/doc/man-pages/
Or if you are adventurous you can play around with syscalls in assembly.
https://syscalls.kernelgrok.com/ https://syscalls.kernelgrok.com/
Also, the examples for TLPI are available online
http://man7.org/tlpi/code/online/index.html http://man7.org/tlpi/code/online/index.html
- da_chicken 9y agoNot 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.
- CandidlyFake 9y ago> 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.
- danieldk 9y agoEven 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.
- CandidlyFake 9y ago> Even then... Where are you going to start in reading references? A random syscall or function a day? Sure. Or browse through a bunch of them? > think it is far more useful to e.g. read the late W. Richard Stevens' Advanced Programming in the Unix environment. That is closer to a reference than a novice tutorial. > It puts everything in context, provides historical background where necessary, and gives examples. Sure. So do good references. Even man pages do. > 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. It depends on your level, experience and your competence in the material I guess. I'm not saying it's the only thing you need, but in many situations, it's the only thing you need to brush up.
- sigstoat 9y ago> 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.
- partycoder 9y agoI think of TLPI as a "getting started" introduction for each one of the Linux APIs. But it is also valuable as a refresher since it's a bit hard to memorize the vastness of the Linux API in the long term.