Subject: Re: What is difference between SIGSEGV and SIGBUS
To: Michael L. VanLoon -- HeadCandy.com <firstname.lastname@example.org>
From: Ken Nakata <email@example.com>
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
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?).