LINUX.ORG.RU

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

На каких интернет-ресурсах вы берёте цифровые книги?

Форум — Talks

Я из легальных могу выделить rusneb.ru для старых (особенно дореволюционных книг) и для иностранщины archive.org, тоже старой, в основном.

 

haydudogni
()

QEMU в реальную сеть через WiFi

Форум — General

Проблема проста. Есть ноутбук подключенный к сети через WiFi.

Надо обеспечить доступ виртуальной машины на QEMU в эту же сеть.

Я понимаю, что для этого теоретически, надо создать tap сетевой адаптер и создать мост включающий его и сетевую карту, через которую реальная машина подключена к сети.

Вот тут и проблема - нельзя просто взять и создать мост с WiFi картой. Или как-то можно?

Подскажите пожалуйста. Возможно есть другие пути?

Виртуалка просто должна работать в реальной сети как еще один компьютер.

Интересует именно QEMU, как это сделать с Virtualbox я знаю, но он не подходит.

#####РЕШЕНИЕ#######

Спасибо @Pinkbyte! Я осилил по твоему совету.

Включаем Proxy ARP

# sysctl net.ipv4.conf.all.proxy_arp=1

Включаем IP Forwarding

# sysctl net.ipv4.ip_forward=1

Создаем tap сетевой интерфейс, доступный для пользователя (важно! qemu работает от пользователя !)

# tunctl -p -t tap0 -u <username>

Создаем маршрут для ip адреса виртуалки через tap0

ip route add 192.168.1.199 dev tap0

Запускаем QEMU с параметрами сети

-netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=mynet0

На гостевой системе - настраиваем статический ip адрес 192.168.1.199.

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

 ,

James_Holden
()

Функция на С для python. Нужны советы.

Форум — Development

Здравствуйте, коллеги!

Нужда приперла реализовать некую функцию на С для последующего использования ее в коде на python. Подтягивать ее намерен через ctypes. Хотя тут могут быть варианты. Открыт вашим предложениям.

Функция довольно заковыристая. Вот ее прототип на С

char * func4py(char * data, int data_size, int pos, char * buf, int buf_size);
   char * res = (char *) malloc(buf_size + pos);
   // ...
   return res;

Функция принимает 2 указателя на области памяти, кое-что магичит с данными и результат закидывет в выделенный res, который и возвращает в качестве указателя.

И тут я сталкиваюсь со всей глубиной своего незнания…

В python я бы хотел вызывать эту функцию в виде:

buf3 = func4py(buf1: bytes, pos: int, buf2: bytes)

Ведь python же всегда знает размеры своих объектов!

Но как передать это сокральное знание с С?

Можно, конечно:

buf3 = func4py(buf1: bytes, buf1_size: int = len(buf1), pos: int, buf2: bytes, buf2_size: int = len(buf2))

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

Еще непонятка с выделением памяти.

Для результирующего буфера мне память приходится выделять, а python ее в дальнейшем сам корректно освободит?

И еще, наверное, стоит как-то генерировать исключение если malloc вернет NULL.

в общем, прошу совета как все это грамотно реализовать?

Ну и вишенка на торте:

Как вернуть не только указатель на буфер, а еще и измененный pos? Типа как tuple или list

PS Я нормально знаю С, так что с реализацией функции ни каких проблем. Но я никогда еще не писал сишные функции для python.

 ,

HighMan
()

шрифт terminus в dwm

Форум — Desktop

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

Как верннуть отображение Terminus так, как было перед обновлением?

 , , ,

Extraterrestrial
()

[решено] Ищу работу (джуна-) Лиспера || Питониста || Девопса || Перловика

Форум — Job

Полное резюме https://www.liltechdude.xyz/resume.pdf

Вкратце

  • Студент третьего курса уральского физтеха по направлению “Программирование”.
  • Есть опыт в написании веб приложений (Python, Clojure)
  • Настраивал/обслуживал сервера (CentOS, FreeBSD).
  • Английский на уровне чтения документации.
  • Ищу полную занятость. Готов к переезду так и на удалёнку.
  • Опыт: 8 месяцев оплачиваемой стажировки в Сбербанке, 2 года Open Source
  • Рассмотрю предложения как из знакомой мне сферы, так и что-то новое.

 , , , ,

liltechdude
()

Новая книга «Linux Kernel Programming»

Новости — Ядро Linux
Группа Ядро Linux

