LINUX.ORG.RU

Форум

zlib-static vs LTO

Форум — Development

В арче имеется пакет zlib-static. Гуглю чё будет, если прилинковать его с включённм LTO. Нагуглил, что он собирается с -ffat-lto-objects, который

instructs the compiler to generate object files that contain both the standard native object code and the intermediate representation (IR) for LTO

При этом про сам zlib-static гуглится следующее:

When building it or linking against it with Link Time Optimization (LTO) enabled, adding -ffat-lto-objects to CFLAGS is required to ensure compatibility and prevent LTO-related issues.

ВОПРОС: В чём смысл этого требования? Разве если у меня при линковке включён только -flto, линкер сам не догадается выбрать IR? И что там за возможные «LTO-related issues»?

 , ,

dimgel
()

Кто в какие игры играет в 2026?

Форум — Games

Кто в какие игры играет в 2026? не обязательно новые, но интересно, в какие вообще?

 

rasonatention1
()

Похоже я нащупал как обуздать Firefox и скармливать ему чуть-чуть памяти

Форум — Desktop

Фокс конкретно достал своим прожорством. Шестнадцать гигов, а я постоянно вижу как всё свапится из-за этого гада. (и не гыкайте мне тут, все браузеры ведут себя одинаково) Ладно бы я что-то сложное делал. Но он явно не отпускает страницы из памяти, хотя уже и выставил кучу всяких уловок. Но вот что мне не давало покоя - этот гад видит сколько в компе памяти и не собирается останавливаться пока не выжрет всё. В результате все программы должны по стеночкам обходить. А тут вы со своими спорами про systemd. И придумал я гадкое, засунул фокса в персональную группу с ограничениями. Сделал так: Создал директорию ~/.config/systemd/user/app-firefox@.service.d/ В ней файл override.conf со следующим содержимым

[Service]
MemoryHigh=1.5G
MemoryMax=4G
MemorySwapMax=0

Перезапустил всё и стало хорошо на душе, фокс стоит на полтора гигах, как вкопанный. Но только включил ютуб, переключился на другое окно с другой вкладкой в другом фоксовском контейнере и всё дико тормозить стало. Я поднял до 2.5G, стало полегче, но всё равно, дойдёт до черты и тормоза лютые сразу. И тут я понял, что он смотрит куда-то в meminfo насчёт доступного рама, но не видит ограничений системды. И поэтому сходу влетает в ограничение, полагая, что все 16 гигов его. Тогда я создал фейковый ~/.fake_meminfo в домашней папке где заменил MemTotal: 4194304 kB и произошло чудо. Всё стало вполне сносно. Но вдруг внезапно он стал падать после нескольких видео на ютубе. Видимо недостаточно я ему наврал. Тога я попросил у ИИ сгенерить meminfo чтобы было похоже, что мы подходим к границе доступной памяти. Вот такой файл ~/.fake_meminfo в итогу получился

MemTotal:        4194304 kB
MemFree:          350000 kB
MemAvailable:     512000 kB
Buffers:           50000 kB
Cached:           600000 kB
SwapCached:            0 kB
Active:          2500000 kB
Inactive:         800000 kB
Active(anon):    2000000 kB
Inactive(anon):     4000 kB
Active(file):     500000 kB
Inactive(file):   800000 kB
SwapTotal:      15580020 kB
SwapFree:       15580020 kB
Dirty:              1000 kB
Writeback:             0 kB
AnonPages:       2000000 kB
Mapped:           400000 kB
Shmem:            150000 kB
Slab:             300000 kB
CommitLimit:    22656768 kB
Committed_AS:   15171448 kB
DirectMap4k:      800000 kB
DirectMap2M:     3000000 kB

а файл override.conf стал таким

[Service]
MemoryHigh=2.5G
MemoryMax=4G
MemorySwapMax=0

# "Обман" - подмена файла для Firefox
BindReadOnlyPaths=/home/pchelobiaka/.fake_meminfo:/proc/meminfo

И… иии… вроде работает. Полноценный Фокс с контейнерами, по собственной воле держит около 2 гигов и не больше.

Спешу поделиться наблюдением. Пробуйте кому интересно. И может что дельное подскажете.

Впервые в жизни придумал как использовать systemd. Хоть и можно было без него, но раз уж он есть, то пусть хоть что-то делает для меня полезное.

 , , ,

PcheloBiaka
()

для модератора в чем флуд на сайте ЛОР?

Форум — Linux-org-ru

написал ответ в тему на сайте ЛОР: Какую звуковую карту в PCIe 4.0 с 5.1 выходом купить для Linux?

Ответ на:

