总线错误

在计算机领域，总线错误（bus error）是一种硬件，为通知操作系统一个进程正尝试访问CPU无法访问的物理地址，即一个无效的位址匯流排地址，它由此得名。在现代的大多数架构中，这比記憶體區段錯誤（段错误）更罕见，而那主要由于内存访问冲突所造成：即逻辑地址或权限的问题。

在POSIX兼容平台上，总线错误通常导致发送SIGBUS信号到导致错误的进程。SIGBUS也可能因计算机检测到的任何常规设备故障引发。总线错误很少代表硬件存在物理损坏，而通常是因程序源代码中的程序错误引起。总线错误也可能因其他某些分页错误引发，见下文。

 原因 
总线错误有至少三种主要原因：

不存在的地址
软件令CPU读写特定的物理内存地址时，CPU会将这个物理内存地址填入地址总线，并等待所有其他连接着CPU的硬件来认领并响应这个请求。当没有任何硬件响应CPU时，CPU会触发一个异常，表示整个计算机系统都无法识别上述请求的物理内存地址。需要注意的是，这里仅涉及到物理内存地址。如果访问一个未定义的虚拟内存地址，一般会产生一个段错误而不是总线错误，尽管对于MMU与CPU分离的计算机来说，CPU无法区分这两种情况。

未对齐的访问
分页错误

不存在段（x86）
x86上存在一种较旧的称为x86記憶體區段的内存管理机制。

如果应用程序使用不存在段的选择器加载段寄存器（在POSIX兼容的操作系统下只能使用汇编语言完成），则会生成异常。

 参考资料 

Category:计算机总线
Category:计算机错误
Category:記憶體管理