Под Linux, наверное, невозможно найти полноценную профессиональную CAD-систему. Как-то так повелось, не то в силу GPL-лицензии, не то в силу каких-то других обстоятельств, что Dassault Systemes пишет так почитаемые в России SolidWorks и CATIA под Windows. В результате чего все, или практически все КБ (конструкторские бюро), работающие в этих CAD-ах, привязаны к ней.
Не у меня одного на компьютере живёт зоопарк всякого софта. Для какого-то приходилось и отладочный режим Windows включать. Что-то не вычищалось из реестра при всех стараниях. Что-то тащило за собой службы, запускаемые при старте ОС. В общем, давно крутилась мысль навести в этом всём порядок с помощью виртуализации. Поставить гипервизор, запускать из него тематические виртуальные машины, в которых уже запускать всех этих капризных, но так нужных для ощущения полноты жизни алгоритмических тварей, которые уже не смогут прогрызть себе путь к хостовой операционке и другим виртуалкам, испортив всё и сразу. К тому же, есть такие бесплатные и, судя по отзывам, неплохие гипервизоры, как VirtualBox. И раз уж всё работает на виртуальных машинах, то хостовой ОС может быть Linux, который будет не так просто пробить вирусной атакой, для которого есть море бесплатного софта и который по другим причинам привлекательней Windows. Всё вроде как стройно, красиво, логично.
И тут представился повод заняться этим. С каких-то пор я являюсь любителем ноутбуков. На них можно работать в любых условиях – и сидя в офисе, и сидя на диване, да хоть в лесу. Совмещать развлечения с увлечениями. Как-то очередной рекламный вирус пролез через Firefox, Каспера (купленного и регулярно обновляемого, кстати), и поселился где-то на просторах системных каталогов Windows. Первый раз за всё время решил переставить её на своей уже пожилой Sony VAIO.
Но вот незадача, соневские драйвера оказались настолько капризными, что ставить их следовало в строго определённом порядке. Иначе было много шансов, что какой-то просто не заработает. Но узнал я об этом уже после того, как переставил Windows, установил родные драйвера, и стал гуглить на тему, почему ж всё заработало, а ethernet- адаптер – нет. Переставлять Windows и ублажать драйвера, ставя их в определённом порядке, уже не хотелось.
Итак, здравствуй Linux! Какой же именно? После некоторых размышлений, имея опыт работы с CentOS и Solaris (который, конечно же, не Linux, но UNIX), остановился на Ubuntu. Обещали много вкусностей, хотя это и немного непривычная ветвь Linux‑а Debian.
Установилась Ubuntu так просто, что даже не стоит упоминания. Всякого софта в репозиториях полно. Но, как уже упоминалось, нет Solidworks, и даже отдалённо что-то на него похожее.
Установил Virtualbox, на него Windows, на неё Solidworks. Попытался. Работала установка Solid‑а под гостевой Windows, кстати, небыстро, откровенно медленно. Как бы там ни было, но Solidworks работать отказался. Почитал комменты, и оказалось, что под Virtualbox Solid не работает ни у кого. Надо, к примеру, VMWare.
Ладно, первый дополнительный платно- проприетарный продукт. Осваиваем его. Благо, что ставится и обновляется без проблем. Создалась виртуальная машина, Solid под неё встал… и даже заработал! Но как-то не быстро. Оказалось, есть куча нюансов. Тюнинг решает всё.
Первое. Настройка ресурсов виртуальных машины – довольно тонкое дело. Под виртуалку отдал ровно половину физической памяти – 3 из 6 гиг. Ни больше, ни меньше.
Второе. При 4x-ядерном процессоре Intel Core i3 поставил количество процессоров на виртуальную машину 4 штуки. Половина ядер, умноженное на 2 очереди. Отдав половину вычислительных ресурсов виртуалке, вроде как добился баланса вычислительной мощности – не тормозит ни хостовая, ни гостевая операционки.
Вообще, за несколько месяцев жизни в Ubuntu ещё ни разу не столкнулся с нехваткой физической оперативной памяти (которой у меня на ноуте 6 Гиг), но часто сталкиваюсь с 100% загрузкой процессора. Периодически что-нибудь старается занять всё время процессора. Вот, при обновлении Убунты до версии 15.10 опрометчиво согласился включить поддержку реального времени. Комп заработал медленно. Оказалось, что из-за некоей баги в ядре процессы kworker могут поглощать 80% процессорного времени не понятно на что. Благо, лечится просто:
sudo rmmod intel_powerclamp
Должен заметить, что в русскоязычном Инете Убунта поддержана очень хорошо. Довольно легко и быстро найти решение проблем, возникающих как при возрастании собственных запросов, так и при обновлении ключевого софта. Например, в ходе своих изысканий прошёл обновление VMWare с версии 11 на версию 12. После обновления она не захотела запускаться. Но беглый поиск по Гуглу дал решение этой проблемы.
Из непонятных нежданчиков нужно отметить поведение Windows в качестве гостевой ОС. Конкретно, Windows 7, с которой я работаю, так как она у меня официальная и купленная. Что-то там не так с обновлением. Все знают, что обновиться Windows хочет часто и много. Но чтобы при «выключении компьютера» так долго обновляться… Особо большие обновления проходили до нескольких часов. Однако, если обновление запускаешь принудительно из панели управления, то оно проходит штатно и вполне быстро.
С обновлением Windows связан ещё один нюанс. Запускаем гостевую Windows. Еле шевелится. Смотрим диспетчер процессов, процессы всех пользователей. Загрузка 100%, процесс TrustedInstaller стремится загрузить процессор под завязку. Гуглим, и оказывается, что это — процесс обновления Windows, ну и ещё там по мелочам… не даёт писать в системные каталоги кому попало. При попытке остановить запускается снова. На постоянку останавливается запрещением автоматического обновления Windows. Ну и ладно, запретим.
Пришлось так же из репозитория Убунты поставить родной драйвер NVIDIA для графического адаптера, поскольку было подозрение, что вставший при установке ОС драйвер был не совсем правильный. Подозрение оправдалось, при старте виртуальных машин исчезли сообщения «No 3D support is available from the host» и «Hardware graphics acceleration is not avalable».
На виртуальную машину требуется, как правило, от 20 гигабайт места на жёстком диске. Поэтому на небольшом HDD ноутбука, забитого кучей всего, много виртуалок, как я рассчитывал до начала всех этих экспериментов, на самом деле, не поставишь.
Я описал основные проблемы, с которыми столкнулся при установке совершенно необходимого мне для работы Solidworks на виртуальную машину VMWare при работе в хостовой ОС Ubuntu. В целом, поковырявшись пару месяцев с этим и хорошенько потюнив, я считаю, что решение вполне работоспособное. И удобное. Правда, ещё не открывал сборки 3D-моделей больших машин на сотни деталей. Не знаю, как переварит такая софтовая иерархия их. Но с ними и Core i5 с 8 Гиг памяти не сказать, что шустро справляется.
Сейчас я, работая в виртуалке, не вижу разницы с работой на обычном физическом нормально отстроенном компе. При запущенных (просто запущенных) Солиде, Ворде и Файрфоксе процесс «Бездействие системы» занимает 95% процессорного времени. Утиллита top из консоли Убунты говорит, что vmware-vmx занимает 70% процессорного времени и 54% памяти. То есть, вполне комфортно.
Параллельно я создавал вторую виртуальную машину для софтверных и контроллерных разработок. CocoxIDE на другой виртуалке увидел отладочную плату STM32, но толком ещё я её не программировал. Впереди эксперименты с довольно капризной, но очень популярной среди CNC-шников программой ArtCAM, а так же практическая работа с STM32 через CocoxIDE.
Автор: volody314