Here is how some factors progressed over time in OS X and iOS, they should not surprise anyone, (basically stuff was gradually added, sometimes removed/replaced) the tables below are generated from clean installs:
In the graph below all system services and extensions are counted, i think this graph does a good job conveying how the complexity of the OS increased while effort to simplify it was also expended
The graph below is generated from /System/Library/Frameworks /System/Library/PrivateFrameworks and /usr/include/objc/
Next graphs loosely reflect the evolution of the core unix layer of the OS (only the binaries under /usr/ are counted)
In the first graph below man3 stands for the third (library calls) man section, all other sections are counted as rest, in the second graph only the Aqua/GUI apps are counted, do not read too much into the number of 32 bit/carbon apps in 10.8, most of them are applescript stubs, also note that PPC and 32 bit apps are not PPC/32bit only, they are universal apps.
Here are more graphics i made to keep track and visualize what specific OS X and iOS versions support specific technologies, what specific frameworks exists and how they are shared between the oses
The next graph features some technologies as follows : OpenCL , blocks, GCD, sandboxing, iAd, GameCenter, ARC, iCloud, Auto Layout, ASLR, MapKit, SpriteKit, iBeacon, Inter-App Audio, MFi Controllers, Storyboards, SceneKit, Swift, Handoff, Extensions, CloudKit, HealthKit, HomeKit, PhotoKit and Metal .
The next graph is outdated as of 10.7/5.0.
The lists of frameworks below is not exhaustive, i only included the more significant ones
10.4 afpfs cddafs cd9660 ftp hfs msdos nfs ntfs smbfs ufs udf webdav AppleShare URLMount/NetFSPlugins 10.5 ++zfs 10.6 ++exfat ++nofs --zfs 10.7 ++acfs --nofs --ufs 10.8 10.9 10.10 10.11 10.12 10.13 ++apfs
Public and private framework numbers increased steadily over time, they paint an picture of the changes in each OS revision.
OS X PUBLIC FRAMEWORK CHANGES
10.4 AGL.framework CoreFoundation.framework IOBluetooth.framework QTKit.framework Accelerate.framework CoreMIDI.framework IOBluetoothUI.framework Quartz.framework AddressBook.framework CoreMIDIServer.framework IOKit.framework QuartzCore.framework AppKit.framework CoreServices.framework InstallerPlugins.framework QuickTime.framework AppKitScripting.framework CoreVideo.framework InstantMessage.framework ScreenSaver.framework AppleScriptKit.framework DVComponentGlue.framework JavaEmbedding.framework Scripting.framework AppleShareClient.framework DVDPlayback.framework JavaScriptCore.framework Security.framework AppleShareClientCore.framework DirectoryService.framework JavaVM.framework SecurityFoundation.framework AppleTalk.framework DiscRecording.framework Kerberos.framework SecurityInterface.framework ApplicationServices.framework DiscRecordingUI.framework Kernel.framework SyncServices.framework AudioToolbox.framework DiskArbitration.framework LDAP.framework System.framework AudioUnit.framework DrawSprocket.framework Message.framework SystemConfiguration.framework Automator.framework ExceptionHandling.framework OSAKit.framework TWAIN.framework Carbon.framework FWAUserLib.framework OpenAL.framework Tcl.framework Cocoa.framework ForceFeedback.framework OpenGL.framework Tk.framework CoreAudio.framework Foundation.framework PCSC.framework WebKit.framework CoreAudioKit.framework GLUT.framework PreferencePanes.framework XgridFoundation.framework CoreData.framework ICADevices.framework Python.framework vecLib.framework 10.5 -- none ++ CalendarStore.framework Collaboration.framework InputMethodKit.framework JavaFrameEmbedding.framework LatentSemanticMapping.framework PubSub.framework QuickLook.framework Ruby.framework RubyCocoa.framework ScriptingBridge.framework 10.6 -- AppleShareClient.framework ++ AppleScriptObjC.framework CoreLocation.framework (was in iOS since 2.0) CoreWLAN.framework IMCore.framework (headers for it were not added to the 10.6 SDK) IOSurface.framework ImageCaptureCore.framework NetFS.framework OpenCL.framework OpenDirectory.framework (is now both a private and public framework since 10.5) ServerNotification.framework ServiceManagement.framework VideoDecodeAcceleration.framework 10.7 -- JavaEmbedding.framework ++ AVFoundation.framework (was in iOS since 2.0) CoreMedia.framework (was a private framework in 10.6 and in iOS since 4.0) CoreMediaIO.framework GSS.framework IMServicePlugIn.framework StoreKit.framework (was in iOS since 3.0) +- IMCore.framework (is now both a private and public framework since 10.6) 10.8 -- XgridFoundation.framework ++ Accounts.framework (was in iOS since 5.0) AudioVideoBridging.framework CoreWiFi.framework EventKit.framework (was in iOS since 4.0) GLKit.framework (was in iOS since 5.0) GameKit.framework (was in iOS since 3.0) MediaToolbox.framework (was a private framework since 10.5) SceneKit.framework (was a private framework since 10.7) Social.framework VideoToolbox.framework (was a private framework since 10.5) +- CFNetwork.framework (was inside CoreServices.framework) CoreGraphics.framework (was inside ApplicationServices.framework) CoreText.framework (was inside ApplicationServices.framework) ImageIO.framework (was inside ApplicationServices.framework) 10.9 -- AppleTalk.framework ServerNotification.framework ++ AVKit.framework GameController.framework MapKit.framework MediaAccessibility.framework MediaLibrary.framework SpriteKit.framework 10.10 -- AppleShareClientCore.framework RubyCocoa.framework ++ CloudKit.framework CoreAuthentication.framework CoreBluetooth.framework CoreTelephony.framework (was in iOS since 2.0) CryptoTokenKit.framework FinderSync.framework Hypervisor.framework LocalAuthentication.framework MultipeerConnectivity.framework NetworkExtension.framework NotificationCenter.framework vmnet.frameworkOS X UMBRELLA FRAMEWORK CHANGES
10.4 Accelerate.framework (vImage.framework vecLib.framework) ApplicationServices.framework (AE.framework CoreText.framework LangAnalysis.framework SpeechSynthesis.framework ATS.framework FindByContent.framework LaunchServices.framework ColorSync.framework HIServices.framework PrintCore.framework CoreGraphics.framework ImageIO.framework QD.framework) Automator.framework (MediaBrowser.framework) Carbon.framework (CarbonSound.framework HTMLRendering.framework Ink.framework Print.framework CommonPanels.framework Help.framework NavigationServices.framework SecurityHI.framework HIToolbox.framework ImageCapture.framework OpenScripting.framework SpeechRecognition.framework) CoreServices.framework (CFNetwork.framework Metadata.framework SearchKit.framework CarbonCore.framework OSServices.framework WebServicesCore.framework) DiscRecording.framework (DiscRecordingContent.framework DiscRecordingEngine.framework) Quartz.framework (PDFKit.framework QuartzComposer.framework) WebKit.framework (JavaScriptCore.framework WebCore.framework) 10.5 -- none ++ InstantMessage.framework JavaVM.framework +- ApplicationServices.framework (--AE.framework --FindByContent.framework --LaunchServices.framework) CoreServices.framework (++AE.framework --WebServicesCore.framework ++LaunchServices.framework) DiscRecording.framework (not a umbrella framework anymore) Quartz.framework (++ImageKit.framework ++QuartzFilters.framework) WebKit.framework (--JavaScriptCore.framework) 10.6 -- none ++ OpenCL.framework (added a empty Frameworks subdirectory) OpenDirectory.framework (CFOpenDirectory.framework) IMCore.framework (IMDaemonCore.framework IMSecurityUtils.framework XMPPCore.framework IMFoundation.framework IMUtils.framework) +- Quartz.framework (++QuickLookUI.framework) 10.7 -- none ++ IMServicePlugIn.framework (IMServicePlugInSupport.framework) +- OpenCL.framework (removed empty Frameworks subdirectory) IMCore.framework (++IMDAppleServices.framework ++IMTranscoding.framework ++IMDPersistence.framework ++IMTransferServices.framework --IMSecurityUtils.framework --XMPPCore.framework --IMUtils.framework) IOBluetooth.framework (was made a umbrella framework with CoreBluetooth.framework) QuartzCore.framework (was made a umbrella framework with CoreImage.framework and ScalableUserInterface.framework) 10.8 -- none ++ none +- CoreServices.framework (--CFNetwork.framework) ApplicationServices.framework (--CoreText.framework --CoreGraphics.framework --ImageIO.framework) IMCore.framework (not a umbrella framework anymore, it's components are now private frameworks) 10.9 -- none ++ none 10.10 -- none ++ noneiOS PUBLIC FRAMEWORK CHANGES
2.0 AVFoundation.framework CFNetwork.framework CoreGraphics.framework QuartzCore.framework OpenGLES.framework UIKit.framework AddressBook.framework CoreAudio.framework CoreLocation.framework IOKit.framework Security.framework AddressBookUI.framework AudioToolbox.framework CoreFoundation.framework Foundation.framework MediaPlayer.framework SystemConfiguration.framework OpenAL.framework 3.0 -- none ++ CoreData.framework (was in OS X since 10.4) ExternalAccessory.framework GameKit.framework MapKit.framework MessageUI.framework MobileCoreServices.framework StoreKit.framework 4.0 -- none ++ Accelerate.framework (was in OS X since 10.4) AssetsLibrary.framework AudioUnit.framework (was in OS X since 10.4) CoreMedia.framework (was private in OS X 10.6) CoreMotion.framework CorePDF.framework CoreTelephony.framework CoreText.framework (was in OS X under ApplicationServices since at least 10.4) CoreVideo.framework (was in OS X since 10.4) EventKit.framework EventKitUI.framework iAd.framework ImageIO.framework (was in OS X under ApplicationServices since at least 10.4) QuickLook.framework (was in OS X since 10.5) 5.0 -- CorePDF.framework (now a private framework) ++ Accounts.framework CoreBluetooth.framework (was in OS X under IOBluetooth since at least 10.7) CoreMIDI.framework (was in OS X since 10.0) CoreImage.framework (was in OS X under QuartzCore since at least 10.4) GLKit.framework GSS.framework (was in OS X since 10.7) NewsstandKit.framework Twitter.framework 6.0 -- none ++ MediaToolbox.framework (was in OS X since 10.8) PassKit.framework Social.framework (was in OS X since 10.8) VideoToolbox.framework (was in OS X since 10.8) 7.0 -- none ++ AdSupport.framework GameController.framework JavaScriptCore.framework (was a private framework since 2.0) MediaAccessibility.framework MultipeerConnectivity.framework SafariServices.framework SpriteKit.framework 8.0 -- none ++ AVKit.framework CloudKit.framework CoreAudioKit.framework CoreAuthentication.framework HealthKit.framework HomeKit.framework LocalAuthentication.framework Metal.framework NetworkExtension.framework NotificationCenter.framework Photos.framework (was a private framework since 7.0) PhotosUI.framework (was a private framework since 7.0) PushKit.framework SceneKit.framework (was a private framework since 7.0) WebKit.framework (was a private framework since 2.0)iOS UMBRELLA FRAMEWORK CHANGES
2.0 -- none ++ none 3.0 -- none ++ none 4.0 -- none ++ Accelerate.framework (vecLib.framework) 5.0 -- none ++ none ++ Accelerate.framework (vImage.framework) 6.0 -- none ++ none 7.0 -- none ++ GameKit.framework (GameCenterFoundation.framework) GameKit.framework (GameCenterUI.framework) GameKit.framework (LegacyGameKit.framework) 8.0 -- GameKit.framework (GameCenterFoundation.framework) GameKit.framework (GameCenterUI.framework) GameKit.framework (LegacyGameKit.framework) ++ none
++ means something was added, -- means something was removed, +- means something was changed
The umbrella frameworks are the ones that encompass multiple frameworks within a Frameworks subfolder, umbrella frameworks like QuartzCore gradually had it's components made into frameworks under it's umbrella then of which some eventually morphed into standalone frameworks.
Here are most of the files i used to compile the data, feel free to use them with attribution : Frameworks Functions Launchd Libraries Kernel Extensions Protocols Classes
Copyright 2012 Vlad Alexa. CoreAudio, Core Video, Core Image, Core Animation, iOS and OS X are trademarks of Apple Inc.