По поводу написания безопасного софта.
Думаю, что многие проблемы безопасности и уязвимости возникают из-за того, что *машинные инструкции хранятся в одной памяти с обрабатываемыми данными*.
Из-за этого специально сформированные входные данные, переданные компьютерной программе, могут попасть в исполняемую область памяти, и быть интерпретированы как машинные инструкции.