2

У меня есть USB-устройство, которое я использую ежедневно, и это драйверы для Linux и Windows. Я хотел бы использовать это устройство в Mac OS X (имеется в виду не через виртуальную машину). Является ли это возможным? Обратите внимание, что драйверы содержат источник.

редактировать
Системные требования из прочитанного мной:

  • Linux 2.4 или 2.6
  • Настройка системы для компиляции ядра.

1 ответ1

5

Нет. Интерфейсы ядра совершенно разные. Хотя MacOSX и Linux оба являются UNIXes-ish (фактически, Mac OS X сертифицирована на 100% UNIX), они сильно различаются по архитектуре. Лучше всего было бы попробовать VMWare и использовать экземпляр Linux под VMWare, чтобы попытаться получить к нему доступ.

РЕДАКТИРОВАТЬ: Я только что видел ваши изменения, говоря, что у вас есть источник и не хотите VMWare. Я бы все еще сказал нет. Основы Linux и MacOSX радикально отличаются. Источник не будет «просто работать», если кто-то не заставит его работать специально для MacOSX. Я бы проверил источник «#ifdef darwin» или чего-то подобного, он не будет работать. Вам также нужно иметь правильную версию - Apple меняет свое ядро достаточно между основными выпусками, чтобы очень старый порт мог не работать.

Много лет назад был проект для драйверов устройств, переносимых между платформами. Он назывался Project UDI. Теория заключалась в том, чтобы в вашем ядре была среда драйверов устройств. API-интерфейсы будут одинаковыми для всех операционных систем. Драйверы устройств были везде совместимы с исходным кодом и совместимы с двоичным кодом (что вам нужно) на машинах с одинаковым ABI (x86, AMD64 и т.д.). Был порт, который я помню для Дарвина, но я думаю, что он был гораздо более теоретическим для MacOSX, чем что-либо еще.

Среда работала технически (она фактически поставлялась как собственный интерфейс драйвера устройства для UnixWare, со старым DDI как уровнем совместимости поверх UDI), но провалилась по человеческим / политическим причинам. Наличие SCO / Caldera в качестве основного толчка для проекта не сильно помогло. Для ОС с хорошей поддержкой драйверов (скажем, Solaris, Windows) наличие этих драйверов является преимуществом по сравнению с ядрами, которые этого не делают, поэтому единственная поддержка будет предоставлена по определению ОС, у которых нет драйверов, и которые не оказывают большого влияния. , Столлману это тоже не очень понравилось - двоичная совместимость снизила бы вероятность (как он полагал) поставки исходного кода для драйверов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .