LINUX.ORG.RU

Сообщения Saakx

 
Форум — Development

Написать реалтаймовый сборщик мусора для Java

В чём такая проблема для сообщества?
Почему какая-то IBM может и сделала, компания Oracle хочет денег, а сообщество вообще не чешется?

Чисто теоретически ведь всё описано в научных статьях. Процессоры многопоточные доступны как никогда (слава Китаю).

Соберём больше мусора богу мусора. Хочу поговорить об этом.

Индустрия ушла в сторону ZGC и Shenandoah (они дают паузы до 1 мс, но не гарантируют их при любой нагрузке) из-за высоких накладных расходов Metronome. Но почему-то эти сборщики в Graal VM не используются.

«Идите в проект OpenJDK Shenandoah или Azul C4»
«В native-image (AOT-компиляция) Shenandoah официально пока не поддерживается, но команда GraalVM над этим активно работает»
говорят ИИ.

Как называть Shenandoah на русском языке? «Шенандоа»? Какие есть книжки на русском языке, которые можно прочитать?
«Shenandoah — это ~50 тысяч строк C++ кода» Если на C++ пишут, то могли бы переписать на Rust?

 , ,

Saakx
()
Форум — Linux-install

Не запускается VitruvianOS в VirtualBox

Сначала она у меня один раз запустилась, но не работала мышь. Я не забекапился, и начал «чинить». В общем, теперь не запускается совсем. Я попробовал всё, что мне насоветовал ИИ. И машину пересоздавал, и все параметры менял… Ничего не помогло.

Вот мой текущий конфиг:

procyon ~/.VirtualBox/Machines/VitruvianOS # VBoxManage showvminfo "VitruvianOS" --details
Name:                        VitruvianOS
Encryption:                  disabled
Groups:                      /
Platform Architecture:       x86
Guest OS:                    Other Linux (64-bit)
UUID:                        e2931360-70c8-4160-a6ac-1f6c642b76bd
Config file:                 /root/.VirtualBox/Machines/VitruvianOS/VitruvianOS.vbox
Snapshot folder:             /root/.VirtualBox/Machines/VitruvianOS/Snapshots
Log folder:                  /root/.VirtualBox/Machines/VitruvianOS/Logs
Hardware UUID:               e2931360-70c8-4160-a6ac-1f6c642b76bd
Memory size:                 2048MB
Page Fusion:                 disabled
VRAM size:                   8MB
CPU exec cap:                100%
CPUProfile:                  host
Chipset:                     ich9
Firmware:                    EFI
Number of CPUs:              2
HPET:                        enabled
PAE:                         enabled
Long Mode:                   enabled
Triple Fault Reset:          disabled
APIC:                        enabled
X2APIC:                      enabled
Nested VT-x/AMD-V:           disabled
CPUID overrides:             None
Hardware Virtualization:     enabled
Nested Paging:               enabled
Large Pages:                 enabled
VT-x VPID:                   enabled
VT-x Unrestricted Exec.:     enabled
AMD-V Virt. Vmsave/Vmload:   enabled
CPUID Portability Level:     0
Boot menu mode:              message and menu
Boot Device 1:               DVD
Boot Device 2:               HardDisk
Boot Device 3:               HardDisk
Boot Device 4:               Not Assigned
ACPI:                        enabled
IOAPIC:                      enabled
BIOS APIC mode:              APIC
Time offset:                 0ms
BIOS NVRAM File:             /root/.VirtualBox/Machines/VitruvianOS/VitruvianOS.nvram
UEFI Secure Boot:            disabled
RTC:                         UTC
IOMMU:                       None
Paravirt. Provider:          KVM
Effective Paravirt. Prov.:   KVM
State:                       powered off (since 2026-04-29T09:18:16.000000000)
Graphics Controller:         VBoxSVGA
Monitor count:               1
3D Acceleration:             disabled
Teleporter Enabled:          disabled
Teleporter Port:             0
Teleporter Address:          
Teleporter Password:         
Tracing Enabled:             disabled
Allow Tracing to Access VM:  disabled
Tracing Configuration:       
Autostart Enabled:           disabled
Autostart Delay:             0
Default Frontend:            
VM process priority:         default
Storage Controllers:
#0: 'IDE Controller', Type: PIIX4, Instance: 0, Ports: 2 (max 2), Bootable
  Port 0, Unit 0: UUID: 253b7fc8-3c81-4648-9a95-69f74d0f134a
    Location: "/srv/iso/VirtuvianOS/vitruvian-custom.iso"
#1: 'SATA Controller', Type: IntelAhci, Instance: 0, Ports: 30 (max 30), Bootable
  Port 0, Unit 0: UUID: c9322466-360a-4a3c-974e-01fa47e1094f
    Location: "/root/VirtualBox VMs/VitruvianOS/VitruvianOS.vdi"
NIC 1:                       MAC: 080027C4CC77, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 1 Settings:
        MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64),
        LocalhostReachable: 1, ForwardBroadcast: 0, EnableTFTP: 0
NIC 2:                       disabled
NIC 3:                       disabled
NIC 4:                       disabled
NIC 5:                       disabled
NIC 6:                       disabled
NIC 7:                       disabled
NIC 8:                       disabled
NIC 9:                       disabled
NIC 10:                      disabled
NIC 11:                      disabled
NIC 12:                      disabled
NIC 13:                      disabled
NIC 14:                      disabled
NIC 15:                      disabled
NIC 16:                      disabled
NIC 17:                      disabled
NIC 18:                      disabled
NIC 19:                      disabled
NIC 20:                      disabled
NIC 21:                      disabled
NIC 22:                      disabled
NIC 23:                      disabled
NIC 24:                      disabled
NIC 25:                      disabled
NIC 26:                      disabled
NIC 27:                      disabled
NIC 28:                      disabled
NIC 29:                      disabled
NIC 30:                      disabled
NIC 31:                      disabled
NIC 32:                      disabled
NIC 33:                      disabled
NIC 34:                      disabled
NIC 35:                      disabled
NIC 36:                      disabled
Pointing Device:             USB Tablet
Keyboard Device:             PS/2 Keyboard
UART 1:                      I/O address: 0x03f8, IRQ: 4, attached to pipe (server) '/tmp/vbox_serial', 16550A
UART 2:                      disabled
UART 3:                      disabled
UART 4:                      disabled
LPT 1:                       disabled
LPT 2:                       disabled
Audio:                       disabled
Audio playback:              disabled
Audio capture:               disabled
Clipboard Mode:              disabled
Clipboard file transfers:    disabled
Drag and drop Mode:          disabled
VRDE:                        enabled (Address 0.0.0.0, Ports 3390, MultiConn: off, ReuseSingleConn: off, Authentication type: null)
Video redirection:           disabled
VRDE property               : TCP/Ports  = "3390"
VRDE property               : TCP/Address = <not set>
VRDE property               : VideoChannel/Enabled = <not set>
VRDE property               : VideoChannel/Quality = <not set>
VRDE property               : VideoChannel/DownscaleProtection = <not set>
VRDE property               : Client/DisableDisplay = <not set>
VRDE property               : Client/DisableInput = <not set>
VRDE property               : Client/DisableAudio = <not set>
VRDE property               : Client/DisableUSB = <not set>
VRDE property               : Client/DisableClipboard = <not set>
VRDE property               : Client/DisableUpstreamAudio = <not set>
VRDE property               : Client/DisableRDPDR = <not set>
VRDE property               : H3DRedirect/Enabled = <not set>
VRDE property               : Security/Method = "TLS"
VRDE property               : Security/ServerCertificate = "/root/.VirtualBox/Machines/VitruvianOS/VRDEAutoGeneratedCert.pem"
VRDE property               : Security/ServerPrivateKey = "/root/.VirtualBox/Machines/VitruvianOS/VRDEAutoGeneratedPrivateKey.pem"
VRDE property               : Security/CACertificate = <not set>
VRDE property               : Audio/RateCorrectionMode = <not set>
VRDE property               : Audio/LogPath = <not set>
OHCI USB:                    disabled
EHCI USB:                    disabled
xHCI USB:                    disabled
USB Device Filters:          <none>
Bandwidth groups:            <none>
Shared folders:              <none>
Recording status:            stopped
Recording enabled:           no
Recording screens:           1
 Screen 0:
    Enabled:                 yes
    ID:                      0
    Record video:            yes
    Record audio:            no
    Destination:             File
    File:                    /root/.VirtualBox/Machines/VitruvianOS/VitruvianOS-screen0.webm
    Options:                 videocodec=libvpx-vp9
    Video dimensions:        1024x768
    Video rate:              512kbps
    Video FPS:               25fps
* Guest:
Configured memory balloon:   0MB

Вот что пишет ядро при загрузке:

[FAILED] Failed to mount run-lock.mount - Legacy Locks Directory /run/lock.
  13.204350] systemd[1]: Failed to mount run-lock.mount - Legacy Locks Directory /run/lock.
[FAILED] Failed to mount dev-hugepages.mount - Huge Pages File System.
[FAILED] Failed to mount dev-mqueue.mount - POSIX Message Queue File System.
[FAILED] Failed to mount sys-kernel-tracing.mount - Kernel Trace File System.
[FAILED] Failed to mount sys-fs-fuse-connections.mount - FUSE Control File System.
  13.211277] systemd[1]: Failed to mount dev-hugepages.mount - Huge Pages File System.
  13.211794] systemd[1]: Failed to mount dev-mqueue.mount - POSIX Message Queue File System.
  13.212299] systemd[1]: Failed to mount sys-kernel-tracing.mount - Kernel Trace File System.
  13.212810] systemd[1]: Failed to mount sys-fs-fuse-connections.mount - FUSE Control File System.
[FAILED] Failed to mount sys-kernel-debug.mount - Kernel Debug File System.
  13.214310] systemd[1]: Failed to mount sys-kernel-debug.mount - Kernel Debug File System.
[FAILED] Failed to start systemd-remount-fs.service - Remount Root and Kernel File Systems.
  13.259054] systemd[1]: Failed to start systemd-remount-fs.service - Remount Root and Kernel File Systems.

Вот что бывает, если загрузиться в командую строку от recovery shell (пароль live):

root@virtuvian:~# mount -o remount,rw /
Can't open Nexus IPC
root@virtuvian:~#

 ,

Saakx
()
Форум — Linux-hardware

Как мы в Linux узнаём связи между ядрами процессора?

«Расстояние между ядрами определяется количеством переходов по кольцевой шине. Переход на соседнюю остановку на кольце (ring stop) занимает 1 такт.

Дополнительная задержка в 5 тактов добавляется, если для связи нужно пересечь буферный свитч между левым и правым кольцом.

Без точной карты процессора мы не можем с уверенностью сказать, находятся ли ядра 0 и 9 на одном кольце или на разных.»

«В сложных системах одна NUMA-нода может включать несколько колец, каждое кольцо может обслуживать отдельный кластер, но все они будут частью одной NUMA-ноды. В этом случае задержка доступа к памяти внутри NUMA-ноды может различаться в зависимости от расположения ядер относительно контроллера памяти.»

 ,

Saakx
()
Форум — Linux-hardware

Сборка, проц+материнка+память

16990 ₽, Процессор: AMD Ryzen 5 9600X
   (потому что AVX-512 и в Zen 5 в один цикл в отличие от Zen 4)
3243 ₽, TRPA120SE, Thermalright Peerless Assassin 120 SE Dual Tower PWM, 6 трубок, AM5
   (случайным образом выбранный охладитель)
8399 ₽, Материнка: Sapphire B650M-E
   (потому что два места для NVMe 2280)
13999 ₽, Память: KF556C36BBE-8, Kingston Fury Beast Black AMD
   (потому что тайминги 36 - 38 - 38, 5600 МГц, DDR5)
Видеокарта? неясно, нужна ли она для запуска
Сетевая карта? на материнке Realtek RTL8125BG, 2.5 Гбит/с, умеет ли её linux - не знаю.
99000 ₽ 4 SATA - подключать диски 16T по 25 т.р.
Корпус не нужен, приклею скотчем к стенам.
Кабели тоже не нужны.
4000 ₽, Питание Corsair hx 750i
   (потому что USB-мониторинг)
SSD-NVMe не нужны (нет денег)

всего без дисков
16990+3243+8399+13999*2+4000=60630

Требования:
 - AVX-512 без «двойной прокачки» (double-pumping)
 - минимизировать цену
 - минимум два NVMe (вдруг захочу swap, а местные без RAID запрещают)

Вопросы - оно запустится? можно ли дешевле? Какие требования я не выписал, чтобы мне вместо этого не предлагали Orange Pi 5 16Gb

 

Saakx
()
Форум — General

Alpine Linux vs Gentoo

По идее, у Gentoo выше потенциал быть компактным дистрибутивом, чем у Alpine Linux. У Gentoo прямо в философии дедупликация пакетов (в том смысле, что не надо bundling). И USE-флаги ещё.
Тем не менее, авторы Alpine Linux умудряются делать дистрибутивы меньшего размера.

Противоречие…

 , ,

Saakx
()
Форум — Linux-hardware

Диски по 32TB - ST32000NM004K

Работают ли в Linux, брать, не брать, не дорого ли?
(127..155 тыр/шт)

Я бы купил диски поменьше, но их же нет дешевых (удельно на TB)

 ,

Saakx
()
Форум — Desktop

Группы вкладок в Firefox

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

И по-идее что-то такое должны были делать Window Manager-ы. Но я не изучал вопрос и не знаю, бывают ли они такие, и как это всё теперь должно работать под Wayland.

То есть, таск-менеджера (панели окон снизу, или как там это называется) мне недостаточно. Он группирует окна по-своему. А мне надо, чтобы группировал по-моему.

 ,

Saakx
()
Форум — Desktop