Много воды утекло с момента выхода LDD3 (LDD4 мы, видимо, уже не дождёмся), безнадёжно устарел фундаментальный труд Бовета и Чезати, Роберт Лав давно не радовал нас своими прекрасными творениями. Казалось бы, в мире литературы о программировании ядра Linux наметилась устойчивая стагнация…

Но нет! Ситуацию спасает замечательный индийский программист со звучным именем Кайван Биллимория. Он написал книгу о программировании ядра, аж в двух томах.

Об авторе

Кайван программирует с 1983 года. В то время он самостоятельно научился программировать на бейсике, затем освоил Си и ассемблер под MS-DOS, а потом открыл для себя мир UNIX и Linux. Занимался программированием ядра и драйверов, участвовал в коммерческих и свободных проектах, занимался преподавательской деятельностью.

Повествование в книге ведётся на основе Ubuntu 18.04 LTS и ядра версии 5.4.

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

>>> Том 1 на Amazon

>>> Том 2 на Amazon

 , , ,

x-signal
()

Порекомендую хорошую книгу по электронике

Форум — Talks

Practical Electronics for Inventors. Купил, читаю и очень доволен. На английском языке. Вроде есть русское издание от BHV, его не читал. Объясняется очень доступно, без заумностей. Но в то же время с нужными формулами, есть разделы, где объясняется физика явлений для желающих. Английский довольно простой, я его знаю так себе, но проблем с чтением не возникло.

Оно продаётся в электронном виде, если денег жалко, наверняка есть рипы на торрентах. У меня версия с DRM, к сожалению поделиться не смогу.

 , ,

Legioner
()

Взаимодействие между программным и аппаратным рендерингом

Форум — Development

Как в тулкитах совмещается программный и аппаратный рендеринг так чтобы не было тормозов при копировании из/в видеопамять и чтобы не было избыточных буферов/копирования? Далеко не всё рисование в тулкитах делается через GPU. Можно примеры на места в коде реализации тулкитов.

В частности интересно возможно ли нарисовать буфер в RAM на OpenGL рендербуфере с клиппингом без дополнительных буферов и копирований? Буфер в RAM можно выделить с необходимым выравниванием и прочими параметрами если требуется.

 , ,

X512
()

Хрипящий звук в qemu

Форум — General

На хосте Fedora 34 Workstation, в виртуалке тоже. Не могу побороть хрипящий звук. Пробовал разные варианты, результат один.

Вот последняя попытка:

        -audiodev pa,id=audiodev-0,server="$XDG_RUNTIME_DIR/pulse/native" \
        -device ich9-intel-hda \
        -device hda-output,audiodev=audiodev-0 \

 ,

Legioner
()

Exim4 SPF рубит отправку по SMTP

Форум — Admin

Добрый день.

У меня проблема. Есть почтовый сервер Exim, на машине планируется держать почту нескольких доменов (пока один). С учетом предыдущего опыта, идут тонны спама на случайные ящики в домене который хостится на сервере, особенно если есть catchall. Для борьбы решил настроить SPF по инструкции https://www.sidn.nl/en/news-and-blogs/hands-on-implementing-spf-dkim-and-dmarc-in-exim (3.3 ACL configuration for SPF) но благодаря условию deny spf = fail : softfail отклоняется любая попытка отправки авторизованным пользователем сообщения по SMTP. SMTP клиенту пишет что моему IP не разрешено отправлять почту от имени этого домена. Закомментировал пару строчек - письмо отправляется успешно, но в заголовке стоит Received-SPF: softfail и бонусом засвечен IP адрес пользователя, подключившегося по SMTP.

Как можно настроить проверку SPF только для доставки почты с других почтовых серверов, при этом пропускать проверку SPF для пользователей, имеющих ящики в этом домене?

 , , ,

Dima_228
()

Музыка за которую инопланетяне сохранят Землю

Форум — Talks

https://www.youtube.com/watch?v=3d4xXvF2ukY

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

If aliens asked me for one good reason not to wipe out the planet, I would show them this.

She stopped being a human when she began singing this song..and then she became an Angel of God...

Ave Maria Gratia plena
Maria Gratia plena
Maria Gratia plena
Ave, ave dominus
Dominus tecum

Benedicta tu in mulieribus
Et benedictus
Et benedictus fructus ventris
Ventris tui Jesus