Спасибо. Интересно. Записал. Sound BlasterX AE-5 Plus

Пока кажется, что не смогу уговорить жабу на 16 000 рублей. Но может быть. Toxo2 ★★★★★ (12.03.26 16:15:10 GMT+04:00) автор топика Удаленный комментарий: Сообщение удалено Dimez по причине 4.7 Флуд (-7)

Пока кажется, что не смогу уговорить жабу на 16 000 рублей. Но может быть.

я написал:

ну так ты купи просто второй комп с интегрированной реалтек шд за 2-5 тыс руб и не парься вообще… как будто есть лучше… (или есть?)

тема новая, ответ вроде бы нормальный, почему флуд? меня специально пытаются завезти под бан? почему? нормальный же ответ и решение?

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

 

rasonatention1
()

Стоит ли начинать занимать embedded разработкой в 2026 году?

Форум — General

Стоит ли начинать занимать embedded разработкой в 2026 году? Если да то какие ресурсы использовать для обучения? Купил esp32 devkit v1 и много разных датчиков)

 

justmson
()

Существует ли опенсорс аналог Spring для С++?

Форум — Development

«Ну кроме того, что это модно-стильно-молодежно, могу сразу сказать, что как только вы им хоть немного овладеете — вы поймете сколько всякой разной работы вам теперь не приходится делать, и сколько всего берет на себя Spring. Можно написать пару десятков строк конфигов, написать парочку классов — и получится работающий проект. Но как только начинаешь задумываться сколько там всего находится «под капотом», сколько работы выполняется, и сколько пришлось бы писать кода, если делать такой же проект на голых сервлетах или на сокетах и чистой Java — волосы встают дыбом :)»

Прочитал я это и задался вопросом $subj.

Для шарпа существует Spring.NET.

 ,

Lusine
()

Два socat-а как сделать?

Форум — Admin

Что-то вроде следующего хочется получить:

socat TCP-LISTEN:30010,bind=192.168.0.1,reuseaddr,fork TCP:127.0.0.1:20010
socat TCP-LISTEN:30011,bind=192.168.72.1,reuseaddr,fork TCP:127.0.0.1:20011

То есть, чтобы все что валится на 30010 порт по адресу 192.168.0.1 редиректилось на 127.0.0.1:20010, а на 30011 порт по адресу 192.168.72.1 на 20011 порт локалхоста.

По отдельности каждая из команд нормально работает, но если завести одну, а потом другую (в любом порядке), то сообщение, что «Cannot assign requested address»

Возможно какой-то правильный синтаксис нужен в bind= и fork

Это вообще можно сделать?

 ,

praseodim
()

Vimium в Трекере

Форум — Linux-org-ru

Привет! А можно попросить кого-нибудь починить в трекере возможность ходить по ссылкам тредов?:)

А то сейчас вимиум генерит переходы только в разделы - https://disk.yandex.ru/i/pkw5SBq1xeo8xg

 

mega_venik
()

Golang HTTP Middleware

Форум — Development

Пошаговая инструкция понимания Golang HTTP Middleware.

Вариант №1:

  1. Надо представить сервер как процесс с STDIN/STDOUT.
  2. Надо понять что STDIN/STDOUT обслуживаются объектами созданными по лекалу интерфейсов. И названными r/w. Ну и порядок перевернут w,r в сигнатуре.
  3. Вот ту ключевое - обрабатывается ОДНОЙ ФУНКЦИЕЙ которую вызывают. ТОЧКА.
  4. А дальше расширить понимание, что Эту функцию можно вызывать каскадом.
  5. И последнее уже переходное, то MiddleWare КОНСТРУИРУЕТ функцию. По этому каждый этап MiddleWare Возвращает валидный ServerHTTP! Который либо Пишет сам. Либо завет чужой хендлер по замыканию.

Вариант №2:

  1. Представить HTTP сервер как UNIX Процесс с STDIN/STDOUT.
  2. Понять что STDIN и STDOUT обрабатываются через инстансы созданные по «чертежам интерфейсов». STDIN - Resquest, STDOUT - Response. (STDIN=Request=Read):(STDOUT=Response=Write).
  3. Запрос обрабатывается одной функцией. Точка.
  4. Расширить понимание, функцию можно вызывать каскадом.
  5. Middleware не функция для вызова, это функция которая ВОЗВРАЩАЕТ функцию для Вызова.

🎆 Отливаем в бронзе, лаконичная формула от Qwen:

Middleware в Go — это не хук. Это фабрика функций.

Она принимает Handler, возвращает Handler, а внутри — через замыкание — решает, когда и как вызвать следующий.

🎆 От ChatGPT:

Middleware в Go — это не механизм перехвата, а функция высшего порядка, которая принимает handler и возвращает новый handler, формируя цепочку через замыкания и управляя моментом вызова следующего обработчика.

🎆 От DeepSeek:

Middleware в Go — это не цепочка вызовов. Это фабрика, которая конструирует один метод ServeHTTP как матрёшку из замыканий, где каждый слой хранит ссылку на следующий в своей области видимости.

🎆 От Grok:

Middleware в Go — это фабрика функций. Она принимает http.Handler, возвращает http.Handler, а внутри через замыкание решает, когда и как вызвать следующий (или прервать цепочку). Это не «добавление хука». Это оборачивание одного обработчика в другой, создающее конвейер (pipeline).

📀 P.S.

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

type HandlerFunc func(http.ResponseWriter, *http.Request)

func (f HandlerFunc) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    f(w, r)
}

По этому функцию можно приводить к типу этого интефейса Hanlder. Изюминка заключается в том, что http.HandlerFunc(hello) - это не вызов метода. Это приведение к типу (type conversion) HandlerFunc.

🎆 Полировка от DeepSeek:

Благодаря http.HandlerFunc любую функцию с сигнатурой (ResponseWriter, *Request) можно привести к типу http.Handler, что делает оборачивание элегантным и типобезопасным.

🎆 Полировка от Qwen:

http.HandlerFunc(f) — это статический адаптер, который превращает функцию в объект, реализующий интерфейс, через навешивание метода на тип-функцию.

🎆 Полировка от ChatGPT:

В выражении http.HandlerFunc(hello) происходит приведение обычной функции к функциональному типу HandlerFunc, что позволяет этому значению получить метод ServeHTTP и тем самым реализовать интерфейс http.Handler.

🎆 Полировка от Grok:

http.HandlerFunc — статический адаптер, который позволяет любой функции с правильной сигнатурой стать http.Handler и участвовать в этой цепочке.

Middleware в Go — это фабрика функций.

Она принимает http.Handler, возвращает http.Handler, а внутри через замыкание конструирует новый ServeHTTP, который решает, когда вызвать следующий слой.

Это не «добавление хука», а оборачивание одного обработчика в другой, создающее гибкий конвейер (pipeline).

📀📀 P.P.S.

Что еще важно, так как в итоге ServeHTTP метод который вызывается для обработки запроса представляет собой наслоение замыканий «кольцами», то из любого кольца можно принят решение о немедленном выходе, ни погружаясь дальше. Вот так вот изящно формируется в Golang единственная функция обработчик, которая в себе имеет сколь хватит памяти уровней, и к каждый уровень это Middleware или отдельный метод. Метод либо прерывающий цепочку и отвечающий в http.Response, или вызывающий следующий метод, переходя в новый слой.

🎆 Полировка от Qwen:

Middleware в Go — это управляемый конвейер с возможностью аварийной остановки. Каждый слой обладает полным правом вето: он может обработать запрос самостоятельно и завершить цепочку, не беспокоя следующие уровни.

🎆 Полировка от DeepSeek:

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

🎆 Полировка от ChatGPT:

Итоговый ServeHTTP — это одна функция, собранная как композиция вложенных замыканий (цепочка middleware), где каждый слой принимает решение: вызвать следующий обработчик или завершить обработку немедленно.

В Go HTTP middleware формирует один итоговый обработчик через композицию замыканий. Каждый слой получает управление и решает: вызвать следующий обработчик или завершить обработку, сформировав ответ. Таким образом, вся цепочка — это одна функция с контролируемым потоком выполнения.

🎆 Полировка от Grok:

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

🐳 Итоговая формула (собранная из цитат) от DeepSeek:

Middleware в Go — это не цепочка вызовов и не система перехвата событий. Это фабрика, которая конструирует единый метод ServeHTTP как 🪆 матрёшку из замыканий.

 , ,

lbvf50txt
()

Перераспределение размеров разделов диска на OpenWRT роутере

Форум — General

