Subject: Re: What is difference between SIGSEGV and SIGBUS
To: Michael L. VanLoon -- HeadCandy.com <michaelv@headcandy.com>
From: Ken Nakata <kenn@romulus.rutgers.edu>
List: current-users
Date: 08/05/1995 12:58:29
> >> BUS = Trying to do something daft on a bus, e.g. trying to access an
> >> odd location when the bus has no notion of an 8 bit access.
> 
> >or a memory-bus timeout due to accessing a location with no storage
> >behind it.
> 
> There is no such thing.  Memory accesses require exactly the same
> amount of time whether there is RAM there or not.  If there is nothing
> there, they simply return some random digital representation of the
> electrical signals floating around the bus when the memory access is
> attempted.  Thus, this couldn't cause a bus error.

I think it depends on the platform you are talking about.  On
ISA/EISA/PCI based intel PCs, no, there's not such thing, but on VME
systems, there can be.  VME bus is a normally-not-ready bus on which
bus master waits until someone returns ack or berr.  So there is
usually a bus time-out circuit built in a VME board that can be a bus
master, in order to terminate bus cycles to uninhabited space.  Well,
it wouldn't be a "memory-bus timeout" if the CPU accesses through VME
bus, though...

However, it seems impossible for a *user* process to cause such a bus
cycle since OS must have taken care of user address -> physical
address mapping (er... weird mmap'able device?).

kenn