Дальше почему-то не звучало здесь

Ave Maria
Ave Maria Mater dei
Ora pro nobis pecatoribus
Ora, ora pro nobis
Ora ora pro nobis pecatoribus

Nunc et in hora mortis
In hora mortis nostrae,
In hora mortis, mortis nostrae
In hora mortis nostrae
Ave Maria!

 ,

praseodim
()

Подскажите нормальный гайд по написанию build файлов для gradle

Форум — Development

Ожидается что приложении будет написано на Kotlin для Android

 , ,

cvv
()

Как подружить KolibriOS с видеокартой Radeon?

Форум — Talks

В Колибри есть возможность загрузить линуксовый драйвер radeon, но у меня он не работает.

Ноутбук Asus K53U.

$ lspci | grep -i vga
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Wrestler [Radeon HD 6310]

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

 ,

rumly111
()

Аудиофилии тред: какие уши выбрать?

Форум — Talks

С этими вечными переездами и ремонтами наконец дошли руки и средства до покупки нормальных наушников - полноразмерных, закрытого типа.

Пока что выбор состоит из нескольких моделей:

Audio-Technica M50X - классика, как она есть. Вроде бы и надежная по конструкции, и хорошо играет. Но в некоторых обзорах утверждают, что она «долбит», то есть завышает басы и тем самым искажает звук. В каком-то из отзывов чел писал, что тащился с нее, пока не послушал Высоцкого и БГ - не то в ней.

Shure SRH 840 - все сходятся во мнении, что в них идеальный звук. И в обзорах, и в отзывах. Но тут же все говорят, что у них очень хрупкий пластик, который быстро треснет и уши отвалятся.

Beyerdynamic DT 770 Pro - все точно так же сходятся во мнении, что это идеальный уши по звуку, ставят их в один ценовой диапазон с предыдущими двумя моделями. Я уже почти было склонился к ним, но вдруг обнаружил, что 32 и 80 ОМ уши стоят около 16к, а не 10, как предыдущие. А 250Ом, который по цене вроде попадают, скорее всего не вытянет плеер, ибо они студийные.

Бюджет, как ясно из текста выше, около 10к, больше тратить на наушники пока не могу себе позволить.

Может быть, я что-то упускаю?

Музыка - от Pink Floyd и Dire Straits до Kamelot и Metallica с Nightwish. Втыкаться будет в покупаемый так же HiFi плеер с нормальным усилком либо через него же в качестве звуковой карты от компа.

З.Ы. Да, я понимаю, что лучше всего ехать в магаз и слушать на месте все, но тут опять перенесли карантин на пол-месяца, и магазины все еще закрыты. Думаю рискнуть и просто заказать их.


UPD

Использовать их хочу не только с ПК, но и портативно в деревне - с плеером. Рассматриваю варианты:

Cowon Plenue J - увидел его первым в рекламе, и с этого вдруг резко «вспомнилось» увелечение музыкой, забытое за переездами и кучей жизненной ерунды. Косяк в том, что обзоров на него раз два и обчелся, а видеообзоров нет вообще, кроме одного более менее вменяемого.

iBasso DX120 - попал на него из одного из обзоров на ютубе. Вроде бы говорят, что он нормально раскачивает уши, есть запас по мощности, шустрая ОС не на андроиде

Fiio x5 III gen - на него попал так же из обзоров, вроде бы даже он понравился из-за двух цапов, но андроид и отзывы как-то от него отталкивают: подтормаживает, читает не все файлы, долго читает карту, мало живет от батарейки

 , ,

Zhbert
()

verilog, systemverilog и icarus verylog

Форум — Talks

Всех приветствую.

Решил тут со скуки и небольшого профицита времени удариться в hdl. Давно лежит книжка про это дело (Панчул присоветовал, если что. У кого тут от него полыхает?)

Ну и вот. Читаю вдумчиво и пытаюсь повторить примеры из книги. Для компиляции и симуляции выбрал icarus. Маленький, свободный. Для визуализации gtkwave. Решил пока монструозные идешки не качать.

По умолчанию в моей слаке ставится Икарус 0.9.7. В нем как-то ничего не заработало. Написал Панчулу. Он говорит, в свободных поддержки систем верилога вообще нет. И предложил тренироваться на веб-сайте. Потом я немного нагуглил версию Икаруса 0.10.3, выкатил и у меня практически без проблем все собралось.

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

 ,

