corvuscor

пикабушник
поставил 3396 плюсов и 123 минуса
отредактировал 0 постов
проголосовал за 1 редактирование
49К рейтинг 75 подписчиков 17К комментариев 99 постов 17 в горячем
1 награда
5 лет на Пикабу
10

На дне рождения

Знаете, я только сейчас понял сакральный смысл празднования дней рождения.
Когда тебе 18, говорят:

- Наконец ты вырос, теперь станешь большой, самостоятельный и не будешь сидеть на шее у родителей!

И все радуются.

А когда тебе 35, тебе говорят:

- Ну и что ты здесь нюни развесил? Не унывай, дед, пойдем, хряпнем коньячку, которого мы тебе принесли!

Ты идешь, хряпаешь, и все снова радуются.

Поэтому дни рождения нужны в любом возрасте.

21

Строим матрешку из Wine и ваших приложений

Давненько я ничего не писал, но тут на меня снизошло желание сделать пост. Ну ладно.
Думаю, среди тех, кто недавно перешел на Linux, часто возникает потребность использовать Wine. Я и сам, каюсь, иногда его использую. Сейчас я расскажу, как держать на компьютере его разные версии и разные префиксы просто в одной папке, да еще так, что это все будет очень красиво (наверное) логически организовано.

Необходимое предисловие - возможно, вам следует почитать про каскадно-объединенное монтирование. Его принцип - использование различных файловых систем как слоев в матрешке.

Каждый следующий слой представляет разницу с предыдущим. Таким образом реализуется принцип CopyOnWrite, иными словами, нижний слой может быть ReadOnly, а во второй мы будем записывать разницу. Зачем это нужно - будет понятно по тексту.


Саму установку Wine можно разделить на 3 части - бинарники, префикс (аналог диска C:) и, собственно, ваши приложения. Вот мы и разделим.


Основной принцип таков - разделить все на сжатые squashfs файлы (их будет два, один с Wine, а второй с пустым префиксом) и папку, в которой будут ваши настройки и приложения. Посмотрите, что выйдет. Главный принцип - все манипуляции, кроме установки нужных пакетов, будут от юзера.


Сначала надо скачать нужные бинари Wine. Советую для простоты взять отседова:

https://www.playonlinux.com/wine/binaries/phoenicis/


Распаковывам архив, получаем папку с Wine, в ней должны содержаться стандартные для приложения папки - bin, lib, share, и т.д.

Теперь создадим пустой префикс. Сделаем скрипт (назовем его wine5, он нам еще пригодится):


#!/bin/bash


root=`pwd`

cd ./папка_с_вайном/bin

env WINEPREFIX=$root/test_prefix LD_LIBRARY_PATH=$root/папка_с_вайном ./wine "$*"

Запустим этот скрипт папке с папкой Wine и получим пустой префикс в папке test_prefix:

./wine5 winecfg

Теперь запакуем Wine и пустой префикс в squashfs файлы:

mksquashfs ./папка_с_вайном wine_compressed.sqsh -comp lzo

mksquashfs ./test_frefix clear_prefix.sqsh -comp lzo

Почему lzo? Потому-что жмет почти как zip, а на распаковке дает до 1.5 ГБ/с. Такое сжатие может даже ускорить работу на HDD. Приятный бонус - размер бинарей вайна и префикса сократится в 2-3 раза.

В итоге получим все два файла, которые, в сущности, и есть весь Wine. Теперь надо написать скрипт(можете начинать), который их монтирует и размонтирует.

Для начала надо поставить такие вещи, как squashfuse и unionfs-fuse. Это зависит от вашего пакетного менеджера. Допустим, пакеты вы поставили.


Сначала смонтируем squashfs:

squashfuse wine_compressed.sqsh ./wine_mountpoint


squashfuse clear_prefix.sqsh ./prefix_mount_ro

Потом создадим директории prefix_rw(сюда будут записываться ваши приложения) и prefix_merged(полная версия) и соберем матрешку префикса:


unionfs-fuse -o cow ./prefix_rw=RW:./prefix_mount_ro=RO ./merged

Теперь поправим в вашем скрипте пути, пропишем в WINEPREFIX путь к merged, а папку с вайном заменим на wine_mountpoint.


Все можно пользоваться! Размонтировать это дело можно с помощью fusermount -u (добавьте в свой скрипт или сделайте отдельный, по вкусу), опять же, полностью от юзера.

Кроме того, обратите внимание на пути.


Что это дает?

1. А то, что монтировать unionfs можно сколько угодно раз, единожды примонтировав wine и пустой префикс. Таким образом, можно создавать префиксы - для простоты - пустые установки Windows, которые почти ничего не весят, как контейнеры. Кроме того, слоев в матрешке может быть сколько угодно. Можно упаковать и приложения. Можно даже запаковать целую игру, в rw будут писаться только сохранения и настройки. Так что применение зависит только от вашей фантазии и целей.


2. Значительное сокращение размера.


3. Все это внутри одной папки и не требует софта кроме тонких оберток типа squashfuse и unionfs-fuse, которые во многих дистрибутивах есть по дефолту.


Послесловие или FAQ.

Вопрос: Это все известно и используется в контейнерах и LiveCD, зачем ты это пишешь?

Ответ: Потому-что могу и хочу.


Вопрос: Почему не использовать более современную aufs?

Ответ: Она не умеет в FUSE.


Вопрос: Ничего не понял, нафига мне это красноглазие? Я сижу на Windows и прекрасно себя чувствую.

Ответ: Вот и сидите дальше, что вы здесь забыли?


Может быть, что-то упустил.

Показать полностью
343

Движок XRay портирован на Linux.

Разработчики проекта OpenXRay сообщили о готовности альфа-выпуска порта движка под Linux. Само портирование уже завершено, однако многое ещё не готово и проходит стадию доработки, но уже сейчас движок запускается и работает. Исходные коды можно скомпилировать с помощью CMake и GCC 7. Для работы под Linux используются библиотеки SDL2 и OpenGL. Исходные коды проекта доступны на GitHub.

https://github.com/OpenXRay/xray-16

В рамках проекта OpenXRay происходит развитие движка X-Ray версии 1.6.02, используемого в игре "S.T.A.L.K.E.R.: Зов Припяти". Проект основан после утечки исходных кодов движка и ставит перед собой цель исправления всех оригинальных недочётов и введения новых возможностей как для обычных пользователей, так и для разработчиков модификаций. Разработчики приглашают всех желающих присоединиться к разработке проекта.


Парочку скринов:

Движок XRay портирован на Linux. Сталкер, x-Ray, Linux, Gnulinux, Игры, IT
Движок XRay портирован на Linux. Сталкер, x-Ray, Linux, Gnulinux, Игры, IT

От себя хочу отметить, что, к сожалению, код лицензионно не чист и используется с устного разрешения Григоровича, о чем разработчики честно предупреждают.


Ссылки на опеннет и первоисточник:

https://www.opennet.ru/opennews/art.shtml?num=49684

https://vk.com/openxray?w=wall-166255019_43

2071

Проект Python для соблюдения политкорректности избавляется от терминов "master" и "slave"

Гвидо ван Россум (Guido van Rossum) поставил точку в споре, возникшем среди разработчиков языка Python из-за изменений, предложенных Виктором Штиннером (Victor Stinner), работающим в Red Hat и входящим с число ключевых разработчиков Python. Виктор предложил вычистить код Python от упоминания слов "master" и "slave", так как их использование является неполиткорректным и ассоциируется с рабством и неравноправием. Несколько лет назад некоторые открытые проекты уже затронула череда подобных переименований, например, в Drupal термины "master" и "slave" были заменены на "primary" и "replica", а в Django и CouchDB на "leader" и "follower".

Соответствующие патчи приняты в состав выпуска 3.8.

Источник : opennet

Проект Python для соблюдения политкорректности избавляется от терминов "master" и "slave" Linux, Python, IT, Текст, Политкорректность
1456

Microsoft ведёт переговоры о покупке GitHub

