Навеяно обсуждением.
Вопросы теоретико-исторические:
1. Почему реализация динамического линковщика в GNU/Linux не проверяет бит исполнимости на файлах разделяемых библиотек? Какие есть теоретические, практические, исторические основания для этого?
2. В каких системах такая проверка была и есть ли она в каких-то в настоящее время?
Вопрос практический:
Как запретить запускаемому процессу исполнять любой машинный код, кроме его собственного бинарника и загруженных на этапе динамической линковки библиотек? Есть какие-нибудь механизмы в подсистемах типа SELinux и т.п.?