Designing and implementing a truly secure program is actually a difficult task on Linux. The difficulty is that a truly secure program must respond appropriately to all possible inputs and environments controlled by a potentially hostile user. This is not a problem unique to Linux; other general-purpose operating systems (such as Unix and Windows NT) present developers with similar challenges. Developers of secure programs must deeply understand their platform, seek and use guidelines (such as these), and then use assurance processes (such as peer review) to reduce their programs' vulnerabilities.