По сведениям издания Business Insider, полученным из неофициальных источников, Microsoft и GitHub обсуждают возможность продажи сервиса. Отмечается, что последние годы представители Microsoft и GitHub уже безуспешно общались по вопросам продажи, но несколько недель назад начались более серьёзные переговоры. В качестве ориентировочной стоимости упоминается сумма в 5 миллиардов долларов (в 2015 году GitHub оценивался в 2 миллиарда) и пока не ясно, согласится ли на такую цену Microsoft.


http://www.opennet.ru/opennews/art.shtml?num=48696

Microsoft ведёт переговоры о покупке GitHub Open Source, Microsoft, Linux, Opennet, Github
109

Инсайдерская инфа от AMD.

Грядет обновление линейки Threadripper.
Характеристики флагмана:


- 512С/1024T, 2.8/4.1 GHz, 2048MB Cache L3, TDP 2600W.


В результате несколько возросшей упаковки выйдет новый сокет TR1151x2.
Компания верит, что это нанесет сокрушительный удар по Intel в сегменте портативных суперкомпьютеров и высокопроизводительных серверов.

Первые фото микропроцессора:

Инсайдерская инфа от AMD. IT, AMD, Юмор
107

Немного о Docker.

Решил написать еще один небольшой пост. Возможно, будет немного позначательно.

Думаю, многие неофиты мира GNU/Linux слышали модное нынче словцо - Docker.

Опять же, постараюсь кратко и доходчиво объяснить, что это, с чем его едят и для чего это может быть нужно неспециалисту вроде меня. И да, это не руководство для новичка, ибо их полно.

Немного о Docker. Linux, Gnulinux, Docker, IT, Виртуализация, Длиннопост, Текст
Вот такой синий голубой кит.


Для начала немного о контейнерной виртуализации. В ядре Linux есть технология разделения ресурсов под названием cgroups. Она может управлять доступом приложения к ресурсам - памяти, процессору, дискам. Несколько контор и просто неравнодушных ребят собрались и запилили LXC - систему управления контейнерами. Так же как в случае с chroot, это лишь виртуальное окружение - но без ядра. Сама по себе система LXC - мощная вещь, но и того оказалось мало.


Но это все присказка. На основе этого добра ребята из Docker Inc сделали сделали свой продукт.

Только вот сам по себе Docker - это не система виртуализации, как многие считают, а система объектно-ориентированной доставки софта. Т.е. изначально оно ориентированно на то, чтобы "поднять настроенный апач одной строкой в терминале".


А теперь простой пример. Скачаем образ Ubuntu Bionic (это бетка) и запустим его.

username$: sudo docker pull ubuntu:bionic

bionic: Pulling from library/ubuntu

c5cc0d8681c1: Pull complete

25992ae88689: Pull complete

92b293e28b63: Pull complete

5e97fb8c1b1b: Pull complete

e89d6de98e44: Pull complete

Digest: sha256:4decfd6e336e1cf246127151753d2a24a3185b5f667b91b925e8b38e7ea903a0

Status: Downloaded newer image for ubuntu:bionic

Образ выкачался. Проверим.

username$: sudo docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

ubuntu  bionic 02f9d6707661 5 weeks ago 88.3 MB

Ну так как-то. Форматирование текста с консоли тут едет, так что немного не наглядно.

Сказать сразу - образов в репозитории море, но об этом позже.


А теперь самое интересное - стартанем его:

username$: sudo docker run -it --rm --name temp_ubuntu -v /home/user/test1:/home/ ubuntu:bionic /bin/bash

И нас выплюнет в консольку контейнера с этой убунтой.

Отсюда поподробнее: -it - это интерактивный(i) терминал(t), --rm - удалить контейнер после останова, -v - проброс "внутрь" папки с хоста.

Можно что-то протестировать, собрать, а потом тормознуть контейнер через Control-D - и все чисто как в аптеке.


Но вообще, откровенно говоря, Docker нужен не для этого.

Немного о Docker. Linux, Gnulinux, Docker, IT, Виртуализация, Длиннопост, Текст
Как я уже говорил выше, это скорее система доставки софта, чем виртуализации. Вообще, на изоляцию силами cgroups я бы не полагался, но как "еще одна запертая дверь" она сойдет.

