USA India
Home Articles UserTV Press Releases Dictionary Books Education Careers B-Channels Resources Forums Blogs Classifieds
Monday 1 Dec, 2008 Register Login
Archives
Articles By Date
Articles By Category
 
 
 Archives >> Details
OS X III: finally, a first-class OS
Get ready for Classic, Carbon, Cocoa, and Java.
Posted by : Dennis Sellers

This is the third of three columns looking at Mac OS X, the "next-generation operating system" from Apple that's due in early 2001. In the previous two columns, we've looked at the user interface and the powerful new features the OS will offer. This time around we're looking at the engine of X, as well as the reasons why it has the potential to spawn new and powerful applications.

Darwin the Uber kernel

Mac OS X's engine--or core, if you prefer--is called Darwin, an aptly chosen moniker. Darwin is a modern kernel that offers, among other things, protected memory, pre-emptive multitasking, a Mach microkernel, and lots of power features previously only available to Unix users. (A kernel is a program that manages all or most of the operating-system services necessary to control a computer, such as task and file management, device input and output, and memory allocation. A microkernel is the program that manages a small but vital subset of the operating services, such as memory and synchronization.)

Apple has also posted the underlying programming source code of Darwin on its Web site. If developers submit to Apple's license agreement, they can download the source code from the Darwin Web site, change it, and include it in their own products without paying royalties or licensing fees.

However, developers must make their source-code modifications publicly available, and Apple can incorporate any changes into future versions of Mac OS X. By working with the open source community, Apple hopes to use licensee's tweaks and suggestions to enhance the feature set, performance, and quality of X products.

Another aspect of Mac OS X that should excite developers is its three principal programming environments: Carbon, Cocoa, and Java.

Mutating Carbon units

Carbon is an adaptation of the Mac OS 9 application programming interfaces (APIs) and libraries for Mac OS X. According to Apple, Carbon keeps 70 percent of the functions in current Mac OS APIs and dumps the 30 percent that are too outdated to be part of a modern operating system. To be more precise, Carbon keeps about 70 percent of the total functions and 95 percent of the functions used by typical applications. Carbon also includes additional APIs and services specifically developed for Mac OS X.

Programs written using the Carbon APIs can also be deployed on Mac OS 8 and 9, though they won't have the nifty new features of Mac OS X, such as protected memory, multithreading, and preemptive multitasking.

OpenStep morphs into Cocoa beans

While Carbon is the means by which most Mac developers will get their apps up to speed for Mac OS X, Cocoa is recommended by Apple for developers with new ideas who are creating applications for the future. The application environment is advanced, offers great reusability, and provides more rapid development, says Apple.

Cocoa is a collection of advanced, object-oriented APIs for developing applications written in Java and C++. It's based on two object-oriented frameworks: Foundation and the Apple Kit. These frameworks offer both Java and C++ APIs (with most Java classes simply "bridging" to their C++ implementation).

But enough techno-speak. What it boils down to is this: Cocoa is the most advanced object-oriented technology on the market today. Developers can write applications up to 10 times faster in Cocoa, according to Apple, so if you're writing a new app, this is the programming environment for you.

Cocoa is based on the OpenStep operating-system technology of NeXT (the company that Steve Jobs formed after leaving Apple, but which Apple later purchased when Jobs returned to the fold). Cocoa is an extension to the original OpenStep APIs that were present in OpenStep 4. Cocoa is a third-generation set of APIs, although few changes were involved in the evolution of OpenStep to Cocoa.

The nifty thing about Cocoa is that developers can use it to write code in terms of "objects" that let them re-use up to 90 percent of their code for future work. And functions published in the operating system as a "service" can be accessed by other Cocoa applications. For instance, a grammar checker in a word processing application could be offered as a service and used by other programs.

By the way, Cocoa includes Java packages that let you develop a Cocoa application using Java as the development language. Apple says you can mix "within reason" the APIs from these packages and native Java APIs.

Java peaberries

The Java environment within OS X is for the development and deployment of 100 percent Pure Java and mixed-API Java applications and applets. Developers can create Java apps that are "portable." You can copy them to a complete, different hardware platform and operating system. As long as that system includes a compatible version of the Java virtual machine (VM), the app should run on it just fine. And a Java applet should run in any Internet browser with the proper capabilities.

