2 Answers
2

It's been in the kernel since 2004, so one way or another they all do. When you are looking around, avoid old articles which focus on RedHat as they apparently had a patch for this about a year earlier.

This feature is generically known as the NX bit. It is a flag on a memory page in the MMU that marks the page as not being executable: if some code jumps into that page, a segmentation fault (in unix terms) occurs.

A common hygiene measure where supported is to mark writable pages as read-only, because code is usually not modifiable. This cannot be done in all situations, for example it prevents just-in-time compilation. The benefit is to prevent certain bugs from that cause the program to jump into a memory area that contains data, which is especially bad when that data is supplied by the user as it allows the user to inject code and exploit the program. Thus the NX bit causes some exploits against security vulnerabilities to stop working. However, as a security measure, it is not a panacea: there are techniques to work around it, such as return-oriented programming. The main usefulness of NX is to more easily detect bugs.

Note that the article you cite is somewhat misleading. NX prevents many pre-existing exploits from working, but exploits and viruses have adapted to the times. Another error in that article is that NX is not a feature of the BIOS, it is a feature of the CPU (which some BIOSes can disable; I don't know of any benefit of disabling it).

The Wikipedia page has a detailed rundown on which unix variants provide some support for NX. Applications can control whether a page is executable by calling the mmap system call.