Всем привет. Помогите пожалуйста. Проблема такая. Был у меня роутер билайн 128мб RAM и 128 мб flash. Размеры Storage: Disk space и Temp space примерно поровну 60мб. Всё бы ничего да захотелось роутер помощнее. Взял WAX206. Там 256 flash и 512 ram. Установил openWRT и такое разочарование… Disk space всего 17мб, зато Temp space 244мб. На 17 мб не поставишь что-то весомое. И usb нет у этого роутера. Можно ли как-то передвинуть размеры, уменьшить Temp и увеличить overlay?

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 5.0M      5.0M         0 100% /rom
tmpfs                   244.0M      1.8M    242.3M   1% /tmp
/dev/ubi0_1              17.0M      1.6M     14.5M  10% /overlay
overlayfs:/overlay       17.0M      1.6M     14.5M  10% /
tmpfs                   512.0K         0    512.0K   0% /dev
root@OpenWrt:~# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mtdblock0    31:0    0  512K  1 disk 
mtdblock1    31:1    0  256K  1 disk 
mtdblock2    31:2    0  512K  1 disk 
mtdblock3    31:3    0  512K  0 disk 
mtdblock4    31:4    0    1M  1 disk 
mtdblock5    31:5    0   38M  0 disk 
mtdblock6    31:6    0    6M  0 disk 
mtdblock7    31:7    0   32M  0 disk 
mtdblock8    31:8    0   38M  1 disk 
mtdblock9    31:9    0    8M  1 disk 
mtdblock10   31:10   0    4M  1 disk 
mtdblock11   31:11   0    1M  1 disk 
mtdblock12   31:12   0    4M  1 disk 
mtdblock13   31:13   0    2M  1 disk 
mtdblock14   31:14   0    1M  1 disk 
mtdblock15   31:15   0    1M  1 disk 
mtdblock16   31:16   0    5M  1 disk 
mtdblock17   31:17   0    1M  1 disk 
mtdblock18   31:18   0  6.3M  1 disk 
ubiblock0_0 254:0    0  5.1M  0 disk /rom

 ,

supercelt
()

CVSS 9.8 в Telegram

Форум — Security

Что-то совсем печальное нашли в Telegram

ZDI-CAN-30207

 ,

Belkrr
()

Что там с github'ом?

Форум — Development

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

 

Taetricus
()

Что творится с ping?

Форум — Admin

Ситуация на сервере. Сервер у человека в локалке. Белого ip нет, но есть туда туннель wireguard.
Раньше было все ок. Недавно случайно заметил вот такое:

root@KSRV:~# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.75 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=1.44 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=0.592 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=0.883 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=0.498 ms
^C
--- 192.168.0.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4033ms
rtt min/avg/max/mdev = 0.498/1.032/1.745/0.485 ms
root@KSRV:~# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=11.8 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=59 time=10.5 ms
64 bytes from 1.1.1.1: icmp_seq=6 ttl=59 time=12.6 ms
64 bytes from 1.1.1.1: icmp_seq=8 ttl=59 time=12.6 ms
^@^C
--- 1.1.1.1 ping statistics ---
9 packets transmitted, 4 received, 55.5556% packet loss, time 8078ms
rtt min/avg/max/mdev = 10.517/11.867/12.575/0.835 ms
192.168.0.1 - это его роутер. Роутер подключен к другой коробке куда оптика. Internet 1Gb.
Во внешку теряется ровно 50% пакетов. Да и по ssh там ковыряться как-то стало все тупее.
Что может быть? Может нужна еще какая информация?
ps: скажу ему чтоб передернул роутер.

 icmp loss

hbars
()

Почему по-разному рендерятся шрифты Terminus и Terminess?

Форум — Desktop

Качаю Terminess. Устанавливаю TerminessNerdFontMono-Regular.ttf

Запускаю:

st -f "Terminess Nerd Font Mono:style=Regular:size=11:antialias=true:autohint=true"

st -f "Terminus:size=11:antialias=false:autohint=true"

out:

  1. 11px –> https://fastpic.org/view/127/2026/0327/_778be0e4c85d0c85e5081b015281f0e6.png.html
  2. 31px –> https://fastpic.org/view/127/2026/0327/_5643b00435f0ad36f4969b6d4817500c.png.html

Обращаем внимание, прежде всего, на букву х, потом на i, Потом на @. Как это так? Terminess - это Terminus, только с иконками. Как он может рендериться по-разному?

 ,

bryak
()

Сейчас актуальны старые сервера SUN ORACLE на SPARC процессорах?

Форум — Linux-hardware

Предложили за 50 тысяч из пыльного склада предприятия сервер SPARC SUN ORACLE T4-4 и T4-1 (за каждый). 4-х и одно- процессорный сервера. Оперативы сколько-то есть, дисков нет (наверно там стандартные салазки и можно купить от других серверов).

Посмотрел в интернете, процессор SPARC T4 2.85 или 3 Ггц и главное 2011 года….

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

Сервера 2011 года SPARC SUN ORACLE T4-4 и и T4-1 - это сейчас хлам или из-за специфики архитектуры всё ещё где-то используется?

 , , ,

SPARC
()

Linux и старая флешка

Форум — Talks