Mac OS X will come with a full implementation of Java 2, Standard Edition. And it will be the only high volume OS that does so, according to Chris Bourdon, Apple's product marketing manager for Mac OS X. "We realize that Sun has done great things with Java on the embedded and server sides of things. Now we want to round things out by having Java as a desktop product," he says. "We're working very closely with Sun to make a great implementation of Java on Mac OS X."

Apple is also making it possible for Java developers to adopt the Aqua interface for their applications so that they'll look just like Carbon applications, for instance. And Apple is also becoming part of the Java Executive Steering Committee that drives Java forward. In that regard, the OS X/Java connection will affect almost all Mac users, because it will help bring a wider range of applications to Mac OS X. Bourdon says that higher-education customers--who often write programs for a variety of platforms--have been some of the most vocal Apple customers in clamoring for Java 2 support. Java support is also important to those who deal in a multiplatform environment and IT infrastructure. There's even an increasing interest in Java among the creative community, he adds.

Apple says that Mac OS X will let you copy or cut almost any piece of data and paste it into an application executing in another environment. And it allows dragging of most Finder objects--and their corresponding data--between most environments. In other words, Carbon, Cocoa, and Java will all interbreed and share information-and will do so transparently.

Classic will not be extinct

Finally, there's the Classic environment. This one isn't a programming environment, however. It's an emulator that lets you run applications that are compatible with Mac OS 9 in Mac OS X, even if they haven't been "Carbonized" (tweaked for X). Classic applications will also run transparently along with Carbon, Cocoa, and Java developed software-up to a point. Classic apps won't take advantage of protected memory, mutithreading, and other features of advanced operating systems.

The Classic environment runs Mac OS 9 in the background. What basically happens is that a copy of OS 9 is loaded alongside OS X. You can switch between the two just as you can switch between running applications. And if you're running lots of non-Carbonized, OS 9 apps, you can set up your Mac to run the Classic environment every time you start your Mac. When Classic support is enabled, an OS 9 logo is displayed in X's Dock (a utility that, among other things, shows you which programs are running), giving you access to shut down or restart the Classic emulator. Classic only supports Mac OS 9; if your programs aren't OS 9-compatible, well, they ain't gonna run in X. Programs running in the Classic environment can read and write to an OS X hard drive just fine--and vice versa.

In future columns, I'll test Apple's claims regarding OS X and report any discrepancies.

Dennis Sellers also write Mac News monthly for ComputerUser.

 
 
Archives by Date
 
 
 
 
 
Copyright © 1994-2008 ComputerUser, Inc., All Rights Reserved All marks are trademarks of ComputerUser Media.
Reproduction in whole or in part in any form or medium without express written permission of ComputerUser, Inc. is prohibited.
About us | Terms of use | Privacy Policy | Legal | Trademark/Copyright | Awards | Advertise | Writer guidelines | Sitemap Html Xml | Contact | FAQ's | Feedback  | Link to us

