Skip to content

Latest commit

 

History

History
174 lines (155 loc) · 6.34 KB

MacosVersions.md

File metadata and controls

174 lines (155 loc) · 6.34 KB

Macos Versions

This doc lists the different versions of macos released (and still supported and tested by libproc-rs) along with the corresponding versions of Darwin and `XNU used in each.

It also lists the public (via libproc.h header file) functions provided by libproc in each version, and shows in what version new functions were added.

What is XNU

XNU kernel is part of the Darwin operating system for use in macOS and iOS operating systems.

Here you can find the XNU version tags that apple has tagged in the GH project

What is Darwin

Darwin is the core Unix operating system of macOS (previously OS X and Mac OS X), iOS, watchOS, tvOS, iPadOS, visionOS, and bridgeOS. It previously existed as an independent open-source operating system, first released by Apple Inc. in 2000. It is composed of code derived from NeXTSTEP, FreeBSD,[3] other BSD operating systems,[6] Mach, and other free software projects' code, as well as code developed by Apple.

Mapping of macos versions to xnu versions

macos 14

  • 14.0 -> xnu-10002.1.13
  • 14.1 -> xnu-10002.41.9
  • 14.1.1 -> xnu-10002.41.9
  • 14.1.2 -> xnu-10002.41.9
  • 14.2 -> xnu-10002.61.3
  • 14.2.1 -> xnu-10002.61.3
  • 14.3 -> xnu-10002.81.5
  • 14.3.1 -> xnu-10002.81.5
  • 14.4 -> xnu-10063.101.15

macos 13

  • 13.0 -> xnu-8792.41.9
  • 13.1 -> xnu-8792.61.2
  • 13.2 -> xnu-8792.81.2
    • Added
      • proc_terminate_all_rsr (NOTE: Not implemented by libproc-rs)
  • 13.2.1 -> xnu-8792.81.3
  • 13.3 -> xnu-8796.101.5
  • 13.4 -> xnu-8796.121.2
  • 13.4.1 -> xnu-8796.121.3
  • 13.5 -> xnu-8796.141.3
  • 13.6 -> xnu-8796.141.3.700.8
  • 13.6.1 -> xnu-8796.141.3.701.17
  • 13.6.2 -> xnu-8796.141.3.701.17
  • 13.6.3 -> xnu-8796.141.3.702.9
  • 13.6.4 -> xnu-8796.141.3.703.2
  • 13.6.5 -> xnu-8796.141.3.704.6

macos 12

2021 - Darwin 21, macOS Monterey (Version 12.0)

  • 12.0 -> xnu-8019.30.61 (generic 8019)
    • Added
      • proc_pidpath_audittoken (NOTE: Not implemented by libproc-rs)
  • 12.0.1 -> xnu-8019.41.5
  • 12.1 -> xnu-8019.61.5
  • 12.2 -> xnu-8019.80.24
  • 12.3 -> xnu-8020.101.4
  • 12.3.1 -> xnu-8020.101.4
  • 12.4 -> xnu-8020.121.3
  • 12.5 -> xnu-8020.140.41
  • 12.5.1 -> xnu-8020.141.5
  • 12.6 -> xnu-8020.140.49
  • 12.6.1 -> xnu-8020.240.7
  • 12.6.2 -> xnu-8020.240.14
  • 12.6.3 -> xnu-8020.240.18
  • 12.6.4 -> xnu-8020.240.18.700.8
  • 12.6.6 -> xnu-8020.240.18.701.5
  • 12.6.7 -> xnu-8020.240.18.701.6
  • 12.6.8 -> xnu-8020.240.18.702.13
  • 12.7 -> xnu-8020.240.18.703.5
  • 12.7.1 -> xnu-8020.240.18.704.15
  • 12.7.2 -> xnu-8020.240.18.705.10
  • 12.7.3 -> xnu-8020.240.18.706.2
  • 12.7.4 -> xnu-8020.240.18.707.4

macos 11

2020 - Darwin 20, macOS Big Sur (Version 11.0)

  • 11.0 -> xnu-7195.41.8
  • 11.0.1 -> xnu-7195.50.7
  • 11.1 -> xnu-7195.60.75
  • 11.2 -> xnu-7195.81.3
    • Added
      • proc_set_no_smt (NO_SMT means that on an SMT CPU, this thread must be scheduled alone, with the paired CPU idle. Set NO_SMT on the current proc (all existing and future threads). This attribute is inherited on fork and exec. (NOTE: Not implemented by libproc-rs)
      • proc_setthread_no_smt (Set NO_SMT on the current thread) (NOTE: Not implemented by libproc-rs)
      • proc_set_csm (CPU Security Mitigation APIs - Set CPU security mitigation on the current proc (all existing and future threads). This attribute is inherited on fork and exec) (NOTE: Not implemented by libproc-rs)
      • `proc_setthread_csm (Set CPU security mitigation on the current thread) (NOTE: Not implemented by libproc-rs)
  • 11.3 -> xnu-7195.101.1
  • 11.3.1 -> xnu-7195.101.2
  • 11.4 -> xnu-7195.121.3
  • 11.5 -> xnu-7195.141.2
  • 11.6 -> xnu-7195.141.6
  • 11.6.1 -> xnu-7195.141.8
  • 11.6.2 -> xnu-7195.141.14
  • 11.6.3 -> xnu-7195.141.19
  • 11.6.5 -> xnu-7195.141.26
  • 11.6.6 -> xnu-7195.141.29
  • 11.6.8 -> xnu-7195.141.32
  • 11.7 -> xnu-7195.141.39
  • 11.7.1 -> xnu-7195.141.42
  • 11.7.2 -> xnu-7195.141.46
  • 11.7.3 -> xnu-7195.141.49
  • 11.7.5 -> xnu-7195.141.49.700.6
  • 11.7.7 -> xnu-7195.141.49.701.3
  • 11.7.8 -> xnu-7195.141.49.701.4
  • 11.7.9 -> xnu-7195.141.49.702.12