Так вот, о чем я - Docker позволяет "упаковать" какой либо сервак со всеми потрахами внутрь готового образа, и переносимость от хоста к хосту будет почти стопроцентная. Можно push-нуть уже готовый образ в репозиторий, и потом его так-же играючи обратно залить.

В результате в репозиториях уже можно найти огромное количество универсальных рецептов.

Но есть и более специализированный вариант - сборка образа с помощью Dockerfile.

Если просто - это такой сценарий, что нужно сделать и что запустить. Есть у меня один, которым я иногда пользуюсь - это Jupyter (сервер с IPython, блекджеком и шлюхами для научных расчетов). Так выглядит Dockerfile:

FROM debian:sid

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y python3 python3-pip python3-fann2

RUN pip3 install --upgrade pip && pip3 install jupyter sympy numpy scipy matplotlib pandas networkx

EXPOSE 8888

CMD jupyter notebook --allow-root --ip 0.0.0.0 --no-browser --notebook-dir=/home

Что он, чьорт побьери, делает?

Ну Debian Sid - это понятно, надеюсь.

ENV DEBIAN_FRONTEND noninteractive - переменная, чтобы apt не спрашивал да/нет у бездушной машины.

Далее идут команды установки всего и вся через RUN. Да, их следует делать поменьше раз, поэтому команды длинные.

EXPOSE "выпячивает" порт наружу.

Ну и CMD - конечная команда запуска.

Также стоит отметить, что обычно лучше юзать ENTRYPOINT, но это вам гуглить самим.


Теперь собираем образок:

username$: sudo docker build -f /path/to/dockerfile -t name_of_image

И все. Почти что серебряная пуля для ленивых админов.

Этот образ можно переносить с машины на машину, а можно просто отправить dockerfile через вконтактик))

Еще какие бонусы?


Так как Docker использует OverlayFS (ранее был aufs) - а это про copy-on-write - он не создает контейнеры с нуля, а только послойно записывает разницу между контейнером и изначальным образом. Так что таких контейнеров можно поднять с десяток при сравнительно небольших накладных затратах.

В общем, писать про это можно очень много и долго, но надобности за обилием написанных мануалов нет. Если интересно - просто попробуйте.

Показать полностью 1
177

Чего мне не хватает в Windows.

Периодически проскакивают разные срачевые посты. Не буду тыкать пальцем.

Основная суть вопроса от людей, линуксом ну совсем не пользующихся сводятся приблизительно к одному тезису:


- почему вы такие упоротые упорные сидите в своем линуксе и не хотите виндой пользоваться, как нормальные люди?


Отвечаю - сидим ради фич, которых нет в винде, и только. Не все из этого в статусе "нет и не будет", но по большей части сделано непотребно.

По списку, но не по значимости:


1. Wine.

Чего мне не хватает в Windows. Linux, GNU, Windows, IT, Длиннопост

Серьезно, да, я не шучу. Если закрыть глаза на недостатки последнего, приходит в голову то, что со старыми приложениями он зачастую работает лучше самой Windows, представляет средства для бэкпортирования новых версий DirectX на старые версии Windows, а также обеспечивает относительно изолированные друг от друга и относительно портативные окружения (т.н. префиксы). Вот оно как, Михалыч!


2. Поддержка файловых систем.

Чего мне не хватает в Windows. Linux, GNU, Windows, IT, Длиннопост

Конечно, энтузиасты делают поддержку, но это "все не так, и все не то". Возникает, опять же, резонный вопрос - зачем богоподобным майкам поддерживать всякую маргинальщину?

А наверное потому, что устройств, использующих и предпочитающих несовместимые с Windows файловые системы сейчас больше, чем, собственно, этих самых Windows. Может стоит сделать своим юзерам жизнь немного удобнее и запилить поддержку парочки популярных?


3. Прямой доступ к железу.

Чего мне не хватает в Windows. Linux, GNU, Windows, IT, Длиннопост

Тут я может и пожадничал, зато от чистого сердца. Невозможность прямого доступа к железу иногда мешает: сложности представляет побитовая работа с накопителями на заруженной системе, например. Нельзя помигать светодиодиком через GPIO, передав команды через sysfs. И еще много моментов, менее очевидных. Драйверная модель Windows NT не позволяет, если я не ошибаюсь.


