Wednesday, February 26, 2014

man-pages-3.61 is released

I've released man-pages-3.61. The release tarball is available on kernel.org. The browsable online pages can be found on man7.org. The Git repository for man-pages is available on kernel.org.

This was a relatively small release. Among the more notable changes in man-pages-3.61 are the following:

  • As ever, Peng Haitao continued adding notes on thread-safety to various manual pages.
  • A note from Christoph Hellwig prompted me to perform a task that has been queued for a while: merging the text of the man pages for the "directory file descriptor" APIs into their corresponding traditional pages. When the "directory file descriptor" pages were originally written (mostly in 2006), the APIs were not part of POSIX and (in most cases) were not available on other systems. So, it made some sense to wall them off into their own separate pages. Eight years later, with the APIs now all in POSIX (except scandirat()), it is much more sensible to document the newer APIs alongside their traditional counterparts, so that the newer APIs are not "hidden", and the reader can more easily see the differences between the APIs.

    Thus, the text of 14 pairs of pages has been merged, and the "merged from" pages have been converted to links to the "merged to" pages. Along the way, a few other fixes were made to the pages, as noted below. The resulting merged pages are: access(2), chmod(2), chown(2), link(2), mkdir(2), mknod(2), open(2), readlink(2), rename(2), stat(2), symlink(2), unlink(2), mkfifo(3), and scandir(3).

    One page that did not undergo such a change was utimensat(2), which is different enough from utime(2) that it warrants a separate page. Unlike the other pages, the utimensat(2) page was also already self-contained, rather than defining itself in terms of differences from the traditional API as the other pages did.
In addition, smaller improvements and fixes have been made to many other pages.

Wednesday, February 19, 2014

Further Linux/UNIX System Programming courses scheduled

I've scheduled two further public iterations of my Linux/UNIX System Programming course in Munich, Germany, in April and June, and I hope to announce a San Francisco date soon as well. (I'm also available to give on-demand tailored versions of the course onsite at customer premises, in Europe, the US, and further afield.)
          
The 5-day course is intended for programmers developing system-level, embedded, or network applications for Linux and UNIX systems, or programmers porting such applications from other operating systems (e.g., Windows) to Linux or UNIX. The course is based on my book, The Linux Programming Interface (TLPI), and covers topics such as low-level file I/O; signals and timers; creating processes and executing programs; POSIX threads programming; interprocess communication (pipes, FIFOs, message queues, semaphores, shared memory),  network programming (sockets), and server design.
     
The course has a lecture+lab format, and devotes substantial time to working on some carefully chosen programming exercises that put the "theory" into practice. Students receive a copy of TLPI, along with a 600-page course book containing the more than 1000 slides that are used in the course. A reading knowledge of C is assumed; no previous system programming experience is needed.

Some useful links for anyone interested in the course:

Questions about the course? Email me via training@man7.org.

Sunday, February 16, 2014

man-pages-3.59 and man-pages-3.60 released

I've released man-pages-3.59. The release tarball is available on kernel.org. The browsable online pages can be found on man7.org. The Git repository for man-pages is available on kernel.org.

The sole change in this release is the conversion of various man pages that contained non-ASCII characters, as well as the changelog, to UTF-8 encoding, a task completed thanks largely to some scripts provided by Peter Schiffer.

Update, 2014-02-18: turns out that a couple of section 7 pages had encoding errors added in man-pages-3.59. So, I've decided to make a quick small 3.60 release that fixes those issues, and includes a few other unrelated minor fixes.

Tuesday, February 11, 2014

man-pages-3.58 is released

I've released man-pages-3.58. The release tarball is available on kernel.org. The browsable online pages can be found on man7.org. The Git repository for man-pages is available on kernel.org.

This was a relatively small release. Among the more notable changes in man-pages-3.58 are the following:

  • The pipe(2) man page adds documentation of the new O_DIRECT flag that was implemented for pipe2() in Linux 3.4.
  • Daniel Borkmann added a description of the PACKET_QDISC_BYPASS socket option to the packet(7) man page.
  • The recv(2) man page underwent some reworking to add some details and make its structure more comprehensible.
  • And, as ever, Peng Haitao continued adding notes on thread-safety to various manual pages.
In addition, smaller improvements and fixes have been made to many other pages.