[HN Gopher] The UNIX Programming Environment (1984)
___________________________________________________________________
The UNIX Programming Environment (1984)
Author : phantom_of_cato
Score : 94 points
Date : 2022-08-26 07:42 UTC (1 days ago)
(HTM) web link (archive.org)
(TXT) w3m dump (archive.org)
| ralph84 wrote:
| The AT&T logo on the cover is a reminder of how many of the
| foundations of modern computing came out of Bell Labs.
| enneff wrote:
| This 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...
| [deleted]
| iamjk wrote:
| I 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.
| avgcorrection wrote:
| I wish this was a history book.
| georgia_peach wrote:
| Chapter 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.
| pengaru wrote:
| This 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.
| npalli wrote:
| Chapter 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.
| theonemind wrote:
| You 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 wrote:
| Nobody thinks about inodes until suddenly your disk is full,
| but df tell you it is not ;)
| zvr wrote:
| Of course, the same df can show you what's happening with
| inodes, if used with the -i flag.
| jaxrtech wrote:
| You 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)
| mgaunard wrote:
| Any software engineer should have written a filesystem during
| their bachelor's degree, and should be well familiar with the
| concept of inodes.
| userbinator wrote:
| Not every filesystem has the concept of inodes. The FAT
| family, for example, or ISO 9660.
| KerrAvon wrote:
| Nor the Apple file systems, BeOS, NTFS. It's really
| specific to the original Unix file system and direct
| derivatives.
| lamp987 wrote:
| well maybe not that, but it is very surprising that there are
| software engineers out there who dont know what inodes are.
| on my uni this was explained in an OS class in year 2 of
| bachelors programme. its basic knowledge.
| Tijdreiziger wrote:
| Operating Systems was an elective in my bachelor's program.
| It's certainly not basic knowledge.
| pjmlp wrote:
| So there are engineering degrees without OS knowledge?!?
| Tijdreiziger wrote:
| Yes, and on the other hand, there are surely also degrees
| with OS knowledge, but without AI knowledge. And degrees
| with AI knowledge, but without 3D graphics knowledge.
| And... well, you get the point.
| nineteen999 wrote:
| You don't need a bachelor's degree to write an ext2
| filesystem driver, I didn't finish high school and I've
| written a read-only one that works on both MSB (68000) and
| LSB (x86) byte order machines. The format is well documented:
|
| https://www.nongnu.org/ext2-doc/ext2.html
|
| https://wiki.osdev.org/Ext2
| nsxwolf wrote:
| Skimming 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.
| billyhoffman wrote:
| Sounds like you should join a Pubnix!
|
| https://tilde.team/
| michaelsshaw wrote:
| Very interesting! Thanks for this!
| pengaru wrote:
| I didn't enjoy my tildeverse experience personally.. there
| are others like SDF:
|
| https://sdf.org/
| rafram wrote:
| What do you enjoy more about SDF? (I haven't tried either,
| just curious.)
| pengaru wrote:
| I just didn't enjoy the social/cultural aspects I
| encountered on the tildeverse, it was quite immature and
| dysfunctional based on my experience ~2 years ago.
| grimgrin wrote:
| Here's some I found, that one on the list
|
| https://github.com/cwmccabe/pubnixhist/tree/master/systems
|
| I'm not sure it is entirely that helpful, but it IS a list!
| LtWorf wrote:
| > but "users" are pretty much just used to provide separate
| configuration and permissions scoping for different application
| services.
|
| Uh? You let your kids and wife use your same account? Are you
| insane?
| NegativeLatency wrote:
| This book is a very fun read and was awesome for understanding
| why some of the Unix stuff works the way it does
| spapas82 wrote:
| Agreed, this is an excellent book. I would definitely recommend
| it even today to people that want to improve their understand
| of unix/linux.
___________________________________________________________________
(page generated 2022-08-27 23:00 UTC)