The immediate difference I noticed is that the GNU version contains a lot more comments describing what actually happens.
Now, what do you think is more appropriate for educational purposes. Source code with plenty of comments or source code with nearly no comments at all?
If you just wanna see how a few library functions and system calls are used? yeah, just get APUE and dig into the simplest implementations you can find, which is often BSDish.
I routinely gloss over comments when reading code anyway; the most accurate documentation is found via reflection & introspection on the system itself, not comments.
Now, what do you think is more appropriate for educational purposes. Source code with plenty of comments or source code with nearly no comments at all?