Size: a a a

macOS — русскоговорящее сообщество

2020 June 09

A

Aleserche in macOS — русскоговорящее сообщество
Alex🤷‍♂️
мутанты!
Или 1С-ики
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
Koote
qemu слишком медленно ((
1. Совсем быстро эмуляция не может быть чисто по законам физики, увы.

2. QEMU-user о котором рассказываю я это не то же самое что QEMU-system, он гораздо легковеснее и ему не нужно эмулировать железо виртуального компьютера, он _только исполняет ARM код и транслирует вызовы_. Поэтому qemu-user будет быстрее.
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
И конечно нельзя сравнивать по скорости исполнения x86-виртуалку на x86-компьютере с настоящей эмуляцией.

Виртуалки работают на 95% железно, поэтому там эмулируется только диск, дисплей и прочая переферия компа, а проц туда прокидывается практически настоящий.

А вот _эмуляция_ это когда тебе надо взять инструкцию одной архитектуры, перестроить её в другую, исполнить на родном языке, а потом ещё получившиеся данные иногда перелопатить и выровнять для “неродной архитектуры”
Раз в 10 медленнее может получиться.
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
Так вот розетта работает ровно на том же принципе что qemu-user - транслирует вызовы 🙂
источник

A

Aleserche in macOS — русскоговорящее сообщество
Когда уже 86 уйдет в историю? Вместе со всей своей кривой архитектурой
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
Aleserche
Когда уже 86 уйдет в историю? Вместе со всей своей кривой архитектурой
Нескоро, и ещё не факт что это всем нам будет хорошо.
Можете почитать мои опасения, но это целые 3-4 минуты: https://t.me/macos_ru/275375
источник

K

Koote in macOS — русскоговорящее сообщество
time flies 🏴
Так вот розетта работает ровно на том же принципе что qemu-user - транслирует вызовы 🙂
ну роззета вроде умеет дергать "правильное" API в отличии от qemu который юзает "общий" API. Это  догадки но роззету вроде как больше любят
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
Koote
ну роззета вроде умеет дергать "правильное" API в отличии от qemu который юзает "общий" API. Это  догадки но роззету вроде как больше любят
Не понимаю, о каком апи идёт речь.
Чисто теоретически можно заменить rosetta на правильно приготовленный qemu и получить то же самое.
источник

K

Koote in macOS — русскоговорящее сообщество
time flies 🏴
Я не то чтоб хочу сменить osx на что-то иное, я просто не хочу чтобы эппол решал за меня, какое ПО использовать. Прямо как на айфоне.
пока под капотом живет Unix - эпл не сможет решать за пользователя на макосе.
источник

K

Koote in macOS — русскоговорящее сообщество
я не доверял макос пока не перемапил клаву штатными средствами с помощью вима и редактирования xml файлика. И как бы эпл там все не скрывало - все равно "задроство" найдет путь )
источник

V

Vitaly in macOS — русскоговорящее сообщество
Может кто знает, где бы бестпрактисы про VMware Fusion почитать, в разрезе серверного использования?
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
Суть qemu-user или розетты - просто связать API арма и API x86 🙂

Есть две ОС: для арма и для x86
В ней есть одинаковый набор разных API для рисования окон, чтения файлов и так далее.
Проблемы тут всего 2:
1. x86 проц не умеет выполнять arm-инструкции
2. x86-код хранит данные чуть в ином виде чем ARM-код

поэтому решается всё просто - исполняем ARM-код на эмуляторе, а данные преобразуем при передаче между вызовами.

это в корне отличается от того что вы могли видеть запуская windows на планшете в эмуляторе например 🙂 в таком случае эмулируется вообще всё - начиная от диска и видеокарты, заканчивая даже биосом
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
но решение конечно всё равно временное
источник

K

Koote in macOS — русскоговорящее сообщество
time flies 🏴
Суть qemu-user или розетты - просто связать API арма и API x86 🙂

Есть две ОС: для арма и для x86
В ней есть одинаковый набор разных API для рисования окон, чтения файлов и так далее.
Проблемы тут всего 2:
1. x86 проц не умеет выполнять arm-инструкции
2. x86-код хранит данные чуть в ином виде чем ARM-код

поэтому решается всё просто - исполняем ARM-код на эмуляторе, а данные преобразуем при передаче между вызовами.

это в корне отличается от того что вы могли видеть запуская windows на планшете в эмуляторе например 🙂 в таком случае эмулируется вообще всё - начиная от диска и видеокарты, заканчивая даже биосом
суть любой виртуализации в транспилинге процедур из одного процессора в команды другого
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
в случае эмуляции полного компа:
- виртуальная машина эмулирует шину PCI, диск и прочие штуки, всё это скрипит и отжирает ресурсы

в случае розетты или usermode-эмуляции
- транслятор быстро переводит сообщение “ну-ка запиши мне вот эти данные в файл” и отдаёт их хостовой ОС, в итоге вся работа ядра, буферов итд уже не эмулированная, а настоящая (эмулирован только код программы и её userspace-библиотек)
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
Koote
суть любой виртуализации в транспилинге процедур из одного процессора в команды другого
да, но в случае с эмулятором _полного компьютера_ это ещё и эмуляция железа.
если вы перегоните x86-код какой-нибудь венды или другой ОС в arm-код, этого будет ещё недостаточно для его запуска, потому что ОС тоже должна общаться с каким-то API 🙂 а у вас пока нет API, только голый процессор исполняющий инструкции
источник

K

Koote in macOS — русскоговорящее сообщество
time flies 🏴
да, но в случае с эмулятором _полного компьютера_ это ещё и эмуляция железа.
если вы перегоните x86-код какой-нибудь венды или другой ОС в arm-код, этого будет ещё недостаточно для его запуска, потому что ОС тоже должна общаться с каким-то API 🙂 а у вас пока нет API, только голый процессор исполняющий инструкции
мне кажется вы путаете понятия эмуляция и виртуализация
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
полная эмуляция должна уметь:
- загружаться с диска или иного накопителя - значит есть эмулируемый контроллер диска
- прикидываться обычным компом - значит есть ACPI, PCI и так далее
- рисовать на экране графику - значит надо эмулировать какой-нибудь cirrus 1992 года…
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
Koote
мне кажется вы путаете понятия эмуляция и виртуализация
понятия ортогональные, на самом деле.
источник

tf

time flies 🏴 in macOS — русскоговорящее сообщество
Koote
мне кажется вы путаете понятия эмуляция и виртуализация
ну не совсем.
на самом деле, когда вы используете виртуализацию, вы используете и эмуляцию тоже, просто эмулируете вы не процессор, а другие недостающие штуки :))

потому что виртуализация даёт только цпу и память в особом режиме - она при этом не даёт биоса, видеокарточки, дискового накопителя и так далее.
иными словами, это всё ещё “пустая коробка”, в которую надо добавлять устройства.
источник