x86 Solaris 10는 32비트 및 64비트 모드에서 no execute(NX)비트를 지원합니다. NX비트를 사용하면 다양한 메모리 시스템 호출에서 mmap() 함수와 같은 PROT_EXEC를 사용하지 않게 되어 보호 기능을 완전히 구현할 수 있습니다. 과거 x86에서는 매핑된 모든 메모리에 PROT_EXEC가 암시적으로 설정되었습니다. Solaris에서 NX비트가 지원되어 바이러스 보호가 향상되었습니다.
NX 지원 하드웨어에서 Solaris OS는 PROT_EXEC가 지정되지 않은 경우 기본적으로 NX비트를 사용합니다. 그러나 스택 세그먼트에서는 기본적으로 NX비트가 아닌 PROT_EXEC를 사용합니다. 스택 세그먼트의 기본 설정은 다음 중 한 가지를 수행하여 변경할 수 있습니다.
/etc/system에서 no_exec_userstack을 설정하면 모든 응용 프로그램 스택에 대해 no exec이 전역 설정됩니다.
개별 응용 프로그램을 /usr/lib/ld/map.noexstk 맵 파일과 연결합니다.
시스템 관리자는 eeprom 명령을 통해 enforce-prot-exec를 “off”로 설정하여 NX 비트 사용을 비활성화할 수 있습니다. 이 변수는 PROT_EXEC가 없는 레거시 응용 프로그램이 설치된 시스템을 위한 전이 해결 방법으로 제공되었습니다.