Календарь c праздниками [хочу].

У меня Debian 13, не знаю, какая DE (неважно мне это никогда было).

( читать дальше... )

Вопрос: какой пакет мне проинсталлировать, чтобы календарь стал отображать праздники?

Мне надо знать - 13 апреля это рабочий день, или как? по производственному календарю.

ИИ: «У вас уже установлен отличный базовый вариант — GNOME Calendar. Он станет хорошим решением, если вы добавите в него специальный календарь с праздниками.

Найдите в интернете файл с производственным календарем РФ за 2026 год в формате .ics

https://ics.calendarlabs.com/65/da880e57/Russia_Holidays.ics »

 , ,

Saakx
()
Форум — Development

Функциональные линзы

Расскажите, пожалуйста, про них.

Мне не ясно, как они удерживают в поле зрения объект целиком.

Я пытался попытать ИИ:

Термин «функциональные линзы» (или просто линзы) пришел из математики (теория категорий) и стал популярен в функциональном программировании.

Линзы решают фундаментальную проблему функционального программирования — доступ к данным без мутаций. Они позволяют писать код, который:  
- Декларативен: программист говорит ЧТО изменить (почтовый индекс пользователя), а не КАК (скопируй юзера, потом скопируй адрес, потом...).  
- Композируем: Маленькие линзы (город, улица) собираются в большие (адрес целиком).  
- Типобезопасен: Если удалить поле из модели, линза сломается на этапе компиляции, а не в рантайме.  

Линза — это композиция двух функций для конкретного поля:  
Getter (view): Функция, которая достает значение поля из структуры.  
Setter (set/over): Функция, которая берет структуру и новое значение, и возвращает новую структуру с измененным полем.  
Объединив их в пару, мы получаем линзу: объект, который «смотрит» в конкретную часть данных (фокус).