yax123
()

KolibriN 10.1 - операционная система, написанная на ассемблере

Новости — Open Source
KolibriN 10.1 - операционная система, написанная на ассемблере
Группа Open Source

Объявлен выход KolibriN 10.1 - операционной системы, написанной преимущественно на ассемблере.


KolibriN с одной стороны — это дружелюбная для пользователя версия KolibriOS, с другой — её максимальная сборка. Иными словами, проект создан, чтобы показать новичку все возможности, доступные в альтернативной операционной системе Kolibri на данный момент. Отличительные особенности сборки:

  • Мощные мультимедийные возможности: видеоплеер FPlay, просмотрщик изображений zSea, графический редактор GrafX2.
  • Программы для чтения: uPDF, BF2Reder, TextReader.
  • В поставку входят игры, среди которых Doom, Loderunner, Pig, Jumpbump и эмуляторы игровых консолей: NES, SNES, Gameboy эмуляторы DosBox, ScummVM и ZX Spectrum позволят запустить сотни старых приложений и игр.
  • Также в поставку входят: просмотрщик документов формата PDF, переводчик Dicty, средства разработки и многие другие программы.
  • Добавлены утилиты персонализации графической оболочки.
  • Протестирована и отлажена по сравнению с ночными сборками Kolibri.

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


Из основных изменений в новой версии:

  • Добавлена поддержка чтения с файловой системы XFS форматов v4 (2013) и v5 (2020).
  • Количество обрабатываемых прерываний увеличено с 24 до 56.
  • Добавлена обработка более одного I/O APIC.
  • Улучшен алгоритм перезагрузки: теперь используется Reset-регистр из таблицы FADT, если он доступен.
  • Корректное определение звука на самых новых чипах AMD.
  • Исправления в поиске дополнительной папки.
  • Текстовый браузер WebView обновлен с версии 1.8 до 2.46: появился кэш веб-страниц, вкладки, он-лайн обновление, динамическое выделение памяти, ручной выбор кодировки, автоопределение кодировки, поддержка DOCX файлов, переход по якорям, читать стало удобнее.
  • Изменения в командной оболочке SHELL: улучшена вставка текста, навигация по редактируемой строке, вывод ошибок, добавлена подсветка папок в листинге.
  • Обновлена документация.

>>> Скриншоты

>>> Скачать (архив весит 69 МБ)

>>> История KolibriOS

>>> Сообщество разработчиков (VK)

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

 ,

Zhbert
()

Почему падает сборка без оптимизации?

Форум — Development

gcc 7.4 собирает пример с -O2 и ругается без оптимизации. gcc 4.8 собирает без ругани в обоих случаях. Где порылась собака и какое поведение правильное?

root@0d2ad7bc98a5:/build/src# cat a.c
#include <stdio.h>
inline void f(void)
{
        printf("wtf\n");
}
void g(void)
{
        f();
}
int main(void)
{
        f();
        return 0;
}
root@0d2ad7bc98a5:/build/src# gcc a.c
/tmp/ccOKVIbb.o: In function `g':
a.c:(.text+0x5): undefined reference to `f'
/tmp/ccOKVIbb.o: In function `main':
a.c:(.text+0x11): undefined reference to `f'
collect2: error: ld returned 1 exit status
root@0d2ad7bc98a5:/build/src# gcc a.c -O2
root@0d2ad7bc98a5:/build/src# gcc --version
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Если убрать inline - сборка проходит. То, что компилятор к inline относится по-разному в зависимости от уровня оптимизации, я знаю. Но стулья ломать зачем?

 , ,

pinus_nigra
()

Полировка знаний о Си

Форум — Development

Посоветуйте, пожалуйста, книгу или статью об особенностях Си, с помощью которой можно было бы дополнить уже имеющиеся знания о языке

 

LancerRevX
()

А где нынче принято качать лосслесс?

Форум — Talks

Собственно, вопрос в заголовке.

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

а) почти все обладают так себе качеством
б) все зависят от интернета

Хочется снова собрать локальную коллекцию, как в старые добрые времена. Когда-то собранная коллекция с what.cd померла вместе с очередным хардом, поэтому приходится начинать с нуля.

Собственно, куда идти за музыкой? what.cd мёртв, waffles тоже, других не знаю.

 , ,

DoctorSinus
()

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

Форум — 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
()