我正在回想我最近对编程的介绍,并记得编写了一个故意随机读取和写入内存地址的 C++ 程序。我这样做是为了看看会发生什么。
令我惊讶的是,在我的 Windows 98 PC 上,我的程序会产生一些非常奇怪的副作用。有时它会切换操作系统设置,或创建图形故障。通常情况下,它什么也不做,或者只是让整个系统崩溃。
后来我了解到这是因为 Windows 98 没有限制用户进程可以访问的内容。我可以读写其他进程甚至操作系统使用的 RAM。
据我了解,Windows NT 改变了这种情况(尽管我认为它需要一段时间才能正确)。现在,Windows 会阻止您在不属于您的进程的 RAM 中四处寻找。
我隐约记得后来在 Linux 系统上运行我的程序并没有得到几乎那么多有趣的结果。如果我理解正确,这至少部分是由于用户和内核空间的分离。
所以,我的问题是:
有没有一段时间 Linux 没有分离用户和内核空间?换句话说,我的恶意程序是否曾经对 Linux 系统造成类似的破坏?