Основные операции:  
view: Посмотреть, что лежит в фокусе (просто получить значение)  
set: Положить новое значение (Вернет новый объект с измененным полем  
over: Применить функцию к значению в фокусе.

Кроме линз есть целое семейство оптических инструментов (optics).  
Линза — это просто «глаз», который смотрит в поле структуры.  
Призмы (Prism) умеет «пробовать» достать данные, а если их нет — ничего не делать или переключиться на другой путь. Работают с типами-суммами (например, Maybe, Either или своими вариантами).  
Траверсалы (Traversal) позволяют фокусироваться сразу на нескольких элементах внутри структуры (например, на всех элементах списка, на всех значениях в Map, на всех полях определенного типа в записи).  
Индексированные оптики (Indexed Optics) позволяют при фокусировке на элементе коллекции также получать его индекс/ключ.  
Изо (Iso) представляют собой взаимно-однозначное преобразование между типами, которое можно обратить.  

композиция оптик — их все можно соединять друг с другом. 

Комбинаторная логика - это система, эквивалентная лямбда-исчислению (по выразительной силе), но в ней нет переменных и связывания (лямбда-абстракции). Она использует базовые комбинаторы (например, S, K, I - подстановки, константы, идентичность).

Но ничего не понял, из того, что он там понаписал.

Что я хочу сделать: я хочу загрузить файл в память, распарсить его, а затем некоторые части заменить (например некоторые слова выделить жирным в HTML-тексте), после чего весь модифицированный файл сохранить.

Если примеры, то мне на Java будет понятнее всего.

 

Saakx
()
Форум — Linux-install

Gradle - 4.4.1 от 2012-12-21 в 2026-м году

$ gradle -v
openjdk version "11.0.26" 2025-01-21
OpenJDK Runtime Environment (build 11.0.26+4-post-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 11.0.26+4-post-Debian-1deb11u1, mixed mode, sharing)
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/usr/share/java/groovy-all.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

------------------------------------------------------------
Gradle 4.4.1
------------------------------------------------------------

Build time:   2012-12-21 00:00:00 UTC
Revision:     none

Groovy:       2.4.21
Ant:          Apache Ant(TM) version 1.10.15 compiled on September 29 2024
JVM:          11.0.26 (Debian 11.0.26+4-post-Debian-1deb11u1)
OS:           Linux 6.12.63+deb13-amd64 amd64

Дебиан не 11, это просто версия Java выбрана так:

lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 13 (trixie)
Release:        13
Codename:       trixie

Во всём виноваты разработчики gradle:
https://lists.gnu.org/r/guix-devel/2024-05/msg00115.html

Ведут себя, как авторы roslyn из Микрософта (а микрософт замазан в деле Э.)

Можете ничего не отвечать.


LLM: «Можно подключить специальный репозиторий (например, от Роберто Галиндо), где лежат свежие версии»

«или поставьте свежую через SDKMAN»

При установке этой старой версии 4.4.1 тянется 80 пакетов,
зачем-то среди них есть Ant
(по-идее надо собирать gradle так, чтобы при помощи него можно было собирать всё остальное).

Если по месяцу на переопакечивание каждой библиотеки,
то за семь лет можно было всё опакетить.
Но с 2012 до 2026 года прошло 14 лет (вдвое больше)
и пока никак…

 ,

Saakx
()
Форум — Linux-hardware

Запуск ИИ без видеокарт

На странице
https://www.altlinux.org/AI

описывается как запустить ollama
(как запустить вторую я не понял из описания)

Вопрос:
а сколько и каких им надо ресурсов?
Какая модель самая маленькая, сколько надо остальным?

Кто пробовал - поделитесь, пожалуйста, личным опытом,
если вы, конечно, не фанат крутого железа.

 ,

Saakx
()
Форум — Talks

У меня проблема - не хватает слов.

Данные - это зарегистрированная информация
(ц) Данные

зарегистрированная - это как? то же самое что «отраженная» и «осмысленная» одновременно? «запомненная»?

Почему регистрируется информация, а не что-нибудь другое?
Извещения, ощущения, измерения например.

Информация - обработанные, организованные и связанные данные
(ц) Информация

Меня учили, что информация это мера неопределённости. Если она мера, то не надо на неё ссылаться при определении данных. Данное мне яблоко - оно тоже данное.

Данные могут быть как на носителе, так и сами-по-себе. «Абстрактные данные» не годится, неоднозначное. Для этих двух разных случаев нужно два слова. Яблоко - оно разве на носителе? Оно само носитель. Надпись - она тоже и не абстрактные данные, но и не носитель (а только его часть).

Считаю, что нужно больше разных слов (или хотя бы словосочетаний). Так, как есть - ничего не понятно.

Если мне нужно описать формат данных, то что мне делать?

Почему Semantic Web существует, а википедия его не использует? (или использует, но мне об этом неизвестно?)
Есть же стандарты всякие вроде JSON‑LD.

 , ,

Saakx
()
Форум — Talks

Распишите экономику сервиса типа Amazon Glacier в России

Сколько будет стоить подобная услуга (хранения данных), и предоставляет ли её кто-нибудь из хостеров, и если нет, то почему?

Ранее на сайте:
2025-01-12, @yvv1, Какие облачные хранилища вы используете? (комментарий)
2022-10-14, @mydibyje, Какой яп лучше всего изучить? (комментарий)
2021-01-01, 🪦boowai, Я отдаю 1 ТБ - мне отдают 1ТБ (комментарий)
2015-12-04, 🪦KRoN73, Какие децентрализованные (не федеративные) p2p-файловые системы или хранилища умеют хранить мутабельные данные по ключу? (комментарий)
2014-07-30, @quantum-troll, ipfs -- распределённая файловая система на идеях Git и BitTorrent (комментарий)

https://en.wikipedia.org/wiki/Peer-to-peer_file_sharing

== Filecoin ==
https://github.com/filecoin-project/filecoin-docs
https://en.wikipedia.org/wiki/Filecoin
https://github.com/filecoin-project/go-storage-miner
Go 82.8% Makefile 17.2%
a blockchain-based cooperative digital storage and data retrieval method, an open protocol and uses a blockchain to record participation in the network.
== Storj ==
https://github.com/storj/storj
Go 79.2%
an S3-compatible platform and suite of distributed applications that allows you to store data in a secure and distributed manner. Your files are encrypted, broken into little pieces and stored in a global distributed network of computers.
== Sia ==
https://github.com/SiaFoundation
Go TypeScript Ruby Rust Vue
a pure decentralized peer-to-peer network. Siacoin.
== MaidSafe ==
https://github.com/maidsafe/autonomi
Rust 93.9% Shell 2.2% Python 1.8% JavaScript 1.8%
Autonomi is a fully autonomous data and communications network that provides:
- Lifetime storage with one-time payment
- Private by design with multilayered encryption
- Blockchainless data architecture
- Decentralized infrastructure built from everyday devices
- Content-addressable storage using Kademlia and libp2p
== arweave ==
https://github.com/ArweaveTeam/arweave
Arweave is a distributed, cryptographically verified permanent archive built on a cryptocurrency that aims to, for the first time, provide feasible data permanence. By leveraging our novel Blockweave datastructure, data is stored in a decentralised, peer-to-peer manner where miners are incentivised to store rare data.

 , ,

Saakx
()
Форум — General

Не смог найти edk2 (из TianoCore) в debian 13

В генте нашел, а в дебиане не нашел.

Искал так (debian.org)

Есть какой-то другой пакет (с исходниками):
https://packages.debian.org/trixie/source/edk2
но мне непонятно, почему он не нашелся сразу

https://packages.debian.org/trixie/efi-shell-x64
что с этим пакетом делать? Установить, а дальше?

dpkg -L efi-shell-x64
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/efi-shell-x64
/usr/share/doc/efi-shell-x64/changelog.Debian.gz
/usr/share/doc/efi-shell-x64/copyright
/usr/share/efi-shell-x64
/usr/share/efi-shell-x64/shellx64.efi

и это не то, что мне надо. Обещали-то библиотеки, хидеры, утилиты…

apt source edk2
извлекает всё в текущую директорию,
и это не как в Gentoo

«в соответствии с FHS чаще выбирают один из трёх мест:

  • /usr/src — для системных исходников и модулей ядра (только root). Подходит, если хотите хранить исходники пакетов, относящихся к системе.
  • /var/cache/apt/archives или /var/tmp — временные файлы сборки; /var/tmp для долгоживущих временных данных, /tmp для кратковременных.
  • /usr/local/src или ~/src — для локально собранных пакетов пользователем (рекомендуется для пользовательских сборок).»

Ну, допустим, /usr/local/src/edk2

Но я не собирался его компилировать руками!
https://github.com/tianocore/tianocore.github.io/wiki/Build-Instructions/
https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC
https://github.com/tianocore/tianocore.github.io/wiki/Common-instructions

. edksetup.sh
Loading previous configuration from /usr/local/src/edk2/edk2-2025.02/Conf/BuildEnv.sh
WORKSPACE: /usr/local/src/edk2/edk2-2025.02
EDK_TOOLS_PATH: /usr/local/src/edk2/edk2-2025.02/BaseTools
CONF_PATH: /usr/local/src/edk2/edk2-2025.02/Conf

И для сборки ему чего-то нехватает:

"gcc" -MMD -MF /usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/CryptoPkg/Library/OpensslLib/OpensslLibCrypto/OUTPUT/openssl/crypto/bio/bss_core.obj.deps @/usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/CryptoPkg/Library/OpensslLib/OpensslLibCrypto/OUTPUT/cc_resp.txt -c -o /usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/CryptoPkg/Library/OpensslLib/OpensslLibCrypto/OUTPUT/openssl/crypto/bio/bss_core.obj  /usr/local/src/edk2/edk2-2025.02/CryptoPkg/Library/OpensslLib/openssl/crypto/bio/bss_core.c
/usr/local/src/edk2/edk2-2025.02/EmulatorPkg/Unix/Host/X11GraphicsWindow.c:18:10: fatal error: X11/extensions/XShm.h: Нет такого файла или каталога
   18 | #include <X11/extensions/XShm.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [GNUmakefile:379: /usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/EmulatorPkg/Unix/Host/Host/OUTPUT/X11GraphicsWindow.obj] Ошибка 1


build.py...
 : error 7000: Failed to execute command
        make tbuild [/usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/EmulatorPkg/Unix/Host/Host]


build.py...
 : error F002: Failed to build module
        /usr/local/src/edk2/edk2-2025.02/EmulatorPkg/Unix/Host/Host.inf [X64, GCC, DEBUG]

- Failed -
Build end time: 08:28:58, Nov.03 2025
Build total time: 00:00:24

Допустим я доустановил что-то и собирал EDK II, вот
find /usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64 -maxdepth 1 -iname ‘*.efi’

...
./EbcDxe.efi
...
./UefiPxeBcDxe.efi
...

Последние установленные пакеты:
grep "status installed" /var/log/dpkg.log | grep "$(date +%Y-%m-%d)"

2025-11-03 05:03:48 status installed efi-shell-x64:all 2025.02-8
2025-11-03 08:19:03 status installed acpica-tools:amd64 20250404-1
2025-11-03 08:19:03 status installed nasm:amd64 2.16.03-1
2025-11-03 08:19:03 status installed python-is-python3:all 3.13.3-1
2025-11-03 08:19:03 status installed man-db:amd64 2.13.1-1
2025-11-03 08:30:51 status installed libxfixes-dev:amd64 1:6.0.0-2+b4
2025-11-03 08:30:51 status installed libxext-dev:amd64 2:1.3.4-1+b3
2025-11-03 08:30:51 status installed libxrender-dev:amd64 1:0.9.12-1
2025-11-03 08:30:51 status installed libxrandr-dev:amd64 2:1.5.4-1+b3
2025-11-03 08:30:53 status installed man-db:amd64 2.13.1-1

find . -iname HelloWorld.efi

./Build/EmulatorX64/DEBUG_GCC/X64/HelloWorld.efi
./Build/EmulatorX64/DEBUG_GCC/X64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/HelloWorld.efi
./Build/EmulatorX64/DEBUG_GCC/X64/MdeModulePkg/Application/HelloWorld/HelloWorld/DEBUG/HelloWorld.efi

/usr/local/src/edk2/edk2-2025.02/Build/EmulatorX64/DEBUG_GCC/X64/MdeModulePkg/Application/HelloWorld/HelloWorld/OUTPUT/HelloWorld.efi

«Если для сборки укажешь целевую архитектуру EBC, то вместо HelloWorld.efi под X64 получишь HelloWorldEbc.efi.»

Ранее на сайте:
2025-10-05, @lesopilorama, Читал про UEFI, много думал.
2018, @ncrmnt, tianocore

В интернете: 2013-11-13, icbook, Теория и практика EFI Byte Code, https://habr.com/ru/articles/201954/
(используют FASM для получения EBC и патчат файл-результат)

Про EBC:
https://github.com/tianocore/tianocore.github.io/wiki/EBC-FAQ
https://github.com/tianocore/tianocore.github.io/wiki/Tasks-Build-a-C-compiler-for-EBC
«EBC has a unique feature that is not found in other intermediate languages, natural indexing. Natural indexing has made compiler development for EBC notoriously difficult.»
«The original EBC compiler is the Intel C Compiler for EFI Byte Code. This compiler is very expensive ($955)»
https://github.com/yabits/llvm/tree/retrage/ebc
«LLVM backend for EFI Byte Code»
«Since LLVM 9.0, the LLVM linker now supports PE/COFF output»
«Rebasing his work up to the latest LLVM is the recommended starting point for any future work»
«Getting the compiler stable on Linux should be the first goal»

 ,

Saakx
()
Форум — Development

Полнотекстовый поиск и кодирование Хаффмана

Читал новость про Zim (linux.org.ru) и вот у меня какие галлюцинации:

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

То есть, надо взять поисковый запрос, пожать его по статической таблице Хаффмана в строку битов, и эту строку битов искать в сжатом бинарнике (блобе). В Intel много подходящих инструкций, можно многое распараллелить, так что процессор не должен стать узком местом, а скорость поиска должна возрасти (ценой энергозатрат, но кого это на десктопе волнует?)

Если что, китайцы такое уже придумали:
2008, Zhang Y & Pei Z. & Yang J. & Liang Y., Canonical Huffman code based full-text index, https://doi.org/10.1016/j.pnsc.2007.11.001
И евреи:
2005, Klein S.T. & Shapira D., Pattern matching in Huffman encoded texts, https://doi.org/10.1016/j.ipm.2003.08.008

 , ,

Saakx
()
Форум — Talks

Нужен нетекстовый редактор

Текст - это точка в пространстве суждений. Модификация текста - передвижение в пространстве суждений (если модификация частичная, содержащая ошибки, то это авария в процессе прыжка через гипертуннель).

Существует такая штука, как „методология” вообще, „методология науки” в частности. Ещё есть „языкознание” и „лингвистика” (но это неважно). Ещё есть науки о мышлении и разуме - „логика”, „когнитивистика” (часть психологии). В этих науках есть специальные концепты и понятия, позволяющие описывать содержимое мозгов в частности, и „пространство суждений” вообще.

Так вот, редактор должен позволять редактировать объекты классов, соответствующих понятиям методологии. Если в принципе есть «концепты», значит редактор должен вести реестр концептов. Если есть словоформы (или они лексемы?), то редактор должен вести алфавитное дерево словоформ. Если есть словосочетания, то редактор должен позволять создавать словосочетания из словоформ, связывать их так. И связывать словосочетания с концептами в понятия.

Какие есть примеры программ, авторы которых движутся в этом направлении (а не просто добавляют возможность редактировать гиперссылки в формате HMTL)?

Ранее на сайте: Порекомендуйте IDE для художественной литературы

UPD:
https://ru.wikipedia.org/wiki/Программа-ассистент_литератора
https://en.wikipedia.org/wiki/Comparison_of_word_processor_programs

https://ru.wikipedia.org/wiki/Storybook
Исходники:
v6 https://framagit.org/ostorybook/ostorybook6
v5 https://framagit.org/ostorybook/mainApp
v4 https://github.com/favdb/oStorybook

Я запустил этот storybook, так вот мне надо не такое. А какое мне надо я описал выше, и оно другое!

 , ,

Saakx
()
Форум — Talks

gpo.zugaina.org недоступен, ниоткуда

It’s not just you! gpo.zugaina.org is down.
Last updated: Oct 28, 2025, 9:39 AM

packages.gentoo.org не предлагать.

packages.gentoo.org это паршиво сделанный сайт, на котором даже список категорий посмотреть нельзя
https://packages.gentoo.org/categories/
даёт 404

Разные другие страницы про категории:
https://wiki.gentoo.org/wiki//etc/portage/categories
(это в какой файл вписывать категории)
https://devmanual.gentoo.org/profiles/categories/index.html
(это инструкция по вписыванию для разработчиков)
https://projects.gentoo.org/pms/8/pms.html#x1-170003.1.1
(это ссылка на пункт спецификации, которой нет в инструкции для разработчиков)
https://wiki.gentoo.org/wiki/Help:Categories
(это не те категории, это в «вики-категории», а мне нужны «portage-категории»)

https://devmanual.gentoo.org/ebuild-writing/misc-files/metadata/index.html#category-metadata
идея размещать несколько описаний для разных языков в одном файле идёт против идеологии gentoo. Добавление языка требует патчинга файла вместо простого деплоймента копированием.

Заходить надо на
https://packages.gentoo.org/categories
(без слеша)

Собственно мой вопрос: если есть программа с плагинами, то я могу сделать для неё отдельную категорию? Или для её плагинов? добавив название программы через „минус” к названию уже существующей категории? Например создавать категории dev-java-maven и dev-java-maven-plugins или не сто́ит? Говорят, что надо проконсультироваться в списке рассылки мейнтейнеров gentoo («Please consult the „gentoo-dev” mailing list before adding a new category»), но что-то не хочется, потому что нет гиперссылки на страницу как этими почтовыми рассылками пользоваться, где смотреть, где подписываться.

Существует ли какой нибудь новый поисковик по сторонним репозиториям, например
portage overlay repositories new observatory (porno.gentoo.org)
?

В web.archive.org последний снапшот от 2025-10-07.

Можно, конечно, ещё попробовать списаться с автором сайта:
mailto:ycarus@zugaina.org
но это было бы слишком сложно.

#деградация #разруха

UPD:

Sorry i'm at hospital for now and i dont have access to the provider account for now.
When i will be out, i will check what is the problem or restore a backup

Sorry
Ycarus 

 , ,

Saakx
()
Форум — Development

Как устроен Rust, почему он возник и нужен ли он?

Вбоквел к комментарию-оффтопику от @Chiffchaff

Rust появился на основе научной работы: как решить один конкретный класс ошибок в программах.

Какой DOI у этой работы?

LLM говорит:

1998-10-01, Clarke D.G. & Potter J.M. & Noble J., Ownership types for flexible alias protection, https://dl.acm.org/doi/10.1145/286936.286947

«Rust реализует родственную, но практично-инженерную систему владения и заимствований (ownership & borrowing) с похожими целями — статически обеспечивать безопасность памяти и отсутствие data races без сборщика мусора.»

2014-10-18, Matsakis N.D. & Klock F.S.II, The rust language, https://dl.acm.org/doi/10.1145/2663171.2663188
(там в публикации всего одна страница, 103-я, в сборнике конференции, ничего интересного, просто анонс)

2006, Hoare G., Rust
«Graydon created with OCaml while working at Mozilla, which officially sponsored the project in 2009.»
появился.
2011, компилятор на rust смог собрать сам себя
2015-05, Rust 1.0 (first stable release)
2021-02, Rust Foundation (создана)

Не сходится по датам, да и автор у языка не такой же как авторы в статье от 1998-10-01.

 ,

Saakx
()
Форум — Admin

Подружить NetworkManager и systemd-networkd?

Возможно ли это?

Что-нибудь сделать (указать настройки при конфигрурации перед сборкой NetworkManager), чтобы NetworkManager записывал настройки сети не куда попало, а в конфигурацию systemd-networkd.

https://ru.wikipedia.org/wiki/NetworkManager
«NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces (and a couple of other daemons)»

«программа network-manager-applet соответствует стандарту Freedesktop.org System Tray Protocol (работает GNOME, KDE, Xfce)»
Я не уверен про новые версии Gnome. У меня GNome classic на wayland и я никакой иконки про сеть нигде не вижу.

Ранее:
Networking best practices (скрипты vs NetworkManager vs systemd-networkd)

 , ,

Saakx
()
Форум — Linux-hardware

Лазерные проекторы для демонстраций

Вроде раньше рекомендовали надевать тёмные очки и соблюдать повышенную осторожность при работе с лазерами. А тут рраз, и лазером на стену проецируют изображение 1920x1200 (ViewSonic LSC601WU).

Как у них с перепрошивкой софта опенсорсным?

«Лазерно-фосфорная технология 3-го поколения со сроком службы до 30 000 часов»

Опасно ли это для глаз?

 , ,

Saakx
()

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