LINUX.ORG.RU

Сообщения vbr

 

SBC с хорошей документацией и хорошей upstream поддержкой

 , , ,

Посоветуйте SBC (single board computer) на архитектуре ARM64, чтобы прошивка для него собиралась полностью из открытого кода последних версий (u-boot, trusted-firmware-a, optee_os, kernel, mesa), чтобы все драйверы были открытыми, т.е. без каких-то вендор блобов, и в идеале чтобы код в апстриме был от производителя, а не от реверс-инжиниринга. Чтобы был рабочий GPU с каким-никаким ускорением. Это в идеале, готов к компромиссам вроде DDR блоба. Но очень не хочется каких-то вендорских форков 10-летней давности, в которых 50 000 коммитов с момента форка, хочется именно апстрима.

И чтобы по процессору была полная публичная документация, а то порой бывает, что документацию дают только партнёрам.

vbr
()

ИИ это новое кибер-оружие?

 

Если кто не в курсе, небезызвестная компания Anthropic, разработала новую модель Mythos. Эта модель особенно хороша в поиске уязвимостей. Некоторые из недавних найденных уязвимостей - её рук дело. При этом доступ к этому мифусу всем подряд не дают. Только у некоторых американских компаний есть такой доступ.

Собственно уже очевидно, что монопольный доступ к такому инструменту это стратегическое преимущество. Можно искать и эксплуатировать уязвимости у противника, а также искать и исправлять уязвимости у себя.

Думаю, осталось недолго ждать и государственного регулирования. Примеры мы видели совсем недавно - когда Америка запрещала экспорт хороших криптографических алгоритмов. Запрет особо ни к чему не привёл, но скорей просто потому, что это было практически невозможно. С другой стороны большие ИИ модели занимают многие гигабайты, тщательно охраняются, доступ к их весам у единиц. Поэтому тут запрет обойти будет куда сложней.

С другой стороны есть эмпирическое наблюдение, что модели с бесплатными весами отстают от лучших моделей на полгода-год. Поэтому совсем без ИИ мы, конечно, точно не останемся. Но всё же год в нынешнее время это срок немалый.

vbr
()

Поддержка «нового» железа улучшается со временем?

 , ,

Купил я себе ноутбук Thinkpad T14S Gen 6 Intel Core Ultra 7 268V. Накатил на него арч.

В целом в ноутбуке всё основное от Intel. WiFi, графика.

Эту модель процессора выпустили в третьем квартале 2024 года. Я ожидал относительно нормальной поддержки в последних версиях ядра. Всё-таки уже полтора года прошло.

В целом оно как бы всё работает. Но вот напрягают куча сообщений уровня warning и выше в dmesg. Честно признаться я раньше никогда не вглядывался в них. А сейчас вот решил вглядеться.

Вот это выдаёт на ядре 7.0.3:

