Subject: Re: signal(SIGSEGV, SIG_IGN) -> 100% CPU
To: Robert Elz <kre@munnari.OZ.AU>
From: Gandhi woulda smacked you <greywolf@starwolf.com>
List: tech-kern
Date: 06/14/1999 13:45:47
On Tue, 15 Jun 1999, Robert Elz wrote:

#     Date:        Sun, 13 Jun 1999 19:47:43 -0400 (EDT)
#     From:        woods@most.weird.com (Greg A. Woods)
#     Message-ID:  <m10tJyZ-000gAAC@most.weird.com>
# 
#   | Well, OK, I agree for the most part *but* there's one important
#   | distinction that is only recently being worked around:  Chapter 3
#   | interfaces can mostly be replaced at will with incompatible
#   | functionality in a program, but Chapter 2 interfaces cannot be replaced
#   | without jeopardizing the correct functioning of some standard library
#   | subroutines
# 
# Nonsense.   I doubt you'll have the slightest trouble in your average
# program if you replace ktrace(2) or chflags(2) or unmount(2), or semctl(2).
# On the other hand if you randomly replace printf(3), malloc(3), strcpy(3)
# (etc) with incompatible functionality, half the world is liable to break.

Talk about apples and oranges!  Try replacing, in the above
comparison, write, brk/sbrk or mmap.

# 
#   | From a documentation point of view I think the distinction is still
#   | important too
# 
# Why?   As long as the correct behaviour is observed, why would you care
# whether you are calling time(2), or a time(3) which calls either ftime(2)
# or gettimeofday(2), or something else?    About the only use I can see for
# being able to tell the difference is so you have a better hope of figuring
# out what is happening in a sys call trace - but even there, if you see it
# in the trace (today) then you know it was a sys call, it might all change
# tomorrow.

I don't know about anyone else, but if I'm going to be writing my own
library of stuff, chances are, unless it's a graphics library, I'll be
using system calls all over the place because context switches, to my
mind, aren't cheap.  I wrote my own block i/o library once bceause didn't
like the semantics in libc/stdio.

I will agree with Greg on this one -- the distinction is important.  But
then, I'm kind of an info-maniac.  I like to be able to see things
separated out and know what's what, especially within an operating system.


Besides, man(1) figures out which section it's in; if you don't care
which section it's in, let man  do its job :-)



# 
# kre
# 
# 


				--*greywolf;
--
NetBSD: Net Some Nines.