LINUX.ORG.RU

Избранные сообщения DELIRIUM

Интересные книги по внутренностям линукса

Форум — Talks

Интересно, какие книги можно почитать по внутренностям линукса?

Особенно меня интересуют новшества, типа cgroups v2, виртуальной машины беркли, новые неймспейсы и их особенности, нововведения в systemd, современный SELinux, IMA+(v)TPM, асинхронная работа с дескрипторами, новые планировщики перегрузки TCP, современный Xen с его встроенными драйверами, блочная и файловая подсистемы.

Нужна не только теория, но и возможность реального применения.

 , , , ,

aafedorov1989 ()

Новый ноутбук System76 с Coreboot

Новости — Hardware and Drivers
Группа Hardware and Drivers

Вдобавок к выпущенным ранее, появился ещё один ноутбук с прошивкой Coreboot и отключённым Intel ME от компании System76. Модель называется Lemur Pro 14 (lemp9). Прошивка ноутбука открыта лишь частично и содержит ряд ключевых бинарных компонент. Основные характеристики:

  • Операционная система Ubuntu или собственная Pop!_OS.
  • Процессор Intel Core i5-10210U или Core i7-10510U.
  • Матовый экран 14.1" 1920x1080.
  • От 8 до 40 Гб оперативной памяти DDR4 2666 МГц.
  • Один или два SSD общей ёмкостью от 240 Гб до 4 Тб.
  • Разъём USB 3.1 Type-C gen 2 (с возможностью зарядки), 2×USB 3.0 Type-A, SD Card Reader.
  • Сетевые возможности: Gigabit Ethernet, WiFi, Bluetooth.
  • Видеовыходы HDMI и DisplayPort (через USB Type-C).
  • Стереодинамики, видеокамера 720p.
  • Литий-ионный аккумулятор ёмкостью 73 Вт*Час.
  • Длина 321 мм, ширина 216 мм, толщина 15.5 мм, вес от 0.99 кг.

На текущий момент стоимость минимальной конфигурации 1099$.

>>> Подробности

 , ,

ioctl ()

Почему gcc не версионирует свой рантайм?

Форум — Development

Приветствую! Друзья, расскажите, почему gcc не соблюдает собственные GNUтые правила libtool.

Например, картина для рантайма gcc 9.2:

/usr/lib/libasan.so.5.0.0
/usr/lib/libatomic.so.1.2.0      <- не меняется годами
/usr/lib/libgcc_s.so.1           <- постоянное значение как минимум с gcc 4.x.x
/usr/lib/libgdruntime.so.76.0.3
/usr/lib/libgfortran.so.5.0.0
/usr/lib/libgo.so.14.0.0
/usr/lib/libgomp.so.1.0.0        <- постоянное значение как минимум с gcc 4.x.x
/usr/lib/libgphobos.so.76.0.3
/usr/lib/libitm.so.1.0.0         <- не меняется годами
/usr/lib/liblsan.so.0.0.0        <- не меняется годами
/usr/lib/libobjc.so.4.0.0        <- не меняется годами
/usr/lib/libquadmath.so.0.0.0    <- постоянное значение как минимум с gcc 4.x.x
/usr/lib/libstdc++.so.6.0.27     <- многие годы вечный 6.0.x
/usr/lib/libtsan.so.0.0.0        <- не меняется годами
/usr/lib/libubsan.so.1.0.0       <- не меняется годами

Почему так?

  • Revision почти всегда 0. Должен увеличиваться с каждым релизом.
  • Minor ( =Age) почти всегда 0. Должен увеличиваться при добавлении новых интерфейсов.
  • Major ( =Current-Age) либо не меняется, либо меняется крайне неспешно. Должен увеличиваться при сломе обратной совместимости.

libstdc++.so версионируются, но странно. В gcc 9.2 она имеет обозначение 6.0.27, и в gcc 4.7.4 — 6.0.17. Если верить такому обозначению, то между этими версиями в библиотеку не было добавлено ни одного интерфейса, что бред.

Видно, что активно версионируются только libgo.so, libgphobos.so, libgdruntime.so.

 , ,

Deleted ()

Мы все умрём?

Форум — Talks

РЖД начали делать объявления на станциях про китайский вирус. Вот вчера лично слышал на станции Подлипки Дачные. Что теперь делать? Молиться и пить водку?

 ,

DELIRIUM ()

Примонтировать образ FAT32(?) — прошивка классных часов!

Форум — Development

Привет, друзья!

Имеются надёжные, добротные, классные по многим параметрам спортивные часы с GPS (фирму писать не буду, ибо не реклама). Хотя и стоят недёшево, но разработчики на мои просьбы не обращают внимания – выходят новые прошивки без учёта фич-запросов. Выходит, что самому нужно дорабатывать.

Прошивки достать довольно просто. Очень вас прошу посмотреть файлик. Forssa-fw_2.0.40.2163-B.zip. Это zip-архивчик, в котором наиболее интересный файлик – Amsterdam.bin. Это образ файловой системы устройства.

Встречающиеся слова MSDOS5.0, FAT32, NO LABEL как бы намекают, что файловая система – FAT. Изучил структуру, пробовал, нет – бился с монтированием, но всё бестолку. Знаний и опыта не хватает.

imagemagick находит много правильно оформленных XML-файлов, из которых понятно, как функционируют внутренние программы. Если HEX-редактором подправить несколько значений, подменить контрольную сумму в файлике manifest.json, то часы такую прошивку кушают, а это вселяет большую надежду. Но буквально 3 дополнительных слова, и уже всё сыпется :(

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

P.S.
Много времени потратил на другом пути: расшифровывал команды общения ПК с часами по проводу (COM-порт). Думал, что кроме имеющихся в архиве файлов с нэта подгружается дополнительный секретный кусок. Ничего подобного. Что есть в архиве – это и есть вся прошивка. Но начинается образ как-то совсем странно. Руки опускаются, прошу помощи.

 ,

rmu ()

Красивые способы корректного сравнения знаковых и беззнаковых целых

Форум — Development

Стандарты языка С предписывают компиляторам пользовать «быстрое» сравнение, вместо корректного.

То есть в следующем коде согласно всех стандартов языка С переменная res должна получить значение 0 а не 1, что крайне непрактично.

unsigned int a = 1;
int b = -1;
int res = (b < a);

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

Естественно речь о ситуациях где отказаться ни от знаковых, ни от беззнаковых никак нельзя.

Мой основной способ решения этой проблемы через расширение разрядности, так как я в первую очередь имею дело с unsigned char, но смесь size_t c ssize_t или что-то подобное также нередко доставляет неудобства.

Опишите кто и как выкручивается в сложившейся ситуации.

[UPDATE] ассемблерные листинги к классическим алгоритмам сравнения

For example x86 gcc 7.1 will for C++ source:

bool compare(int x, unsigned int y) {
    return (x < y); // "wrong" (will emit warning)
}

bool compare2(int x, unsigned int y) {
    return (x < 0 || static_cast<unsigned int>(x) < y);
}

bool compare3(int x, unsigned int y) {
    return static_cast<long long>(x) < static_cast<long long>(y);
}

Produce this assembly (godbolt live demo):

compare(int, unsigned int):
        cmp     edi, esi
        setb    al
        ret

compare2(int, unsigned int):
        mov     edx, edi
        shr     edx, 31
        cmp     edi, esi
        setb    al
        or      eax, edx
        ret

compare3(int, unsigned int):
        movsx   rdi, edi
        mov     esi, esi
        cmp     rdi, rsi
        setl    al
        ret

Взято вот здесь:

https://stackoverflow.com/a/44070807/73747

 , ,

cvv ()

Работа с высокой оплатой для C++ || ASM программистов

Форум — Job

Добрый день,

В команду работающую над созданием коммерческой кросс-платформенной альтернативы Tor/I2P требуются высококлассные программисты. Проект находится на стадии запуска.

Требования:

Владение C, C++, низкоуровневое программированием
Понимание криптографических алгоритмов
Большой опыт работы с сетью, процессами и потоками, памятью
Алгоритмический склад ума, умение решать сложнейшие задачи красиво и элегантно
Навыки понимания чужого кода и его оптимизации

Желательно:

Опыт кроссплатформенной разработки (Qt)
Плюсом будет опыт разработки на ассемблере.

Условия:

Оплата на старте от 5K до 10К USD в месяц
Возможен опцион и повышение ЗП по результатам эффективности
Недельные итерации по видоизмененному Scrum
Удаленная работа

Приведите нам достойного человека и мы заплатим вам 5000 USD.

Контакты:

Jabber: speccy48k [?] xmpp.jp

Теги: децентрализация, P2P, с++, asm, qt, криптография

Хейтерам просьба хорошо постараться и забить своими комментами не менее чем весь сторедж яровой.

 , , ,

stopgoogle ()

LTO для нескольких проектов/библиотек одновременно

Форум — Development

Будет ли разница, если я скомпилирую 3 библиотеки с lto отдельно; и если скомпилирую их вместе? Что делать, если нет возможности объединить два проэкта? Как заставить lto продолжить оптимизацию в совокупности со всеми слинкованными библиотеками (которые также были скомпилированны с lto, но автономно)? А то я сильно удивился, когда скомпилил основной проект с LTO и производительность не изменилась ни на грамм. А там куча зависимостей, к которым я не применил LTO, и я не знаю, как применить его ко всем библиотекам сразу.

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

Можно ли то же самое провернуть с PGO? (Тоже почти не заметил разницы из-за этого, она была 1%, где-то в лучшую где-то в худшую сторону).

 , , , ,

gradle ()

Perl 6 vs Python 3

Форум — Development

Дискач.

Чтобы писать утилиты и демоны например для десктопа. Допустим оставим в покое веб-девелопмент, там и так тесно. И забудем былое, Python 2, Perl 5 и связанные стереотипы.

P.S. Прошу не удалять за тупняк, я понимаю как это выглядит. Но тема то интересная

 , , ,

vertexua ()

Подтвердите баг. Отваливается WiFi на новых ядрах.

Форум — General

Всем привет.

В ноутбуке стоит вот такой wi-fi адаптер (168c:0024):

03:00.0 Network controller: Qualcomm Atheros AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express) (rev 01)
        Subsystem: Askey Computer Corp. AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express)
        Physical Slot: 3
        Flags: bus master, fast devsel, latency 0, IRQ 17
        Memory at d7df0000 (64-bit, non-prefetchable) [size=64K]
        Capabilities: [40] Power Management version 2
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
        Capabilities: [60] Express Legacy Endpoint, MSI 00
        Capabilities: [90] MSI-X: Enable- Count=1 Masked-
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Virtual Channel
        Kernel driver in use: ath9k
        Kernel modules: ath9k