Развлекаюсь сейчас с загрузкой настроенной системы с флешки и оверлеем на тестовом полигоне. Когда-то давно была куплена целая горсть Kingston DTGE9 для реанимационно-инсталяционных нужд, как венды, так и линукса. И вот подготовил (выбрал) я две флешки, на которых были образы семерки. Разметил, стал копировать образ squashfs, на одной все хорошо, на другой начинается копирование у полигон уходит в ребут. Чего там происходит я не знаю (вернее догадываюсь), т.к. полигон «безголовый», я ковыряюсь по SSH. И так несколько раз.

Перезагружаюсь в тестовую венду, удаляю все разделы, делаю полное форматирование, очень медленно идет, но в итоге оно завершилось успешно. Тогда я беру примерно 13Гб (флешка на 16Гб) всякого разного и копирую на нее, копирование зависло через какое-то время, но венда живая осталась.

Риторический вопрос, ну как так то, елки-моталки? Линукс может сломаться от какой-то почившей флешки? Где рок солид, где хеарт точинг? А в венде нажал отмену и живи дальше.

З.Ы. Да именно флешка, не комп, потому что есть куча других таких флешек и они работают нормально. Ядро 6.12.41-calculate, если кому интересно. Лепите своих клоунов, так и быть - разрешаю!

 

yaba
()

А что, форум crossplatform.ru уже того?

Форум — Talks

Что-то недоступен форум, да и весь сайт на домене crossplatform.ru.

Лучшее что может ответить: «Not Found»

То есть, еще один большой технический форум исчез из Рунета?
На него куча ссылок в поисковиках, а он не работает уже непонятно сколько времени.

 , ,

Xintrea
()

Ошибка 404 вместо архива новостей

Форум — Linux-org-ru

Ссылка https://www.linux.org.ru/narchive/ не работает.

 

question4
()

ejabberd и клиенты на разных ОС

Форум — Admin

Добрый день.

Поднят сервер ejabberd, на нем также установлен movim (для подключения клиентов через браузер). В DNS прописаны необходимые записи (А, SRV и CNAME). На файрволе проброшены порты. Клиенты через LDAP.

Возникло несколько проблем:

  1. android и особенно ios клиенты зачастую не могут дозвониться - «поиск устройств…» и соединения нет. Это может происходить даже когда приложение на смартфоне открыто. С сообщениями также, но их хоть можно прочитать после удачного подключения. Приложение для андроид - Conversations, ios - Monal.

  2. Невозможно зайти через браузер хром и его производных - происходит постоянное переподключение (перезагрузка страницы). Но если подключиться к серверу через ресурс https://mov.im или же через приложение movim (используется движок chrome) или через firefox - то всё нормально. В двух последних при работе также бывают переподключения.

  3. Закачка файлов в movim не работает, на остальных клиентах работает.

Стабильно ли c этим в matrix/synapse и nextcloud/nextcloud-talk?

 , ,

wdtae
()

После обновлений случилась беда со звуком

Форум — Desktop

Здравствуйте.

У меня Debian forky/sid, pulseaudio 17.0.

После каких-то из последних обновлений случилось следующее:

Нет звука в браузерах (chromium, firefox), десктопном клиенте Telegram. Более того, браузеры отказываются воспроизводить видео, если громкость звука не ноль (ну то есть по щелчку на кнопку play/pause значок меняется с play на pause, но видео не воспроизводится дальше).

В mpv звук есть (!).

При начальной загрузке системы громкость почему-то выставляется в 41%, вне зависимости от того, какой уровень громкости был при выключении.

В pavucontrol ничего интересного, корректно определяет вывод как “Tiger Lake-LP Smart Sound Technology Audio Controller Stereo”.

Но иногда в pavucontrol во вкладке “Configuration” переключение с “Stereo Output + Stereo Input” на “Stereo Output” и обратно (!) временно чинит проблему.

Релевантный кусок из lspci -vnn:

00:1f.3 Multimedia audio controller [0401]: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller [8086:a0c8] (rev 30)
    Subsystem: Xiaomi Device [1d72:2039]
    Flags: bus master, fast devsel, latency 32, IRQ 154, IOMMU group 13
    Memory at 6001138000 (64-bit, non-prefetchable) [size=16K]
    Memory at 6001000000 (64-bit, non-prefetchable) [size=1M]
    Capabilities: [50] Power Management version 3
    Capabilities: [80] Vendor Specific Information: Intel <unknown>
    Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Kernel driver in use: sof-audio-pci-intel-tgl
    Kernel modules: snd_soc_avs, snd_sof_pci_intel_tgl, snd_hda_intel

Как быть?

Заранее всем спасибо за ответы.

Перемещено maxcom из development

 ,

nattep
()

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