Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of UNIX systems programming

    UNIX systems programming

    Kay A Robbins · 2003

    Appropriate for all intermediate-to-advanced courses in UNIX or Linux programming. This fully updated UNIX classic covers everything students need to know to master UNIX threads, TCP/IP, and RPC programming--with reusable code examples that explain syntax every step of the way. The authors explain the fundamentals of UNIX programming, focusing on communication, concurrency, and multithreading techniques: how they work, when to use them, and how to use them most effectively. This Second Edition includes entirely new chapters on programming for the Web and multicasting, as well as thoroughly revised and updated coverage of RPC. Coverage also includes files, signals, semaphores, POSIX threads, and client-server communication. The authors illustrate the best ways to write system calls, they present several hands-on projects designed to help students quickly improve their skills. Throughout, the authors present short code examples and simplified network communication libraries, demonstrating how to design complex software to achieve the best possible reliability and performance.

    Systems & OS
    Open LibraryAmazon
    Stats for nerds
    6recommend
    12mentions
    8people
    2010–2024years
    75% recommend25% neutral

    Mentions per year

    20102012201420162018202020222024

    What Hacker News says

    1. rramadassDec 2024
      Very nice especially the pedagogy. A little bit of code (in a top-down manner) together with the corresponding explanation for a complete app is how things used to be explained in the old days. I still remember studying Al Stevens' book Turbo C: Memory Resident Utilities, Screen I-O and Programming Techniques (for DOS) and learning how to layer software viz. 1) a layer over BIOS, 2) a layer to draw windows using (1) 3) a desktop manager using (2) 4) a text editor 5) making the editor memory-resident. Reading that book really taught me how to use C to build a non-trivial app.

      A very good Unix book with lots of projects like shell, token ring etc. is Practical UNIX Programming: A Guide to Concurrency, Communication, and Multithreading by Kay Robbins and Steven Robbins. It's 2nd edition is named UNIX Systems Programming: Communication, Concurrency and Threads. The code given in the book is really illuminating.

      thread
    2. rramadassNov 2023
      Sure. IMO it is important to have an overall picture of the fields of Concurrent/Parallel/Distributed architecture/programming before delving into the details of a language/library implementation. To that end i have found the following books useful;

      1) Foundations of Multithreaded, Parallel, and Distributed Programming by Gregory R. Andrews - This is one of my favourites even though old. You get to learn/compare the different paradigms in one single book.

      2) Parallel Programming: Concepts and Practice by Bertil Schmidt et al. - This is a more recent book with good explanations/coverage including CUDA.

      3) The Art of Multiprocessor Programming by Maurice Herlihy et al. - Well known classic though with a main focus on shared-memory architectures.

      Along with the above you also need more detailed language/library specific implementation books;

      a) C++ Concurrency in Action by Anthony Williams.

      b) Programming with POSIX Threads by David Butenhof.

      c) UNIX Systems Programming: Communication, Concurrency and Threads by Kay Robbins and Steve Robbins.

      Finally; for studying concurrency at the OS level where software meets hardware, i have found nothing better than;

      i) Unix Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers by Curt Schimmel.

      thread
    3. sargstuffOct 2023
      Start out a bit smaller, hands on approach:

      Unix man pages. Look at /etc/init scripts.

      Minux OS source code/documentation[0].

      Review / understand BSD version changes/differences. v1.0 to 4.4.

      Linux from Scratch[1]

      "UNIX Systems Programming: Communication, Concurrency and Threads" by Kay A. Robbins & Steve Robbins

      "Expert C Programming, Deep C Secrets" by Peter Van Der Linden

      "Comprehensive C" by David Spuler

      Awk / shell programming from a CS autonoma perspective. (start search: s-expressions, m-expressions) Note: CS masters level backround knowledge!

      [0] : http://www.minix3.org/

      [1] : https://www.linuxfromscratch.org/

      thread
    4. rramadassSep 2022
      You may find UNIX Systems Programming: Communication, Concurrency and Threads by Kay Robbins & Steven Robbins useful.
      thread
    5. rramadassJun 2021
      "Systems Programming" from a Application Developer's pov involves knowledge of;

        * Low-level languages, compiler runtimes, toolchains and libraries.
        * OS system call apis. 
        * Concurrency. 
        * Networking.
      
      You need books/papers which will teach and walk you through sample idioms and applications in the above domains. A prerequisite is fluency in the C language. With that in mind the following are recommended (some are old books which you can buy used and cheap wherever possible);

      * Computer Systems: A Programmer's Perspective by Bryant and O'Hallaron.

      * The C Companion by Allen Holub. A gem of an oldie.

      * ELF: From the Programmer's Perspective; a paper by Hongjiu Lu.

      * UNIX Network Programming by Richard Stevens. Initially, get the old 1st edition since it contains TCP/IP, IPC etc. all in one volume.

      * Advanced UNIX Programming by Marc Rochkind.

      * Advanced programming in the UNIX Environment by Richard Stevens.

      * UNIX Systems Programming by Robbins and Robbins.

      * Programming for the Real World, POSIX.4 by Bill Gallmeister.

      thread
    6. generic_userApr 2017
      Its a bit tricky I think.

      > A secure coding standard form CERT should focus entirely on describing conventions and program properties that do not already follow from the standard as a matter of correctness.

      from CERT 1.7 "The wiki also contains two platform-specific annexes at the time of this writing; one annex for POSIX and one for Windows. These annexes have been omitted from this standard because they are not part of the core standard."

      So while the CERT does use some examples from system interfaces its not a standard for programming the system interfaces for POSIX or Windows. It looks like there trying to limit the standard to ISO C. The examples you gave fall into the system interface category. POSIX is huge and the same for Windows, much bigger then ISO C.

      I think in order to explain conventions for a system interface you really need a longer form publication like a book. So you can take 50 pages to describe an interface and how to use it and show examples etc.

      The best way that I have found to figure this stuff out is the standard way. You get a copy of all the relevant standards as a foundation, ISO, POSIX, Window and stuff like CERT. Then you you get some of the system programming books (listed below). Then you find get some good reference code that show best practice. usually code from the operating system or utilities. Lastly read all the compiler docs and tool docs to set up the best code analysis framework you can.

      These are a few system programming books that I use.

      (best intro book) GNU/Linux Application Programming https://www.amazon.com/GNU-Linux-Application-Programming/dp/...

      UNIX Systems Programming https://www.amazon.com/UNIX-Systems-Programming-Communicatio...

      Advanced Programming in the UNIX Environment https://www.amazon.com/Advanced-Programming-UNIX-Environment...

      Windows System Programming https://www.amazon.com/Programming-Paperback-Addison-Wesley-...

      The Linux Programming Interface http://www.man7.org/tlpi/

      edit: I'm not sure your skill level, you may have seen all of those but I posted them regardless. There is a lot of security and convention in those books.

      thread

    Related

    Cover of Practical UNIX programming
    2021–2024

    Practical UNIX programming

    Kay A. Robbins
    2 recommend · 2
    Cover of UNIX systems for modern architectures
    2009–2026

    UNIX systems for modern architectures

    Curt Schimmel
    4 recommend · 11
    Cover of GNU/Linux application programming
    2010–2017

    GNU/Linux application programming

    M. Tim Jones
    2 recommend · 2
    Cover of Hands-On Network Programming with C
    2022–2024

    Hands-On Network Programming with C

    Lewis Van Winkle
    2 recommend · 2
    Cover of Modern X86 Assembly Language Programming
    2016–2020

    Modern X86 Assembly Language Programming

    Daniel Kusswurm
    2 recommend · 4
    Cover of Advanced UNIX programming
    2010–2024

    Advanced UNIX programming

    Marc J. Rochkind
    12 recommend · 26
    Cover of Advanced programming in the Unix environment
    2008–2025

    Advanced programming in the Unix environment

    W. Richard Stevens
    100 recommend · 153
    Cover of Unix Network Programming
    2009–2026

    Unix Network Programming

    W. Richard Stevens
    54 recommend · 78