ОС - Debian (микс из Unstable, Stable и Experimental через пиннинг, но в основном Unstable).

И присутствует такая проблема: рандомно отваливается соединение по вафле, в большинстве случаев оно отключается и сразу переподключается, но иногда оно остаётся типа подключенным, но не работает, то есть даже пинг до роутера не идёт (в этом случае помогает отключение/включение вафли программно, или рестарт network-manager).

Перед этими моментами идёт куча сообщений в dmesg:

ath: phy1: DMA failed to stop in 10 ms AR_CR=0x00000024 AR_DIAG_SW=0x42000020 DMADBG_7=0x000062c0

Воспроизводится и на 2.4G, и на 5G.

Проблема точно в клиенте, а не в роутере, поскольку на двух виндовых ноутах, виндовом десктопе и двух мобилах с андроидом, подключенным к тому же роутеру такой проблемы нет.

Воспроизводится на ядрах 4.19 и 5.2. Поскольку собирать самому ядра и bisect'ить мне лень, тупо методом тыка подключил репу oldstable и накатил ядро оттуда:

$ uname -rm
4.9.0-9-amd64 x86_64

Вот уже несколько дней полёт нормальный.

По ошибке гуглится довольно много ссылок, в том числе на bugzilla.kernel.org, но почти все они относятся к старым ядрам (типа 3.x).

