When Research In Motion unveiled its BlackBerry Playbook tablet on Monday, including the new QNX-based operating system it runs, I already speculated that it would probably make its way onto RIM's smartphones as well. RIM has now confirmed this suspicion.

If you write POSIX code on Symbian, you'll notice that it has no equivalent of fork(). This call on UNIX systems is a holdover from very old minicomputer architectures that didn't have protected memory. On a context switch, they would write the current process out and load another one in. When you created a new process, you got a copy of the old one for free. On modern UNIX systems, a huge amount of effort is made with copy-on-write hacks, to pretend that this is still the case. This history doesn't exist with Symbian, so it has no fork() analog. To create a new process, you specify a program binary and get a completely new process, not a copy of the old one.

Wow, this kernel is much more complex on the inside than I thought. It seems that when designing it, on the simple code/cleanness compromise, they went fully on the "clean" extreme

I especially noticed the following passing about fork():

If you write POSIX code on Symbian, you'll notice that it has no equivalent of fork(). This call on UNIX systems is a holdover from very old minicomputer architectures that didn't have protected memory. On a context switch, they would write the current process out and load another one in. When you created a new process, you got a copy of the old one for free. On modern UNIX systems, a huge amount of effort is made with copy-on-write hacks, to pretend that this is still the case. This history doesn't exist with Symbian, so it has no fork() analog. To create a new process, you specify a program binary and get a completely new process, not a copy of the old one.

That's possible, especially considering that UNIX and POSIX were made on the days of minicomputers, and designed around criteria among which several don't apply anymore to personal computers.

In my opinion, considering UNIX as the most perfect OS design ever is a bit flawed. It was good on its days, and it received a lot of developer love. Many people still work hard on it. But at the core, is it the best design for modern desktop and mobile computers ? In my opinion no, we only keep it because making a new OS model is not an economically viable option nowadays.