4. Нативные контейнеры.

Чего мне не хватает в Windows. Linux, GNU, Windows, IT, Длиннопост

Начиная с chroot и заканчивая докером. И только не говорите, что это только для серверного применения, у вас просто хорошего контейнера не было =)


5. Pulseaudio.

Чего мне не хватает в Windows. Linux, GNU, Windows, IT, Длиннопост

Да, не все любят Поттеринга, ну "пшшаудио" и т.д. и т.п. Но если порассуждать - это крайне мощная вещь, позволяющая очень гибко управлять аудиопотоками, поддерживающая сетевую прозрачность и качество микширования вплоть до Bit Perfect.

Да, в Windows есть ASIO, но это вещь сторонняя и по назначению ближе к JACK. А жаль.

6. Портативный софт.

Чего мне не хватает в Windows. Linux, GNU, Windows, IT, Длиннопост

Да, в Windows он есть, но это в 90% случаев просто технопорно (в данном случае - порно с мелкой домашней скотиной и предметами интерьера). Кто во что горазд, как говорится. И все это обильно тормозит и чем-то гадит на жесткий диск. А в Linux есть AppImage - он прост и прозрачен. А если и это не устраивает, можно по вкусу упаковать софт в squashfs с прозрачным сжатием zstd, с которым оно будет работать даже быстрее, чем без него (это магия!). В общем, вы поняли.


7. Пакетные менеджеры.

Чего мне не хватает в Windows. Linux, GNU, Windows, IT, Длиннопост

Ну, где то на переферии поживает One-Get, можете просветить меня, если я не прав. Хотя здесь есть разница подходов. Кто-то от консоли с буковками шарахается как от прокаженного. Или от Vim'а.


8. Средства файловых систем.

Чего мне не хватает в Windows. Linux, GNU, Windows, IT, Длиннопост

Опять же, это можно отнести к 2, но нет. Есть много утилит, основанных на особенностях монтирования файловых систем в Linux. Например, cifs-utils, абсолютно прозрачно монтирующие сетевые ресурсы. Или что-то более экзотичное, типа gitfs. Также в формировании Live-CD используют каскадно-объединенное монтирование, когда несколько read-only образов монтируются как единая файловая система с возможностью записи изменений по приципу copy-on-write. В общем, тема широка.


9. И еще кое-что по мелочи.

В Windows можно разве что еще посетовать на отсутсвие некоторых более-менее универсальных интерфейсов. Если говорить про ffmpeg, например, который используется в куче утилит для скринкастов - для захвата экрана, например, есть тормозной gdigrab, либо множество велосипедов, в разной степени удачных для разных версий Windows / железа. Нет универсального API для кодирования видео, DXVA в кодирование не может, а производители видеокарт не могут прекратить клепать собственные API. В итоге поддержка аппаратного кодирования видео в софте - это такой неуловимый Джо. Даже в линуксе дела обстоят, кмк, получше.


Вот, что пришло в голову. Не претендую, конечно же, на роль истины в последней инстанции. Это просто мое мнение.

Показать полностью 7
619

Релиз стабильной версии Wine 3.0

Наконец свершилось!
Разработчики представили стабильную версию Wine под номером 3.0.

Релиз стабильной версии Wine 3.0 Wine, Linux, GNU, IT

Релиз содержит более 6000 изменений. Из основных нововведений:


- Поддержка Direct3D 10 и 11

- Поток команд Direct3D (CSMT)

- Графический драйвер Android

- Улучшенная поддержка DirectWrite и Direct2D.


На сегодня в роадмапе для следующего релиза запланирована поддержка DirectX12, DirectX9 силами OpenGL ES (необходимо для Android). Поддержка Vulkan API также отложена (что довольно странно, при "живом" то D3D11).

З.Ы. поддержка Witcher 3 и Photoshop CC 2018 на сегодня доведена до юзабельного состояния))

Ссылка на полный анонс:

https://www.winehq.org/announce/3.0

Отличная работа, все прочитано!