Here are the topics we cover computer certification computer careers computer training computer games consulting data recovery data security digital entertainment emerging technology gadget reviews handheld computers hardware reviews home automation home networks home office how-to advice internet linux local companies local news local profiles macintosh mp3 players network security online music online security open-source small-business technology soho software reviews technology books technology dictionary vpn web site reviews wi-fi windows wireless technology tech articles tech news press releases tech dictionary education resources career solutions create your personal blog upload your videos become a writer usergroups special interest group SIG 3com cipts adobe adobe certified expert apc ncpi apple achds acpt acsa actc avaya bea 8.1 certified administrator 8.1 certified architect 8.1 certified developer 9 certified administrator bicsi rcdd checkpoint ccmse ccsa ccsa ngx ccse ccse ng plus with ai ccse ngx cisco access routing and lan switching ccda ccdp ccie ccip ccna ccnp ccnp old ccsp ccvp crmam ip communications optical proctored exams for validating knowledge sales specialist storage networking vpn and security wireless lan citrix cca 3.0 cca 4.0 cca 4.5 cca xp ccea 3.0 ccea 4.0 ccea xp ccia ciw ciw associate ciw certified instructor master ciw admin master ciw designer master ciw enterprise developer security analyst comptia a+ network+ security+ server+ computer associates ca cusa cuse cwna cwna cwsp dell eccouncil cea cep certified ethical hacker chfi e-commerce architect emc emc specialist implemenation technology foundations enterasys ese eta exam express exin exin itil extreme networks ena ens filemaker f7cd f8cd fortinet fortigate foundry cne fujitsu fujitsu guidance software ence hdi css hda hdm hdsa hitachi hitachi certified professional hp ais apc app aps ase certified systems developer csa cse master ase huawei hcne hyperion hcp ibm advanced deployment professional advanced technical expert application developer business process analyst certified administrator certified advanced system administrator certified advanced technical expert certified associate developer certified enterprise developer certified solution designer certified specialist certified systems expert database administrator db2 deployment professional enterprise developer eserver certified specialist ibm on demand business solution advisor solution designer solutions developer solutions expert storage administrator system administator iisfa cifi intel isaca cisa isc cissp sscp iseb itil ism cpm juniper jncia jncis legato lcaa lcea lotus clp lpi lpic level 1 lpic level 2 lpic level 3 macromedia mcafee mcdata csnd microsoft crm mbs mcad .net mcdba mcdst mcitp mcp mcpd mcsa longhorn mcsa 2003 mcsa 2008 mcsd .net mcse mcse 2000 security mcse 2000 to mcse 2003 upgrade mcse 2003 mcse 2003 messaging mcse 2003 security mcse 2008 mcts microsoft business solutions microsoft partner competency mile2 cnsa network appliance nac-na nac-nie naca nace nacp network general sniffer certified professional nokia nokia security administrator nortel ncde ncds ncse ncss ncts novell5 cna 5 cne 6 cna 6 cne 6.5 cne cne upgrade omg ocup oracle 10g dba 10g oca 11i 8i dba 9i dba 9i internet application developer oca ocp8 to ocp8i dba upgrade exam pmi project management professional polycom pcve redhat rhce rhct sair sas institute sas scp saas scp snia snia certified architect snia certified professional snia certified systems engineer snia storage networking certification program administrator professional associate symantec scse scsp scta scts teradata tca v2r5 tcad v2r5 tcda v2r5 tcis v2r5 tcm v2r5 tcp v2r5 tia ccnt ctp tibco tcp trusecure ticsa veritas infraguard chamber of commerce vcp vmware certified professional webex linkedin facebook myspace Professional page layout, image editing, vector illustration, and print production Website design, development, prototyping, and blogging Creation of rich interactive content Industry-standard visual effects and motion graphics Video capture, editing, and production; DVD titling; and digital audio, Adobe Photoshop CS3 extended, Adobe illustrator CS3,Adobe indesign CS3,Adobe Acrobat 8 Professional, Adobe Flash CS3 Professional, Adobe Dreamweaver CS3,Adobe Contribute CS3,Adobe Fireworks CS3,Adobe After Effects CS3 Professional, Adobe Premiere Pro CS3,Adobe Soundbooth CS3,Adobe Encore CS3,Adobe OnLocation,Adobe Bridge CS3,Adobe Version Cue CS3,Adobe Device Central CS3,Adobe Stock Photos, Intel Pentium 4 (1.4GHz processor for DV; 3.4GHz processor for HDV), Intel Centrino, Intel Xeon, (dual 2.8GHz processors for HD), or Intel Core, Duo (or compatible) processor; SSE2-enabled processor required for AMD systems Microsoft Windows XP with Service Pack 2 or Microsoft Windows Vista Home Premium, Business, Ultimate, or Enterprise (certified for 32-bit editions) 1GB of RAM for DV; 2GB of RAM for HDV and HD; more RAM recommended when running multiple components 10GB of available hard-disk space (additional free space required during installation) Dedicated 7,200 RPM hard drive for DV and HDV editing; striped disk array storage (RAID 0) for HD; SCSI disk subsystem preferred Microsoft DirectX compatible sound card (multichannel ASIO-compatible sound card recommended),1,280x1,024 monitor resolution with 32-bit color adapter Blu-ray burner required for Blu-ray Disc creation OHCI compatible IEEE 1394 port for DV and HDV capture, export to tape, and transmit to DV device QuickTime 7.1.2 software required to use QuickTime features Broadband Internet connection required for Adobe Stock Photos* and other services

