[TUHS] /proc - linux vs solaris

A. P. Garcia a.phillip.garcia at gmail.com
Tue Aug 5 11:26:09 AEST 2014


On Aug 4, 2014 6:56 PM, "Larry McVoy" <lm at mcvoy.com> wrote:
>
> Seem like even Roger liked it:
>
> https://lwn.net/lwn/1998/0226/sunproc.html

:-) There are a few different issues here. Linux exports a lot of
interesting info that Solaris doesn't. It's hard not to like that. Where
they put it, who cares. The unix filesystem hierarchy wasn't exactly
planned out by neat freaks.

> On Mon, Aug 04, 2014 at 03:23:25PM -0700, Larry McVoy wrote:
> > On Mon, Aug 04, 2014 at 05:24:39PM -0500, A. P. Garcia wrote:
> > > We in Solaris designed /proc as a tool for developers to build
innovative
> > > solutions, not an end-user interface. The Linux community believes
that
> > > 'cat /proc/self/maps' is the best user interface, while we believe
that
> > > pmap(1) is right answer. The reason for this is that mdb(1), truss(1),
> > > dtrace(1M) and a host of other tools all make use of this same
information.
> > > It would be a waste of time to take binary information in the kernel,
> > > convert it to text, and then have the userland components all write
their
> > > own (error prone) parsing routines to convert this information back
into a
> > > custom binary form. Plus, we can change the options and output format
of
> > > pmap without breaking other applications that depend on the contents
of
> > > /proc.
> >
> > I come from SunOS background and have had more than a few /proc
discussions
> > with Roger Faulkner (who I believed did the System V /proc at Bell
Labs?).
> >
> > I get the arguments above but I don't buy 'em.  linux really got /proc
> > right in terms of usefulness.

> Digging binary blobs out of the kernel
> > and translating them sucks.  I've done, I've written kmem drivers for
> > ps, I understand how it works.  I far prefer the pure ascii model that
> > Linux has.

Part of the argument was more or less that the binary model allows a richer
set of tools to be built on top of it, and that those tools provide a
better interface to the info. Does Solaris have a richer set of tools than
Linux in this regard? I think so, but I don't know how much of this is owed
to the difference between binary and text interfaces in /proc.

Last time I checked, Linix had no pcred(1), for example. top(1) doesn't
provide nearly as much info as prstat(1) -- for example, prstat -mL. Why
that is, I don't know. Plus, prstat is marginally less resource intensive.
Anything as sweet as (k)mdb in linux? Forget it. Maybe that's because Linus
was so resistant to having a debugger in the kernel for so long? DTrace?
Well, sort of -- a port of dtrace! But I'm really at an unfair disadvantage
here. *Why* Solaris has such better tools, you would know better than me. I
only know that it does. As for the second part, that writing the tools that
use the binary interface is unpleasant, again I have to defer to you. I've
never done that.

> > I also get that Linux turned /proc into /whatever/I/think/I/need/today
> > and that makes purists grit their teeth.  None the less, if you give
> > me a choice I'll take the linux way.  Want to see what files you have
> > open?
> >
> >       ls -l /proc/$$/fd

I think this would work in solaris, maybe linux too: pfiles $$

> > Etc.  Really easy to poke around and figure stuff out as needed and no
> > rats nest of header files to decode the structures.

Again, that's what the tools are for. If a tool doesn't give me the info I
need in Solaris, I guess I'm SOL. In Linux, *maybe* I'd have a chance of
finding it in /proc.  :-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20140804/2a6cf51a/attachment.html>


More information about the TUHS mailing list