May 08 22:02:59 archlinux kernel: hpet_acpi_add: no address or irqs in _CRS
May 08 22:02:59 archlinux kernel: i8042: Warning: Keylock active
May 08 22:02:59 archlinux kernel: rust_binder: Loaded Rust Binder.
May 08 22:02:59 archlinux kernel: ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
May 08 22:03:03 vbt14s6 kernel: faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2
May 08 22:03:03 vbt14s6 kernel: spi-nor spi0.0: supply vcc not found, using dummy regulator
May 08 22:03:03 vbt14s6 kernel: spi-nor spi0.0: unrecognized JEDEC id bytes: f7 f0 30 09 03 00
May 08 22:03:03 vbt14s6 kernel: intel_quicki2c 0000:00:10.0: THC interrupt already quiesce
May 08 22:03:03 vbt14s6 kernel: intel_quicki2c 0000:00:10.0: Can't find wake GPIO resource
May 08 22:03:04 vbt14s6 kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: Parent card not yet available, widget card binding deferred
May 08 22:03:04 vbt14s6 kernel: skl_hda_dsp_generic skl_hda_dsp_generic: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
May 08 22:03:04 vbt14s6 kernel: Bluetooth: hci0: Received gp1 mailbox interrupt
May 08 22:03:58 vbt14s6 kernel: nvme nvme0: using unchecked data buffer
May 08 22:05:22 vbt14s6 kernel: warning: `ThreadPoolForeg' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211
May 09 02:47:20 vbt14s6 kernel: hrtimer: interrupt took 16117 ns

Вот это выдаёт на ядре 6.18.28-1-lts

May 08 21:46:39 archlinux kernel: pnp 00:08: disabling [mem 0x000c0000-0x000c3fff] because it overlaps 0000:00:02.0 BAR 6 [mem 0x000c0000-0x000dffff]
May 08 21:46:39 archlinux kernel: pnp 00:08: disabling [mem 0x000c8000-0x000cbfff] because it overlaps 0000:00:02.0 BAR 6 [mem 0x000c0000-0x000dffff]
May 08 21:46:39 archlinux kernel: pnp 00:08: disabling [mem 0x000d0000-0x000d3fff] because it overlaps 0000:00:02.0 BAR 6 [mem 0x000c0000-0x000dffff]
May 08 21:46:39 archlinux kernel: pnp 00:08: disabling [mem 0x000d8000-0x000dbfff] because it overlaps 0000:00:02.0 BAR 6 [mem 0x000c0000-0x000dffff]
May 08 21:46:39 archlinux kernel: hpet_acpi_add: no address or irqs in _CRS
May 08 21:46:39 archlinux kernel: i8042: Warning: Keylock active
May 08 21:46:39 archlinux kernel: rust_binder: Loaded Rust Binder.
May 08 21:46:39 archlinux kernel: ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
May 08 21:46:43 vbt14s6 kernel: faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2
May 08 21:46:43 vbt14s6 kernel: spi-nor spi0.0: supply vcc not found, using dummy regulator
May 08 21:46:43 vbt14s6 kernel: spi-nor spi0.0: unrecognized JEDEC id bytes: f7 f0 30 09 03 00
May 08 21:46:43 vbt14s6 kernel: intel_quicki2c 0000:00:10.0: THC interrupt already quiesce
May 08 21:46:43 vbt14s6 kernel: intel_quicki2c 0000:00:10.0: Can't find wake GPIO resource
May 08 21:46:44 vbt14s6 kernel: iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-bz-b0-fm-c0-c99.ucode failed with error -2
May 08 21:46:44 vbt14s6 kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: Parent card not yet available, widget card binding deferred
May 08 21:46:44 vbt14s6 kernel: skl_hda_dsp_generic skl_hda_dsp_generic: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
May 08 21:46:44 vbt14s6 kernel: Bluetooth: hci0: Received gp1 mailbox interrupt

Кроме этих сообщений, бывают и другие изредка. Например порой в bluetooth модуль будто бы прошивка не с первого раза влезает. Ещё что-то было. Но это редко. А сообщения выше - 100% при каждой загрузке.

Ещё есть сообщения от GPU, если включать с открытым экраном. Я сейчас использую его с закрытой крышкой, с подключенным по USB-C монитору. А если просто так грузить - что-то вроде

May 05 23:13:30 archlinux kernel: xe 0000:00:02.0: [drm] *ERROR* [CRTC:149:pipe A] DSB 0 poll error
May 05 23:13:51 archlinux kernel: xe 0000:00:02.0: [drm] *ERROR* Tile0: GT1: GSC proxy component not bound!

Первая строчка 100% всегда, вторая - иногда.

При этом, повторюсь, всё вроде как работает. Экран показывает, сеть работает, звук есть. Но ведь все эти сообщения это не просто так. Разработчик же не просто так им проставил приоритеты warning и error. Кроме того, как видно, со временем некоторые сообщения исчезают, предполагаю, что поддержка оборудования улучшается.

Собственно как жить со всем этим? Улучшится поддержка со временем? Или с новым BIOS-ом в какой-то момент станет лучше (сейчас стоит последний)? А то такое ощущение, что работает это всё на честном слове.

vbr
()

Время переходить на постквантовую криптографию

 

В своей статье A Cryptography Engineer’s Perspective on Quantum Computing Timelines криптограф Filippo Valsorda предупреждает, что в последние месяцы появились многие статьи, указывающие на то, что шанс создания квантовых компьютеров, способных взломать современные ключи в ближайшие годы становится слишком велик, чтобы его игнорировать и рекомендует планировать переход на алгоритмы, устойчивые к квантовым компьютерам.

Со своей стороны выражу скепсис. Информационные системы потрясающие неповоротливы и скорей всего никаких реальных миграций ещё долго не будет. Остаётся лишь надеяться, что либо квантовые компьютеры в ближайшие годы всё же не создадут, а подобный шум мотивирует развивать стандарты и к нужному времени это всё станет уже рутиной. Либо они будут в руках очень состоятельных людей, которым взламывать что попало не нужно.

vbr
()

У меня ИИ-фобия

 , ,

Я раньше любил слушать ютуб. Включу какое-нибудь музыкальное видео и оно там играет на фоне. Алгоритмы у ютуба супер-примитивные, поэтому обычно оно каждый день одну и ту же подборку по кругу играет, но меня устраивает. Ну изредка что-то новое подсовывает.

А тут вижу видео - шансон. Французский. Ну я тыкнул и там статическая картинка с какой-то барышней и эта барышня чего-то там по-французски щебечет. Ну и ладно, щебечет и щебечет. Кстати миллион просмотров.

Потом мне показало видео с видеорядом будто из старого итальянского фильма. И музыка тоже характерная и поют там что-то такое. Мне даже понравилось, даже просмотрел краем глаза.

Что-то пришло мне в голову залезть в канал с этим шансоном. Мама мия. Там эти видео клепаются раз в день-два. Каждое - картинка с какой-то француженкой. У большинства просмотров мало, но есть и такие - с миллионами. И комментарии восторженные. Людям нравится. Ну и понятно, что это всё обман. Никаких француженок нет, музыку сгенерировали, слова сгенерировали.

Итальянцев тоже сгенерировали.

Теперь я стал бояться всего этого. Смотрю только видео 5-летней давности и ранее. Причём испугался того, что мне это понравилось. Что на ютубе петабайты трафика сгенерированного и люди это смотрят, комментируют (а может это уже и не люди). Это же анти-утопия какая-то, господа.

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

Страшно, очень страшно, куда мы катимся. Зачем петь, если можно сгенерировать и будут миллионы зрителей?

Перемещено hobbit из talks

vbr
()

Не работает средняя кнопка в списке уведомлений

 

Чтобы открывать новую страницу в новой вкладке в фоновом режиме. Работает Ctrl+клик, но это неудобно.

vbr
()

Винда отстой

 

Снёс линукс, решил установить заново. С винды скачал ISO. Через Rufus записал в DD режиме. Загружаюсь, делаю dd if=/dev/sda bs=2048 count=467733 | sha256sum, не совпадает. То бишь этот Rufus мне видимо вирусов насувал на диск, вместо того, чтобы байты копировать. Скачал balenaEtcher, с ним даже загрузиться не получилось. Чёрт-те-что. Во всей винде нет ни одной тулзы, которая тупо байты копирует. Такое ощущение, что надо самому брать MSVC и писать цикл. Дожили.

vbr
()

В полку X серверов прибыло

 , , , ,

Phoenix это новый X сервер, написанный с нуля на Zig. Этот X сервер спроектирован для того, чтобы быть современной альтернативой серверу Xorg.

Тут (dec05eba.com).

Пока для практического применения не готов, но можно поглядывать на прогресс проекта.

vbr
()

Эксперименты с Rust в ядре закончились

 ,

На ежегодной встрече «Linux Kernel Maintainer Summit» разработчики обсудили тему экспериментов с Rust в ядре. Участники пришли к единому мнению, что Rust в ядре больше не является экспериментальным — теперь он является неотъемлемой частью. Таким образом, метка «экспериментальный» будет снята. Поздравляем всю команду Rust for Linux.

https://lwn.net/Articles/1049831/

vbr
()

Как использовать run0 вместо sudo?

 run0, ,

Предположим у меня есть sudoers файл вида

myuser myhost=(root) NOPASSWD: /usr/bin/pacman --sync --downloadonly --sysupgrade --refresh
myuser myhost=(root) NOPASSWD: /usr/bin/pacman --sync --refresh linux
myuser myhost=(root) NOPASSWD: /usr/bin/pacman --sync --refresh linux-lts
myuser myhost=(root) NOPASSWD: /usr/local/bin/offline-sysupgrade

который позволяет пользователю myuser выполнять на хосте myhost указанные команды с указанными аргументами, от имени суперпользователя, не вводя пароль.

Как настроить run0 похожим образом? В интернете почему-то не нашёл никаких инструкций.

vbr
()

Работает ли тренировка аккумулятора?

 

Есть у меня старый ноутбук, у которого, кажется, убили аккумулятор его неправильным использованием (использование на 5-10%, потом зарядка до 20% и тд).

Он лежал несколько месяцев на полке, я его попытался включить кнопкой и никакой реакции не последовало. Я вставил зарядное устройство и он сразу включился и показал 60% батареи.

Я его зарядил до 100%, оставив на ночь. С утра включил ютуб, отключил зарядное устройство и наблюдаю за процентами аккумулятора. До 50% он разряжался часа 3. После 50% процесс заметно ускорился. Сейчас показывает 13% и одного процента хватает на минуту. Я планирую его разряжать, пока процессор не отключится.

Собственно вопрос - поможет ли это откалибровать аккумулятор чему-либо внутри? Понятно, что у аккумулятора ёмкость такая, какая есть, но хотя бы отображать проценты хочется правильно. А также есть опасение, что если я дам высокую нагрузку, то аккумулятор не выдаст нужные токи и процессор просто может отключиться, даже показывая 50% батареи, например (у меня такое было на старом макбуке).

vbr
()

Chromium использует Wayland по умолчанию

 ,

Очередной гвоздь в гроб иксам. До недавнего времени Chromium при запуске использовал X11 (т.е. работал под Xwayland), и требовал передачи флага --ozone-platform-hint=auto для полноценной работы под Wayland. А сегодня проверил - всё, теперь по умолчанию под Wayland. Chromium готов к светлому будущему.

PS я правда никаких отличий не увидел, ну да ладно, наверное они есть.

PPS теперь осталось дождаться аппаратной поддержки кодирования и декодирования видео-потоков, включенной по умолчанию, которые в Windows работают уже лет 20, ну да ладно, дождёмся и этого. А пока --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoEncoder наше всё.

vbr
()

Альфа версия дистрибутива KDE Linux

 ,

Анонс, домашняя страничка.

KDE Linux — это новая операционная система, предназначенная для повседневного использования, которая демонстрирует Plasma и программное обеспечение KDE в лучшем свете и использует современные технологии.

Кто уже пробовал?

vbr
()

Буфер обмена не всегда работает

 ,

Запускаю Android Studio с флагом -Dawt.toolkit.name=WLToolkit. Вроде это запускает её, как нативное wayland приложение.

Копирую что-нибудь из неё. Открываю GNOME Text Editor. Пытаюсь вставить, не срабатывает. И даже пункт Paste не активен совсем.

Открываю терминал, пишу wl-paste - он выводит то, что я скопировал.

Пишу wl-paste | wl-copy, переключаюсь на GNOME Text Editor, всё внезапно начинает работать.

Я сейчас на 100% не уверен, но кажется оно иногда таки работает как надо, а вот сейчас не работает.

Почему такое происходит? Кто виноват, и что делать?

Перемещено hobbit из general

vbr
()

Почему pipewire такой сложный?

 , ,

Захотел написать простейшую программу, которая будет считывать звук с микрофона. Как-то очень сложно получилось, это тупо абсолютный минимум, чтобы просто печатать сэмплы в stdout:

#include <pipewire/pipewire.h>
#include <spa/param/audio/format-utils.h>
#include <stdio.h>

struct stream_data {
  struct pw_stream *stream;

  enum spa_audio_format audio_format;
};

static void main_loop_signal(void *data, int signal_number);

static void stream_param_changed(void *data, uint32_t id, const struct spa_pod *param);

static void stream_param_format_changed(void *data, const struct spa_pod *param);

static void stream_process(void *data);

int main(int argc, char *argv[]) {
  pw_init(&argc, &argv);

  struct pw_main_loop *main_loop = pw_main_loop_new(NULL);

  struct pw_loop *loop = pw_main_loop_get_loop(main_loop);

  pw_loop_add_signal(loop, SIGINT, main_loop_signal, main_loop);
  pw_loop_add_signal(loop, SIGTERM, main_loop_signal, main_loop);

  struct pw_properties *stream_properties = pw_properties_new(PW_KEY_MEDIA_TYPE, "Audio", PW_KEY_MEDIA_CATEGORY,
                                                              "Capture", PW_KEY_MEDIA_ROLE, "Accessibility", NULL);

  struct pw_stream_events stream_events = {
      .version = PW_VERSION_STREAM_EVENTS,
      .param_changed = stream_param_changed,
      .process = stream_process,
  };

  struct stream_data stream_data;

  struct pw_stream *stream = pw_stream_new_simple(loop, "tuktuk", stream_properties, &stream_events, &stream_data);
  stream_data.stream = stream;

  const struct spa_pod *stream_connect_params[1];

  uint8_t spa_pod_builder_buffer[1024];
  struct spa_pod_builder spa_pod_builder = SPA_POD_BUILDER_INIT(spa_pod_builder_buffer, sizeof(spa_pod_builder_buffer));
  struct spa_audio_info_raw spa_audio_info_raw = SPA_AUDIO_INFO_RAW_INIT(.format = SPA_AUDIO_FORMAT_UNKNOWN);
  stream_connect_params[0] = spa_format_audio_raw_build(&spa_pod_builder, SPA_PARAM_EnumFormat, &spa_audio_info_raw);

  pw_stream_connect(stream, PW_DIRECTION_INPUT, PW_ID_ANY, PW_STREAM_FLAG_AUTOCONNECT, stream_connect_params,
                    sizeof(stream_connect_params) / sizeof(stream_connect_params[0]));

  pw_main_loop_run(main_loop);

  pw_main_loop_destroy(main_loop);

  pw_deinit();
}

static void main_loop_signal(void *data, int signal_number) {
  struct pw_main_loop *main_loop = data;
  pw_main_loop_quit(main_loop);
}

static void stream_param_changed(void *data, uint32_t id, const struct spa_pod *param) {
  switch (id) {
    case SPA_PARAM_Format:
      stream_param_format_changed(data, param);
      break;
  }
}

static void stream_param_format_changed(void *data, const struct spa_pod *param) {
  uint32_t media_type;
  uint32_t media_subtype;
  if (spa_format_parse(param, &media_type, &media_subtype) < 0) {
    fprintf(stderr, "Failed to parse format");
    return;
  }

  if (media_type != SPA_MEDIA_TYPE_audio || media_subtype != SPA_MEDIA_SUBTYPE_raw) {
    fprintf(stderr, "stream_param_format_changed media_type=%u media_subtype=%u\n", media_type, media_subtype);
    return;
  }

  struct spa_audio_info_raw audio_info_raw;
  spa_format_audio_raw_parse(param, &audio_info_raw);

  enum spa_audio_format audio_format = audio_info_raw.format;

  if (audio_format != SPA_AUDIO_FORMAT_DSP_F32) {
    fprintf(stderr, "stream_param_format_changed audio_format=%d\n", audio_format);
  }
}

static void stream_process(void *data) {
  struct stream_data *stream_data = data;
  struct pw_stream *stream = stream_data->stream;

  struct pw_buffer *pw_buffer = pw_stream_dequeue_buffer(stream);

  if (pw_buffer == NULL) {
    pw_log_warn("out of buffers: %m");
    return;
  }

  struct spa_buffer *spa_buffer = pw_buffer->buffer;

  struct spa_data *spa_data = &spa_buffer->datas[0];

  struct spa_chunk *spa_chunk = spa_data->chunk;

  float *samples = spa_data->data;
  uint32_t sample_count = spa_chunk->size / sizeof(float);

  for (uint32_t i = 0; i < sample_count; i++) {
    printf("%f\n", samples[i]);
  }

  pw_stream_queue_buffer(stream, pw_buffer);
}

Почему всё так сложно? Должно же быть проще. Зачем аудио-библиотеке выдумывать какие-то main loop-ы, это же не её дело. Почему такие хитрые API. Почему конфигурация через строки. Сложно, очень сложно, надо проще. И все хвалят этот pipewire. А я вот не хвалю, мне не понравилось.

Ещё добавлю, что документации там вообще около нуля. Вот наглядный пример: pw_main_loop_new

Что делает функция pw_main_loop_new? «Create a new main loop.». Да что вы говорите. Что она возвращает? «a newly allocated Main Loop». Да что вы говорите. А бывают ли ошибки? Ой, не написано. А что передаётся в параметре props? Ой, не написано. И это ещё хорошо документированная функция, в куче других и того нет.

vbr
()

Линукс скоро перестанет загружаться

 ,

LWN: Linux and Secure Boot certificate expiration

Старые дистрибутивы, у которых shim подписан старым микрософтовским ключом, перестанут загружаться этой осенью, т.к. сертификаты протухнут.

Я, кстати, не понимаю, почему, ну да ладно, не суть.

В общем после 11 сентября ждите небольшого наплыва товарищей с проблемами и готовьтесь советовать отключить secure boot.

vbr
()

Найм в IT всё-таки мёртв

 

Намедни на хабрахабре появилась любопытная статья Найм в IT всё-таки мёртв, вызвавшая большое число комментариев. Если вкратце - то она констатирует сложность поиска новой работы в IT сегодня. В комментариях многие люди, как в России так и за рубежом подтверждают это явление.

Как я понимаю, если говорить про заграницу, то там фактически идёт экономический кризис. Во время ковида в экономику вбросили много печатных денег, что разогнало инфляцию. А также наняли много работников в IT. Далее для сдерживания инфляции поднимали ставку, что увеличило проценты по кредитам для юрлиц. Компании теперь вынуждены сокращать расходы, чтобы платить по кредитам, в том числе увольняя людей.

В России, конечно, своя специфика: часть IT-шников уехала из-за войны, процессы импортозамещения вроде как должны увеличивать спрос на IT, но тем не менее графики в статье выше никуда не деваются, то бишь в целом явление похожее.

Ещё один интересный фактор это замена IT-шников на ИИ. На мой взгляд пока это скорей теоретические опасения. ИИ совсем недавно начал показывать серьёзные результаты, я не думаю, что он влияет на число вакансий, это история для грядущих годов. Но тоже фактор…

Что вы про всё это думаете и когда наступит оттепель на рынке IT-вакансий?

vbr
()

Asterinas: Linux-совместимое ядро

 asterinas,

Из самого сердца Китая, Южного Университета Наук и Технологий (SUSTech) города Шэньчжэня, родился проект Asterinas. Совместимый с ядром Linux на уровне ABI, написанный на Rust, основанный на архитектуре, которую авторы называют «framekernel», сочетающей в себе плюсы монолитного и микроядерного дизайна.

Ядро ядра, простите за каламбур, написано на unsafe Rust и представляет из себя небольшую, но достаточно функциональную библиотеку, которая реализует все нужные абстракции. Это аналог микроядра. Остальная часть ядра написана на safe Rust и использует эту библиотеку. Это аналог сервисов для микроядра. Но в данном случае всё ядро выполняется в одном адресном пространстве на одном уровне привилегий. Таким образом вызовы между этими частями не вызывают накладных расходов, которые типичны для микроядер, связанных с переключением контекста процессора. Но в то же время гарантии, которые даёт компилятор safe Rust, дают стабильность, которая, традиционно, достигалась разграничением кода на аппаратном уровне и была лишь прерогативой микроядер.

Ну а совместимость с ядром Linux на уровне ABI позволяет использовать любой софт, скомпилированный для Linux.

Asterinas был анонсирован в начале 2024 года под свободной лицензией Mozilla Public License. В настоящий момент проект активно разрабатывается студентами ряда китайских университетов и поддерживает 206 из 368 системных вызовов Linux.

Подробней на английском языке почитать можно тут: LWN: Asterinas: a new Linux-compatible kernel project

Конечно пока проект находится на ранней стадии разработки, и в целом является скорей академическим проектом, но мне показалась очень интересной описанная архитектура. Поистине, Rust открывает новые страницы в казалось бы несвязанных с ним областях.

vbr
()

Свободный Android - всё

 , ,

Reddit: AOSP project is coming to an end

Информация от разработчиков GrapheneOS: Android 16 закрыл репозитории Pixel. AOSP будет закрыт. Официальный Android закрывает исходники.

vbr
()

Зачем запускать приложение под wayland?

 

Есть некоторые приложения, к примеру chromium, vscode, которые можно запускать как под X, так и под wayland. Например по умолчанию chromium запускается под X, но если запускать его с параметром --ozone-platform-hint=auto, то запустится под wayland.

У меня последний GNOME, сам GNOME запущен под wayland, использую масштабирование 2x. Понятно, что через Xwayland оно всё работает в любом случае.

Собственно вопрос - а зачем это делать? Каких-то визуальных отличий в случае с chrome я не увидел. В случае с vscode не рисуется рамка окна под wayland (известный баг). Есть ли какие-то наблюдаемые отличия, которые я не замечаю? Может FPS в режиме wayland больше, или шрифты по-другому рисуются?

vbr
()

RSS подписка на новые темы