13 ms·
The UNIX Programming Environment (1984)
- NegativeLatency 4y agoThis book is a very fun read and was awesome for understanding why some of the Unix stuff works the way it does
- aacid 4y agoI'm currently reading and it feels like I'm learning a lot but at the same time it shows that a lot has changed since then. I would love similar book but relevsnt for the current systems...
- NegativeLatency 4y agoI imagine that would be hard because the scope is so much larger today
- spapas82 4y agoAgreed, this is an excellent book. I would definitely recommend it even today to people that want to improve their understand of unix/linux.
- deleted 4y ago[deleted]
- SoftTalker 4y agoYes back when there were a few good books that were the references for tech subjects. No Google, no Stack Overflow, no "For Dummies" waste of paper.
- deleted 4y ago[deleted]
- theonemind 4y agoYou have to read this so that when inodes come up at your sysadmin/devops social gathering's scintillating conversation you don't have to run to the bathroom and google it on your phone and try muddle your way through without your face turning red. (inodes just strike me as one of those weird little things like SQL, except for much smaller/easier to learn--just something critical, always there, and for some reason, not understood by a lot of sysad/devops types. I forgot the detail until rereading this book recently. I imagine you can expect the details to vary widely on modern filesystems, but ext4 (descending from and backwards compatible with ole ext2) probably has the concept, and BSD's ffs/ufs, and the idea probably gives you some hazy idea of this general area of the world for a lot of filesystems I also find the treatment of some old topics kind of illuminating, like the stty command when I do obscure stuff like use serial terminals or try to use a text buffer as a tty--interesting that you can still tell the kernel "hey, do this dirty hack for my terminal when handling characters and things. Thanks.")
- buildbot 4y agoNobody thinks about inodes until suddenly your disk is full, but df tell you it is not ;)
- zvr 4y agoOf course, the same df can show you what's happening with inodes, if used with the -i flag.
- buildbot 4y agoThis is true! Once I figured out what to search for, df was able to confirm what the problem was for me.
- jaxrtech 4y agoYou should be able to see inode usage with `df -i`, no? I usually use `df -Tih` (print the file system type, list inode usage, in human-readable format). I've had the other case where `df` says the disk is full with plenty of inodes left, but then `ncdu` says there is plenty of space (supposedly). Lo' and behold, you have some borked process still holding GBs of log files open that you thought you "deleted" -- really unlinked from a directory. tl;dr: Don't forget `lsof +L1` to find pesky processes that are holding files open that you unlinked from a directory but have yet to be actually marked as deleted on the filesystem [1]. The space on disk won't be freed until the process closes the files or is terminated. (Technically, the open files are associated with a mount point, not the file system itself, which makes dealing with symbolic links across file systems somewhat confusing.) [1]: For example, see https://unix.stackexchange.com/a/141639/332116 https://unix.stackexchange.com/a/141639/332116)
- georgia_peach 4y agoChapter 5 is the best intro to shell programming I've ever read. If you read it for that purpose, don't skip chaps 1-4.
- ralph84 4y agoThe AT&T logo on the cover is a reminder of how many of the foundations of modern computing came out of Bell Labs.
- pjmlp 4y agoThanks to AT&T not being able to charge for anything out of Bell Labs, they were quick to react once they were allowed to. Had it not been the case, we would probably be using something else instead.
- avgcorrection 4y agoI wish this was a history book.
- Jiocus 4y agoThen you might be interested in "Unix: A History and a Memoir" also by Brian Kernighan
- nsxwolf 4y agoSkimming this makes me long for the time when the multiuser nature of Unix was really utilized as intended. I miss being on a system and typing "who" to see who is on, and starting a chat with them with "talk". Or sending mail to other users just on that system. Using "finger" to read updates in their .plan files. Many of the "social" aspects of the internet today existed in that multiuser aspect of Unix, in a much more intimate way. Macs and Linux machines are still multiuser systems, but "users" are pretty much just used to provide separate configuration and permissions scoping for different application services. It would be nice to have someone hop onto a terminal on my Mac once in awhile and say hello.
- smorrow 4y agoWhat I find interesting is that Plan 9's "who" did not. It's just ls /proc | sed '{grep out usernames}' | sort -u so it's pretty specific to whatever machine it runs on, as opposed to who's logged into the installation you've run it on. On another note, on Tenth Edition Unix, when you logged in from a Blit, something would get pipefiled[1] over your tty and wrap writes from new opens in something that puts it to a window-manager window. Possible because of not having name spaces for files. [1] 'Mounted stream' in http://man.cat-v.org/unix_10th/2/fmount http://man.cat-v.org/unix_10th/2/fmount
- billyhoffman 4y agoSounds like you should join a Pubnix! https://tilde.team/ https://tilde.team/
- michaelsshaw 4y agoVery interesting! Thanks for this!
- pengaru 4y agoI didn't enjoy my tildeverse experience personally.. there are others like SDF: https://sdf.org/ https://sdf.org/
- 4y ago
- enneff 4y agoThis is a great book, one of my faves. It is a surprise to see it hosted on archive.org when it is still in print, though. Please support good technical writing! https://www.amazon.com/Unix-Programming-Environment-Prentice-Hall-Software/dp/013937681X https://www.amazon.com/Unix-Programming-Environment-Prentice...
- jope12 4y agoIt's not in print anymore. Your link is a used book.
- enneff 4y agoThe link I posted has both new and used copies for sale.
- justinator 4y agoIt's being advertised as new as in, "it's not not used"; not new as in, "it's not old". The edition being sold is 39 years old.
- Archelaos 4y ago"Being in print" or "new" a is not well-defined in this context. "Being in print" is only a metaphor, since the process of printing is typically completed when a copy of a book is sold (and makes not sense in the case of publishing-on-demand, where it would be equivalent to "is available"); and "new" can mean "in its original condition" or "recently published" (with some uncertainty what time span "recently" denotes). A more precise criterion would be whether a book is still on its publisher's backlist. As far as "The UNIX Programming Environment" is concerned, the answer is positive. Its publisher Prentice Hall was aquired by Simon & Schuster and later sold to Pearson.[1] On Pearson's Web-site the book is still available.[2] [1] https://de.wikipedia.org/wiki/Prentice_Hall https://de.wikipedia.org/wiki/Prentice_Hall [2] https://www.pearson.com/en-us/subject-catalog/p/unix-programming-environment-the/P200000000349 https://www.pearson.com/en-us/subject-catalog/p/unix-program...
- pengaru 4y agoThis book has an exceptionally high signal:noise ratio. It's long been a favorite of mine, even with its relatively high price tag for a small paperback.
- didgetmaster 4y agoI had to buy this book back in 1985 when working on my CS degree. Like just a handful of other books, it has survived decades of going through my collection of physical books and weeding out ones that are no longer relevant.
- pengaru 4y agoWhich says as much about the surprisingly lasting utility and consistency of UNIX as it does this book.
- iamjk 4y agoI love this book! There is a lot of abstraction today that most software workers benefit from, but I think there is a lot of value in understanding lower-level mechanisms.
- npalli 4y agoChapter 8 was the most surprising part of the book for me when I first read it. Up till that point lot of the information was mostly what seemed like administrator/user territory. Then BAM! it goes into designing a full fledged interpreter for a BASIC level complexity language, suddenly you are into language design; utterly fascinating how using simple tools like yacc, lex and some simple code (the entire code for the interpreter is published in the Appendix) you can do amazing things as a programmer.
- rramadass 4y agoThis is exactly what i came to point out! That chapter named "Program Development" is a masterpiece and a must read by every Software Engineer. I read it before i knew what Compilers/Language Design involved and it was sort of a revelation in how much you can get done without knowing too much theory but with the intelligent use of appropriate tools, a framework and a guiding hand. Whenever people ask me for resources on Compilers/Language Design i always tell them to first read this chapter a couple of times and grasp it thoroughly and only then move onto other proper textbooks. A good followup to this chapter is the book Introduction to Compiler Construction with Unix by Axel Schreiner and George Friedman - https://archive.org/details/introduction.to.compiler.construction/mode/2up https://archive.org/details/introduction.to.compiler.constru...
- koinedad 4y agoI’ve been reading through this for a few months, lots of great content and can’t believe how useful it is so many years later.
- haunter 4y ago> Although most users think of the shell as an interactive command interpreter, it is really a programming language in which each statement runs a command I’ve read the book in one summer when I was in highschool and this sentence was the biggest light bulb moment for me. So simple and eloquent. This was the point where I _get_ what does programming and writing code really means.
- anthk 4y agoI'd love this book if it was rewritten for ANSI C and maybe modern tools such as the ones for NetBSD or OpenBSD at least. AWK and sh still work of course.
- TeeMassive 4y ago"The UNIX system is full duplex: the characters you type on the keyboard are sent to the system, which sends them back to the terminal to be printed on the screen. Normally, this echo process copies the characters directly to the screen, so you can see what you are typing" Ohhhh that is why it is called echo!
- Zenst 4y agoAmazingly I have this on my bookshelf, arms reach away, the times before everything was on the internet. Good times. Though whoever stole my ring-bound vi reference guide of that era - cursor you.
- weedUser 4y agoThis is a really great read. Added to my top 10 books for computer geeks.