3PAR, Accellion, Acronis, Actional, Active Endpoints, ActiveGrid, activePDF, ActiveServers, ActiveState, Actuate, Adaptec, Agile Software, AGiLiENCE, Agilysys, Akorri, AlachiSoft, Alter Logic, Altor Networks, Altova, AMD, AMDAHL, Amentra, Amyuni, anacubis, Apani, APC, Appcelerator, AppSense, AppStream, Array Networks, Ascential, Astaro, Attune Systems, Autodesk, AutoVirt, Availl, Avanade, Azul Systems, Barracuda Networks, BEA Systems, B-hive, Black Duck Software, Blackbaud, Blade Network Technologies, Blue Coat, Blue Lane, BlueArc, BlueNote Networks, BluePheonix Solutions, BMC Software, Borland, Bristol Technology, Brix Networks, BroadVision, Brocade, Burton Group, Business Objects, CA, CalAmp, Cassatt, Cast Iron Systems, Catbird, Cayenne Technologies, Ceedo Technologies, Cenzic, Certeon, CiRBA, Cisco Systems, Cision, Citrix Systems, ClearApp, ClearCube Technology, CollabNet, Compass America, Composite Software, Compugen, Compuware, Configuresoft, Continuity Software, Coraid, Courion, Coyote Point Systems, Crescendo Networks, CSC, DataCore, DataSynapse, Dell, Desktone, Digipede Technologies, Double-Take Software, Ecora Software, EDS, eG Innovations, Egenera, Elastra Corporation, Electric Cloud, Embotics, EMC Corporation, Emulex, Endeavors Technology, Enigmatic Corporation, Enterprise Management Associates, Entuity, EqualLogic, Ericom Software, ESRI, EVault, eXludus Technologies, F5 Networks, FalconStor, FastScale Technology, Foedus, Force10 Networks, Fortisphere, Forum Systems, Fujitsu, GemStone Systems, Getronics, GlassHouse, Green Hills Software, Grid Dynamics, GridGain Systems, GT Software, Hitachi, HP, Hyper9, Hyperic, IBM, ICEsoft, IGEL Technology, Illumita, ILOG, IMEX Research, Information Builders, Ingres, InstallFree, Integrien, Intel, Intellium, International Computerware, iTKO LISA, JBoss, Juniper, KACE, Kidaro, LeftHand Networks, Leostream, Lifeboat Distribution, Liquid Computing Corporation, Liquid Technology, Lynux Works, Mainline, ManageIQ, Managed Methods, ManageSoft, Marathon Technologies, McAfee, Mellanox Technologies, Microsoft, Mid-Atlantic Computers, Mindbridge Software, Mindreef, MKS, MonoSphere, Motorola, MQSoftware, mySoftIT, NASTEL, Ncomputing, NEC, Neocleus, NeoPath Networks, Neoware, NetApp, Netegrity, Neterion, Netuitive, Neverfail, Nexaweb, NextAxiom, Nimbus, Nimsoft, Niyuta, NoMachine, Novell, ONStor, Opalis Software, Open Kernel Labs, OpenSpan, OPNET Technologies, Optaros, OpTier, Oracle, Pano Logic, Parallels, Parasoft, Perforce Software, PHD Technologies, Phoenix Technologies, Phurnace Software, Pillar Data Systems, PlateSpin/Novell, Progress Software, Prolifics, ProSync Technology, Provision Networks, QLogic, Quest Software, Racemi, Raritan, Raxco Software, Red Hat, Reflex Security, Resolution Enterprises, RingCube Technologies, Riverbed Technology, Rogue Wave Software, RSA Security, Sagnet Solutions, SanDisk Corporation, SAP, SAVVIS, ScaleMP, Scalent Systems, Seanodes, Secure Command, Secure Computing, Sentillion, Shavlik Technologies, ServInt Internet Services, Silpion IT Solutions, SIMtone, Skytap, Skyway Software, Software AG, Sonasoft, SourceGear, Splunk, StackSafe, SteelEye Technology, StillSecure, StoneFly, Stonesoft, Stoneware, StoreVault, StrikeIron, STT WebOS, Sun Microsystems, SunGard, Supermicro Computer, Surgient, SWsoft, Sybase, Symantec, Systar, TBD Networks, Tenfold, TheInfoPro, Thinstall, Third Brigade, TIBCO Software, Tidal Software, Tideway Systems, TOA Solutions, TRANGO Virtual Processors, Trend Micro, Tresys Technology, Trigence, Tripwire, Ulteo, Unisys, United Devices, VaST Systems, VDIworks, VeeAm Software, Verari Systems, Verio, VeriSign, Vicom Computer Services, VirtenSys, Virtera, Virtual Iron, VirtualLogix, Virtugo Software, Virtutech, VisionCore, Vizioncore, VKernel, VMLogix, vmSight, VMware, Vordel, vThere-Sentillion, Vyatta, WaveMaker, Web Age Solutions, WSO2, Wyse Technology, XDS, XenoCode, Xiotech, xkoto, Xsigo Systems, Zenith Optemedia, Zeus Technology.