Класс: Hardware::CPU Приватный
- Наследует:
- Object
- Object
- Hardware::CPU
- Определен в:
- hardware.rb,
extend/os/mac/hardware/cpu/hardware.rb
Обзор
Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого класса, поскольку он может быть удален или изменен без предупреждения.
Вспомогательный модуль для получения сведений о ЦП.
Краткое описание констант свернуть
- INTEL_32BIT_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
[:i386].freeze
- INTEL_64BIT_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
[:x86_64].freeze
- INTEL_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
T.let((INTEL_32BIT_ARCHS + INTEL_64BIT_ARCHS).freeze, T::Array[Symbol])
- PPC_32BIT_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
[:ppc, :ppc32, :ppc7400, :ppc7450, :ppc970].freeze
- PPC_64BIT_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
[:ppc64, :ppc64le, :ppc970].freeze
- PPC_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
T.let((PPC_32BIT_ARCHS + PPC_64BIT_ARCHS).freeze, T::Array[Symbol])
- ARM_64BIT_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
[:arm64, :aarch64].freeze
- ARM_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
ARM_64BIT_ARCHS- ALL_ARCHS =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
T.let([ *INTEL_ARCHS, *PPC_ARCHS, *ARM_ARCHS, ].freeze, T::Array[Symbol])
- INTEL_64BIT_OLDEST_CPU =
Эта константа является частью приватного API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
:core2
Краткое описание методов класса свернуть
- .aes? ⇒ Boolean приватный
- .altivec? ⇒ Boolean приватный
- .arch ⇒ Symbol приватный
- .arch_32_bit ⇒ Symbol приватный
- .arch_64_bit ⇒ Symbol приватный
- .arch_flag(arch) ⇒ String приватный
- .arm64? ⇒ Boolean приватный
Проверяет, является ли архитектура ЦП 64-разрядной ARM.
- .arm? ⇒ Boolean внутренний
Проверяет, является ли архитектура ЦП архитектурой ARM.
- .arm_family ⇒ Symbol приватный
- .avx2? ⇒ Boolean приватный
- .avx? ⇒ Boolean приватный
- .big_endian? ⇒ Boolean приватный
- .bits ⇒ Integer? приватный
- .cores ⇒ Integer приватный
- .extmodel ⇒ Integer приватный
- .family ⇒ Symbol приватный
- .feature?(name) ⇒ Boolean приватный
- .features ⇒ Array<Symbol> приватный
- .in_rosetta2? ⇒ Boolean приватный
- .intel? ⇒ Boolean приватный
- .intel_family(_family = T.unsafe(nil), _cpu_model = T.unsafe(nil)) ⇒ Symbol приватный
- .is_32_bit? ⇒ Boolean приватный
- .is_64_bit? ⇒ Boolean приватный
- .little_endian? ⇒ Boolean приватный
- .optimization_flags ⇒ Hash{Symbol => String} приватный
- .physical_cpu_arm64? ⇒ Boolean приватный
- .ppc32? ⇒ Boolean приватный
- .ppc64? ⇒ Boolean приватный
- .ppc64le? ⇒ Boolean приватный
- .ppc? ⇒ Boolean приватный
- .sse3? ⇒ Boolean приватный
- .sse4? ⇒ Boolean приватный
- .sse4_2? ⇒ Boolean приватный
- .ssse3? ⇒ Boolean приватный
- .sysctl_bool!(key) ⇒ Boolean приватный
- .sysctl_int(key) ⇒ Integer приватный
- .sysctl_n(*keys) ⇒ String приватный
- .type ⇒ Symbol приватный
- .virtualized? ⇒ Boolean приватный
Подробное описание методов класса
.aes? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
13 14 15 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 13 def aes? sysctl_bool!("hw.optional.aes") end |
.altivec? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
18 19 20 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 18 def altivec? sysctl_bool!("hw.optional.altivec") end |
.arch ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
75 76 77 78 79 80 81 82 83 84 | # File 'hardware.rb', line 75 def arch case bits when 32 arch_32_bit when 64 arch_64_bit else :dunno end end |
.arch_32_bit ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
47 48 49 50 51 52 53 54 55 56 57 | # File 'hardware.rb', line 47 def arch_32_bit if arm? :arm elsif intel? :i386 elsif ppc32? :ppc32 else :dunno end end |
.arch_64_bit ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
60 61 62 63 64 65 66 67 68 69 70 71 72 | # File 'hardware.rb', line 60 def arch_64_bit if arm? :arm64 elsif intel? :x86_64 elsif ppc64le? :ppc64le elsif ppc64? :ppc64 else :dunno end end |
.arch_flag(arch) ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
200 201 202 203 204 | # File 'hardware.rb', line 200 def arch_flag(arch) return "-mcpu=#{arch}" if ppc? "-march=#{arch}" end |
.arm64? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Проверяет, использует ли процесс 64-разрядную архитектуру ARM.
170 171 172 | # File 'hardware.rb', line 170 def arm64? arm? && is_64_bit? end |
.arm? ⇒ Boolean
Этот метод является частью внутреннего API. Этот метод можно использовать только внутри репозиториев, принадлежащих Homebrew, за исключением casks и formulae. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Проверяет, использует ли процесс архитектуру ARM.
164 165 166 | # File 'hardware.rb', line 164 def arm? type == :arm end |
.arm_family ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 60 def arm_family case sysctl_int("hw.cpufamily") when 0x2c91a47e # ARMv8.0-A (Typhoon) :arm_typhoon when 0x92fb37c8 # ARMv8.0-A (Twister) :arm_twister when 0x67ceee93 # ARMv8.1-A (Hurricane, Zephyr) :arm_hurricane_zephyr when 0xe81e7ef6 # ARMv8.2-A (Monsoon, Mistral) :arm_monsoon_mistral when 0x07d34b9f # ARMv8.3-A (Vortex, Tempest) :arm_vortex_tempest when 0x462504d2 # ARMv8.4-A (Lightning, Thunder) :arm_lightning_thunder when 0x573b5eec, 0x1b588bb3 # ARMv8.4-A (Firestorm, Icestorm) :arm_firestorm_icestorm when 0xda33d83d # ARMv8.5-A (Blizzard, Avalanche) :arm_blizzard_avalanche when 0xfa33415e # ARMv8.6-A (M3, Ibiza) :arm_ibiza when 0x5f4dea93 # ARMv8.6-A (M3 Pro, Lobos) :arm_lobos when 0x72015832 # ARMv8.6-A (M3 Max, Palma) :arm_palma when 0x6f5129ac # ARMv9.2-A (M4, Donan) :arm_donan when 0x17d5b93a # ARMv9.2-A (M4 Pro / M4 Max, Brava) :arm_brava when 0x1d5a87e8 # ARMv9.2-A (M5, Hidra) :arm_hidra when 0xf76c5b1a # ARMv9.2-A (M5 Pro / M5 Max, Sotra) :arm_sotra else # When adding new ARM CPU families, please also update # test/hardware/cpu_spec.rb to include the new families. :dunno end end |
.avx2? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
28 29 30 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 28 def avx2? sysctl_bool!("hw.optional.avx2_0") end |
.avx? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
23 24 25 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 23 def avx? sysctl_bool!("hw.optional.avx1_0") end |
.big_endian? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
180 181 182 | # File 'hardware.rb', line 180 def big_endian? [1].pack("I") == [1].pack("N") end |
.bits ⇒ Integer?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
113 114 115 116 117 118 | # File 'hardware.rb', line 113 def bits @bits ||= T.let(case RUBY_PLATFORM when /x86_64/, /ppc64|powerpc64/, /aarch64|arm64/ then 64 when /i\d86/, /ppc/, /arm/ then 32 end, T.nilable(Integer)) end |
.cores ⇒ Integer
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
102 103 104 105 106 107 108 109 110 | # File 'hardware.rb', line 102 def cores @cores ||= T.let( begin cores = Utils.popen_read("getconf", "_NPROCESSORS_ONLN").chomp.to_i $CHILD_STATUS.success? ? cores : 1 end, T.nilable(Integer), ) end |
.extmodel ⇒ Integer
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
8 9 10 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 8 def extmodel sysctl_int("machdep.cpu.extmodel") end |
.family ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
97 98 99 | # File 'hardware.rb', line 97 def family :dunno end |
.feature?(name) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
195 196 197 | # File 'hardware.rb', line 195 def feature?(name) features.include?(name) end |
.features ⇒ Array<Symbol>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
190 191 192 | # File 'hardware.rb', line 190 def features [] end |
.in_rosetta2? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
207 208 209 | # File 'hardware.rb', line 207 def in_rosetta2? false end |
.intel? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
136 137 138 | # File 'hardware.rb', line 136 def intel? type == :intel end |
.intel_family(_family = T.unsafe(nil), _cpu_model = T.unsafe(nil)) ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 100 def intel_family(_family = T.unsafe(nil), _cpu_model = T.unsafe(nil)) case sysctl_int("hw.cpufamily") when 0x73d67300 # Yonah: Core Solo/Duo :core when 0x426f69ef # Merom: Core 2 Duo :core2 when 0x78ea4fbc # Penryn :penryn when 0x6b5a4cd2 # Nehalem :nehalem when 0x573b5eec # Westmere :westmere when 0x5490b78c # Sandy Bridge :sandybridge when 0x1f65e835 # Ivy Bridge :ivybridge when 0x10b282dc # Haswell :haswell when 0x582ed09c # Broadwell :broadwell when 0x37fc219f # Skylake :skylake when 0x0f817246 # Kaby Lake :kabylake when 0x38435547 # Ice Lake :icelake when 0x1cf8a03e # Comet Lake :cometlake else :dunno end end |
.is_32_bit? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
126 127 128 | # File 'hardware.rb', line 126 def is_32_bit? bits == 32 end |
.is_64_bit? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
131 132 133 | # File 'hardware.rb', line 131 def is_64_bit? bits == 64 end |
.little_endian? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
175 176 177 | # File 'hardware.rb', line 175 def little_endian? !big_endian? end |
.optimization_flags ⇒ Hash{Symbol => String}
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # File 'hardware.rb', line 28 def optimization_flags @optimization_flags ||= T.let({ dunno: "", native: arch_flag("native"), ivybridge: "-march=ivybridge", sandybridge: "-march=sandybridge", westmere: "-march=westmere", nehalem: "-march=nehalem", core2: "-march=core2", core: "-march=prescott", arm_vortex_tempest: "", # TODO: -mcpu=apple-m1 when we've patched all our GCCs to support it armv6: "-march=armv6", armv8: "-march=armv8-a", ppc64: "-mcpu=powerpc64", ppc64le: "-mcpu=powerpc64le", }.freeze, T.nilable(T::Hash[Symbol, String])) end |
.physical_cpu_arm64? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Это надёжнее, чем проверять uname. sysctl возвращает правильный результат даже при работе в Rosetta 2.
50 51 52 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 50 def physical_cpu_arm64? sysctl_bool!("hw.optional.arm64") end |
.ppc32? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
146 147 148 | # File 'hardware.rb', line 146 def ppc32? ppc? && is_32_bit? end |
.ppc64? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
156 157 158 | # File 'hardware.rb', line 156 def ppc64? ppc? && is_64_bit? && big_endian? end |
.ppc64le? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
151 152 153 | # File 'hardware.rb', line 151 def ppc64le? ppc? && is_64_bit? && little_endian? end |
.ppc? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
141 142 143 | # File 'hardware.rb', line 141 def ppc? type == :ppc end |
.sse3? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
33 34 35 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 33 def sse3? sysctl_bool!("hw.optional.sse3") end |
.sse4? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
121 122 123 | # File 'hardware.rb', line 121 def sse4? RUBY_PLATFORM.to_s.include?("x86_64") end |
.sse4_2? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
43 44 45 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 43 def sse4_2? sysctl_bool!("hw.optional.sse4_2") end |
.ssse3? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
38 39 40 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 38 def ssse3? sysctl_bool!("hw.optional.supplementalsse3") end |
.sysctl_bool!(key) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
134 135 136 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 134 def sysctl_bool!(key) sysctl_int(key) == 1 end |
.sysctl_int(key) ⇒ Integer
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
139 140 141 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 139 def sysctl_int(key) sysctl_n(key).to_i & 0xffffffff end |
.sysctl_n(*keys) ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
144 145 146 147 148 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 144 def sysctl_n(*keys) (@properties ||= T.let({}, T.nilable(T::Hash[T::Array[String], String]))).fetch(keys) do @properties[keys] = Utils.popen_read("/usr/sbin/sysctl", "-n", *keys) end end |
.type ⇒ Symbol
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
87 88 89 90 91 92 93 94 | # File 'hardware.rb', line 87 def type case RUBY_PLATFORM when /x86_64/, /i\d86/ then :intel when /arm/, /aarch64/ then :arm when /ppc|powerpc/ then :ppc else :dunno end end |
.virtualized? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности третьим лицам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
55 56 57 | # File 'extend/os/mac/hardware/cpu/hardware.rb', line 55 def virtualized? sysctl_bool!("kern.hv_vmm_present") end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Hardware/CPU.html