LJ Archive

Letters to the Editor

LJ Staff

Issue #24, April 1996

Readers sound off.


Regarding Phil Hughes' article in the December issue of LJ, please help push further development of Arena. Netscape is huge, slow, and our only option. I now use Lynx for almost all my browsing because Netscape is so slow on my system. Arena runs well, but cannot handle forms, one of the most functional features of a web browser. Like many people, I am not interested in background patterns and enhanced fonts. I want easy access to information, which I am unable to get with Netscape or the current Arena.

—Peter McArthur peterm@3rdplanet.com

More Ideas

Linux Journal has a sister publication called WEBsmith™, and its editor, Jon Gross, was recently involved in a World Wide Web conference. We asked him to respond:

I (and many others) agree with your summation of the status of the browser selection available at this point. In December, I was at the 4th International World Wide Web conference in Boston, and a group of us started talking, and decided it was time to start a Free Browser project, modeled on the Linux community, to address exactly this problem. We are putting a mildly cohesive framework together before “going public” but your input is certainly appreciated. The Linux community has much to offer this project, and I think we can definitely build a better mousetrap. A mailing list has been set up. See www.base.com/gordoni/web/www4-bof.html for more information.

—Websmith Magazine Editor, Jonathan Gross

Sticky Mistake

“The chmod Command” by Eric Goebelbecker (LJ #21) was an excellent introduction to the sometimes counterintuitive file and directory permissions of Unix-like operating systems. Near the end, however, there is a misstatement concerning the “sticky bit”. This bit actually has a very important, though obscure, use on Linux systems.

The sticky bit got its name on early Unix systems in the days before demand-paged virtual memory. If the sticky bit of an executable file was set, after the program exited a copy of its text segment was saved in the system's swap area, i.e., it would “stick around” for the next use. This feature was used to make frequently-run programs load a little bit faster. This meaning of the sticky bit is no longer particularly relevant.

Although it is not a part of the POSIX specification, recent System V and Berkeley Unix systems defined a new meaning for the sticky bit. If a directory's sticky bit is set, a file in the directory may be deleted only by the file's owner, by the directory's owner, or by root. This provides an additional measure of security for directories such as /tmp. Linux, of course, supports this useful feature. For example, on my system:

$ ls -ld /tmp
drwxrwxrwt  3 root   root   1024 Jan  1 09:49 /tmp
$ ls -l /tmp
-rw-------  1 roman  users     0 Jan  1 09:49 bar
-rw-------  1 root   root      0 Jan  1 09:47 foo
$ rm /tmp/bar
$ rm /tmp/foo
rm: /tmp/foo: Operation not permitted

Without the sticky bit, I would have been able to remove root's file from /tmp.

—Bill Roman roman@songdog.eskimo.com


Mea Culpa. Thank you for pointing out that mistake. It should never have passed through editing.

Things have changed

I read your article on LISP-Stat last August with much interest, and have just got around to trying it out. One inconsistency: the article claims that the “dld” library is essential. This is not true; if you build Lisp-Stat from scratch, it will use the now-standard “dlopen” method for dynamic loading (based on the ld.so library) if it is present. In fact, “dld” no longer seems to work with current “a.out” style static libraries, let alone ELF libraries.

I compiled the thing for ELF using gcc 2.7.0 and everything worked just great. The compile time is rather long (about an hour on a 486-33 with 20M memory), especially since a lot of the code is in LISP. All of the book examples worked perfectly. A marvellous way to review long-forgotten stats material.

You are doing an excellent job at presenting intriguing applications for Linux. Please keep up the great work!

—Rod Hallsworth rhallsw@synapse.net

Well, yes...

When the article was written, dld was required. At that time, ELF was still somewhat experimental and since we didn't know when it would be considered generally stable, we chose not to base articles on the assumption that it would become stable between the time the article was written and read. We have since started recommending that people switch to ELF when it is reasonably possible for them to do so, since it is now considered stable, and since the time will come (and obviously already is, to some extent) when applications are only available in ELF. Thanks for pointing out that it builds without a problem with ELF.

Picky Python

I found the Python examples largely worthless because of errors. Line 6 of the program listed on page 21 should read:

uid = `posix.getuid()`

Notice the (`) rather than (').

The largest problem was the format of the StackingThings program listed on page 23. Python is VERY sensitive to indentation. The attempt to format the program to fit the column “broke it real bad”.

Prior remarks aside, I found the Python article enjoyable and I am very pleased with your publication. Keep up the good work.

—Joe Kirby kirby@utk.edu

One and One

The “backticks” are really opening single quote characters in the courier font, which is suboptimal, but for which we are hard pressed to find a better replacement. If you look very, very carefully, you can see that the “backticks” are wider at the bottom than the top, and the “ticks” are wider at the top than the bottom. We agree that you shouldn't have to look closely to see the difference, and we are working on a solution.

Our production team did indeed break the indentation in the StackingThings example, and we apologize. The production team at LJ usually does a very good job making things fit, but this time there were some significant slips...

The correct version of the StackingThings example can be retreived from our WWW server at www.ssc.com/lj/issue21/index.html.

LJ Archive