Вопрос, если у кого воспроизводится, подтвердите. И ещё лучше, если у кого-то не воспроизводилось с ядром между 4.9 и 4.19, а с какой-то версии стало воспроизводится, дайте знать.

Я отправлю баг-репорт.

 , ,

DELIRIUM ()

Стали доступны видео докладов с C++Russia 2019

Форум — Development

На YouTube на канале C++ User Group стали доступны видеозаписи следующих докладов с прошедшей весной конференции C++Russia 2019:

 

eao197 ()

Новосибирск. Ищу работу админом/эникеем/хоть кем то в it

Форум — Job

20 лет, образования нет, 2 года занимался выездным ремонтом/настройкой компьютеров.

Немного могу писать скрипты на bash/python, базовые знания git

Продвинутый пользователь windows/linux, настройка установка и т.д, одно время держал простенький сайт на wordpress

Есть навыки простого ремонта пк(перепайка конденсаторов да дросселей), блочный ремонт.

Обслуживание оргтехники, настройка роутеров, обжатие витухи, умение пользоваться перфоратором

Могу прочитать тех.документацию на английском

Готов работать за еду(20 тыс.руб)

Писать на почту oriko32@cock.li

 , ,

oriko32 ()

Дело @BruteForce: рассмотрение по существу

Форум — Клуб

Начинается рассмотрение по существу дела Виктора Филинкова BruteForce. Первое заседание пройдёт в Санкт-Петербурге 8 апреля в 14:00. Дело рассматривает Московский окружной военный суд (один из двух российских судов, которые могут рассматриать дела о терроризме), сегодняшнее предварительное заседание проходило в 224-м гарнизонном суде Санкт-Петербурга.

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

Другие способы поддержки, это написать письмо. В тюрьме не происходит ничего хорошего, и любые вести с воли ценны. Написать письмо можно на сайте http://rosuznik.org. Письмо распечатают и отнесут на почту. Либо можете написать сами — Филинкову Виктору Сергеевичу, 191123, Санкт-Петербург, Шпалерная, 25, СИЗО-3 ФСИН России. Помните, что письма проходят через цензора.

Напомню, что Виктор Филинков был задержан в январе 2018 года, после жестоких пыток был обвинён в участии в террористическом сообществе (УК 205.4).

*Добавлено 5 апреля*:

Первое заседание состоится 8 апреля в 14:00 в помещении 224 гарнизонного военного суда по адресу: город Санкт-Петербург, площадь Труда,1

 

anarquista ()

Поиск в map<double>, может ли быть не нахождение того же значения, что добавили?

Форум — General

Возможна ли ситуация, что такая функция вернет истину?

bool to_do_test(double v) {
   map<double,double> m;
   m.insert({v,v});
   return m.find(v) == m.end();
}
Т.е. возможны ли ситуации изменения double при множественных операциях копирования и сохранения в контейнерах через десятки классов, без математических операций?

 

victor79 ()

Ищу системного админа Linux (150к - 200к)

Форум — Job

Всем привет!

У кого то НГ наступает, а у меня есть новая вакансия! Ищу к себе в команду Системного администратора Linux.

Мобитэль — российская технологическая компания, мы специализируемся на разработке современных IT-решений для ведения букмекерского бизнеса. Мы являемся частью БК «Бинго-Бум» и занимаем лидирующие позиции на российском рынке. Наши продукты основаны на современных технологиях, мы используем Node.js, React/Redux, Docker, Kubernetes, постоянно осваиваем что-то новое. Используем практики DevOps и развиваем Agile-культуру.

Отдел платформы клубов BingoBoom одно из самых больших подразделений в компании.

Мы занимаемся разработкой и сопровождением системы букмекерских клубов, обслуживаем около 10 000 активных игровых мест, наши игроки каждую минуту делают более 2000 ставок.

За время работы команды, мы создали большую инфраструктуру состоящую из множества микросервисов.

Мы готовы расширяться и в связи с этим ищем опытного Системного администратора Linux в нашу дружную команду!

Вам предстоит еще больше автоматизировать инфраструктуру, принимать непосредственное участие в проектах, совместно с разработчиками планировать архитектуру сервисов.