[!NOTE] Versions below here (prior to macOS 11) are not supported in GitHub Actions and hence are not tested as part of libproc-rs CI process.

macos 10.15

2019 - Darwin 19, macOS Catalina (Version 10.15)

10.15.1 -> xnu-6153.41.3 (closest 6153.11.26) 10.15.2 -> xnu-6153.61.1 10.15.3 ->xnu-6153.81.5 10.15.4 -> xnu-6153.101.6 10.15.5 -> xnu-6153.121.1 10.15.6 -> xnu-6153.141.1 10.15.7 -> xnu-6153.141.2

macos 10.14

2018 - Darwin 18, macOS Mojave (Version 10.14)

  • 10.14.1 -> xnu-4903.221.2
    • No additions, as xnu-4570.71.2 below
  • 10.14.2 -> xnu-4903.231.4
    • No additions, as xnu-4570.71.2 below
  • 10.14.3 -> xnu-4903.241.1
    • No additions, as xnu-4570.71.2 below
  • 10.14.4 -> xnu-4903.251.3
  • 10.14.5 -> xnu-4903.261.4
  • 10.14.6 -> xnu-4903.270.47
    • No additions, as xnu-4570.71.2 below

macos 10.13

2017 - Darwin 17, macOS High Sierra (Version 10.13)

10.13.6 -> xnu-4570.71.46 - xnu-4570.71.82.8 (approx xnu-4570.71.2)

Methods inherited from previous versions of XNU, Darwin and macOS that are present in 10.13.6:

  • proc_listpidspath
  • proc_listpids
  • proc_listallpids
  • proc_listpgrppids
  • proc_listchildpids
  • proc_pidinfo
  • proc_pidfdinfo
  • proc_pidfileportinfo
  • proc_name
  • proc_regionfilename
  • proc_kmsgbuf
  • proc_pidpath
  • proc_libversion
  • proc_pid_rusage
  • proc_setpcontrol
  • proc_track_dirty
  • proc_set_dirty
  • proc_get_dirty
  • proc_clear_dirty
  • proc_terminate
  • proc_udata_info

Reference docs used