openbsd randomizes various behaviors of applications, making them less predictable and thus more difficult to attack. for example, pids are created and associated randomly to processes; the codice_5 system call uses random port numbers; files are created with random inode numbers; and ip datagrams have random identifiers. this approach also helps expose bugs in the kernel and in user space programs.