Re: XP vs Mac OS X



Nico Coesel wrote:
Bob Monsen <rcsurname@xxxxxxxxxxx> wrote:


Nico Coesel wrote:

Jon Yaeger <jono_1@xxxxxxxxxxxxx> wrote:



I believe that people who are enamored of XP really haven't had an
opportunity to do much actual work on different platforms.  Once they have,
they'll realize quickly that XP is mediocre at best.

For example, compared to OS X:


Wasn't it the Macintosh computer which still didn't had an MMU* when
all other proper computers did? Macintosh is still way behind. OS X is
just an attempt to keep up with the big boys.

* An MMU allows for protected mode which makes each application run
within its own memory area. If one application crashes, the OS can
take it down gracefully.


This was true of the old OS 6. In os 7 (late 80s, early 90s), they implemented a screwy form of VM, which ran the entire OS, and everything in it as a single flat process space. The paging was simply to simulate having more memory. There was no process protection, even for the system data structures. The 68k macs had an MMU since the original Mac II (1987), but didn't make use of it until then.


However, those were the dark ages. These days, OS X runs on mach, which is a microkernel. Thus, it's far more likely to be secure than linux or other unix macrokernels. It uses the BSD os utilities and programmer API, and also supports an object oriented shell which one can add code


Aha, so a microkernel must prevent the user from doing anything...
Smart choice because the biggest security risc is not the OS, but the
user.


Well, you are right about that, but with regards to root attacks, the smaller the kernel, the less likely it is for kernel bugs to allow attacker code to run. That is the most likely means of attack for a network worm, for example, or a file system exploit: get the kernel to run the attacker's code somehow.


Tricking the user into clicking the wrong button, or going to a phishing website is much easier than that, of course.


to dynamically (it's using messaging, like object pascal or smalltalk, rather than static binding like C++. It is programmed in objective C).


Messaging is way... way slower than calling functions directly.
Besides, you don't have to use static binding. See loading libraries
at runtime, Corba or DCOM.
BTW, I can't see why objective C should make things better. Object
oriented programming is a way to design software. Not a guarantee for
error free or better software.


The point is that objective C has the messaging built in, ala smalltalk. In C++, methods are implemented using function pointers (or simple function calls). There is no explicit runtime. This makes it faster, but prevents you from doing the kinds of things you used to be able to do with smalltalk, like take a random object, implement a 'less-than' method, and then use generic sort routines to order lists of them. With C++, the object would need to be compiled an an ancestor of a 'sortable object' thingy.


The upshot is that you can dynamically change the behavior of existing objects without recompiling them, simply by adding methods.

I'm not saying this is better or worse, I'm just describing it.

---
Regards,
 Bob Monsen

.


Quantcast