LINUX.ORG.RU

Сообщения dyonya

 

Срок жизни строкового литерала в C

Форум — Development

Я делаю пространство имён — множество пар «строка - объект». В функции инициализации я создаю статический массив, а потом копирую всю эту память в динамический, вот этак:

init() {
  name_t names[2] = {
    {"name1", obj1},
    {"name2", obj2}
  }
  <...>
  memcpy(global_namespace.names, names, size);
}

Здесь global_namespace — это структура, в которой есть указатель на имена.

А вопрос мой вот в чём: как долго будут жить строковые константы? Потом ведь нужно будет к ним обращаться — не хотелось бы, чтобы затёрлись. Мне думается, что компилятор положит их в неизменяемую память, и на протяжении всей жизни программы можно будет обращаться. Но они объявлены внутри функции и, вроде как, локальные объекты — это не повлияет?

 

dyonya
()

Возможно ли поднять BIND9 через ssh -R?

Форум — Admin

Привет, форумчане!

Имею в распоряжении локальный сервер, на котором запущен BIND9; успешно обрабатывает запросы из локальной сети. Хотелось бы иметь к нему доступ из Интернета. Пробую перенаправить порт своего виртуального сервера на локалку:

ssh -R 53:localhost:53 VDS

И выдаёт ошибку:

$ dig DOMAIN @VDS_IP
;; communications error to VDS_IP#53: connection refused
;; communications error to VDS_IP#53: connection refused
;; communications error to VDS_IP#53: connection refused

Конфиг на локальной машине с запущенным DNS:

#/etc/bind/named.conf
options {
        directory "/var/bind";
        pid-file "/run/named/named.pid";

        listen-on { any; };

        allow-query { any; };
}
#/etc/resolv.conf
nameserver 127.0.0.1

Конфиг на удалённой машине:

#/etc/resolv.conf
nameserver 127.0.0.1

Может, сталкивался кто с такой проблемой. Помогите, пожалуйста, решить!

 , , ,

dyonya
()

Вирус на Линукс?!

Форум — Security

Кликбейт. А может?..

На днях я задавал тут вопрос, почему вдруг моя система стала есть на 300 Мб оперативки больше. Думаю пока, что виновен проприетарный драйвер на видеокарту. Но заметил странную закономерность:

При запуске компьютера потребление — 800 Мб. Немного держится и резко возрастает до 1.1 Гб. И стабильно так. Ну окей: вдруг что-либо запоздало загрузилось… Но стоит мне открыть какую-нибудь утилиту для мониторинга ресурсов (btop, nvtop) — снова стаёт 800 Мб. Прямо мистика какая-то! А закрываю — так же, как при включении, чуть держится и уходит в 1+ Гб.

Какое тому может быть рациональное объяснение? Поведение типичное для какого-нибудь хитрого вируса.

Все программы компилирую из репозитория Генты или github’а. Единственный грешок за мной: пробовал Tlauncher, запускал от рута. Теперь на него подозрения.

Прошу помощи и совета: вирус ли это? Если да — как отладить/излечить? Если нет — откуда такая странность?

 , , ,

dyonya
()

Большое потребление RAM.

Форум — Linux-hardware

Почему-то стало ощутимо больше. Раньше, как только запускал графическое окружение, доходило до 700 Мб, а теперь целый гигобайт. Откуда? Демоны все те же. Разве что драйвера проприетарные от Nvidia накатил — это может влиять?

 , ,

dyonya
()

Как проверить загруженность видеокарты с драйвером Nouveau?

Форум — Linux-hardware

Я говноед счастливый обладатель дискретной карты RTX 3050, мобильная, для ноутбука. Для моих нужд вполне хватало встроенной карточки AMD: видео казала, оконный менеджер рисовала и всё в таком духе. Но вот обидно, что карта лежит мёртвым грузом и пылится.

Поставил Nouveau, так как хочется открытого кода. Но теперь вообще непонятно, как отследить работу видеокарты. Нагруженность, температуру — как вообще убедиться, что драйвера подхватились и карта работает? Компьютер карту видит, но, например, Minecraft запустить, указав в лаунчере дискретную карту, не получилось.

Да и если собирать OBS Studio с флагом nvenc, то требуется nvidia-drivers…

Ну я в итоге сдался и поставил проприетарные дрова. Теперь можно загруженность отслеживать, в том же nvtop’е. В настройках ядра поставил по инструкции с Gentoo wiki: что-то про DRM и framebuffer. Но теперь, при запуске, ещё в консоли на секунду зависает с графическим артефактом внизу — нормально это? С Nouveau такого не было.

В общем, суть моего вопроса: можно ли как-то через sysfs мониторить состояние карты? Дружит ли вообще Nouveau с такими, относительно новыми, картами? Как удостовериться, что оно работает?

 , , ,

dyonya
()

Как вывести текст при запуске динамической библиотеки?

Форум — Development

Бо́льшая часть динамических библиотек моей системы исполняемые. Но при попытке выполнить их возникает ошибка Segmentation failed. Подразумевает ли формат ELF (.so) возможность вывода текстовой информации?

Например: запустил файл-библиотеку — получил текст с версией.

Кажется, Windows DLL так могут. Не ручаюсь, но пример где-то видел, как открытие библиотеки выводило версию.

а) Можно ли реализовать на Линукс (ELF)? б) Если да, есть ли возможность сделать это в clang, при создании библиотеки?

 , , ,

dyonya
()

В динамической библиотеке нет имён — в чём магия?

Форум — Development

Начинаю на обывательском уровне копаться в устройстве библиотек. Решил для одной (динамической, python runtime) глянуть список имён (через nm) – выпал в осадок: их там нет.

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

Ответьте, кто знаком с устройством. Dynamic ELF

 , , ,

dyonya
()

Системный вызов brk не работает.

Форум — Development

Пишу на Android (aarch64). 4 Гб оперативки + 2 Гб swap. Захотел проверить, какой предел для расширения кучи (через brk). Пытаюсь увеличить аж на 10 гигов – и всё равно brk возвращает не код ошибки, а новый адрес.

Насколько мне известно, должно возвратиться 0, ежели память не может быть выделена. Во всяком случае, так работает библиотечная обёртка brk(). А если это не так, то возможно ли иным способом проверить выделена ли память по факту? Как?

P.s. прошу про преимущества mmap не распыляться: хочу разобраться с вызовом brk, раз его ещё не выпилили из ядра.

 , ,

dyonya
()

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