This gives programmers an environment similar to a desktop operating system like Linux or Microsoft Windows , and is therefore very good for development ; However requires more hardware resources , more expensive , and can be less reliable ; because of the complexity of these kernels . This gives programmers an environment similar to a desktop operating system like Linux or Microsoft Windows , and is therefore very productive for development ; on the downside , it requires considerably more hardware resources , is often more expensive , and because of the complexity of these kernels can be less predictable and reliable .