Чем предстоит заниматься:

-Сопровождение клубной системы (базовый стек технологий: nodejs, c++, mariadb, postgresql, nginx, php-fpm, python);

-Обеспечение бесперебойной работы проектов, решение инцидентов;

-Настройка CI/CD (TeamCity) для проектов;

-Помощь в выкатке новых сервисов и компонентов;

-Реализация и оптимизация процессов сборки и выкатки.

Что мы хотим видеть:

-Администрирование Linux (Debian) от 3 лет;

-Опыт работы с CI/CD системами. Предпочтительно TeamCity;

-Опыт работы с docker. Умение пользоваться, понимание как работает docker.

-Хорошее знание основных подсистем Linux;

-Понимание процесса загрузки системы, понимание бездисковой загрузки;

-Опыт работы с базами данных: SQL, репликация, расследование инцидентов, оптимизация производительности;

-Опыт работы с веб сервисами: знание nginx, технологии websocket;

-Понимание работы серверов очередей, предпочтительно rabbitmq;

-Владение скриптовыми языками (bash, python);

-Знания сетевых протоколов, понимание маршрутизации;

-Опыт работы с iptables.

Плюсом будет:

-Знание инструментов автоматизации инфраструктуры. Предпочтительно Ansible;

-Знание и опыт работы с Kubernetes, Helm;

-Понимание ядра Linux. Опыт сборки и дебага;

-Опыт автоматизации систем мониторинга и логирования.

Мы предлагаем:

-ЗП два раза в месяц (вилка 150к - 200к net, зависит от опыта)

-Оформление по ТК

-Гибкий график работы, пятница сокращенный день

-ДМС со стоматологией после испытательного срока

Приятные бонусы:

-Бесплатные завтраки, обеды, ужины и кофе

-Компенсация фитнеса (100%)

-Корпоративный футбол, волейбол и хоккей 2 раза в неделю: 100% оплата компанией

-Настольные игры и книги в офисе

Кандидатам из регионов предлагаем возможность релокации!

Кому интересно, пишите в телегу (@Kenjuy)

 , , ,

Kenjuy ()

Исключение неиспользуемых директив препроцессора из кода

Форум — Development

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

Естественно, неплохую часть кода там составляют макросы #ifdef для разных платформ, посему есть такой вопрос: удалять вручную и разбираться довольно муторно, однако возникла идея - если препроцессор обрабатывает код, он сам детектит в процессе, какие переменные определены - можно ли каким-то образом заставить его вернуть чистый код, с теми переменными и условиями, которые реально имеют ценность после компиляции? Я понимаю как он работает, код прошарил, но было бы проще, если бы 90% макросов не было

 ,

Gunburgender ()

Тестирование сетевых программ - имитация плохого соединения

Форум — Development

Есть некая программа, которая отправляет UDP пакеты. Мне необходимо в целях тестирования иногда не отправлять ее UDP пакеты, а иногда их дублировать (вместо одного пакета отправим два таких же UDP пакета), или отправлять не в том порядке. И чтобы с входящими UDP пакетами тоже можно было что-то такое делать, т.е. надо имитировать всякие такие проблемы с сетью. Какие для этого существуют опенсорсные решения для Linux?

 , ,

SZT ()

GNU Patch

Форум — Development

Порекомендуйте, пожалуйста, хорошую альтернативу документации изложенной в «man patch».

 , , ,

RRR1993 ()

как влинковать initramfs в файл-образ ядра?

Форум — Linux-install

The old initrd was always a separate file, while the initramfs archive is linked into the linux kernel image.

Чего я хочу добиться:
Чтобы в GRUB было две строчки: в первой строке (linux) грузилось бы ядро и неизменяемый initramfs, а во второй строчке (initrd) грузились бы настройки (всякие там mdadm.conf с конкретными UUID массивов конкретной машины).

 , ,

Einstok_Fair ()

Есть тут спецы по libcurl?

Форум — General

Детали вопроса здесь https://gamedev.ru/code/forum/?id=237106

 ,

Gremlin_ ()