LINUX.ORG.RU

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

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

Форум — Development

Сидел себе, говнокодил на всякой скриптухе, но вдруг осознал, что даже процедурную пирамидку в консоль вывести не могу, ибо сложно. А ещё не знаю про всякие пузырьковые сортировки. Посоветуйте книгу, в которой собраны важные/популярные/интересные алгоритмы. Желательно без привязки к языку, а то на условном Brainfuck писать желания нет вообще, мне ближе сишно-паскальное.

 ,

Original_1
()

Поставил точку останова с помощью PTRACE, снимаю получаю ошибку сегментации

Форум — General

С помощью ptrace подключаюсь к программе и ставлю в начало функции asd3() точку останова, меняю push rbp на int3.

Далее продолжаю работу программы PTRACE_CONT . Программа тормозит на точке останова(радуюсь что сработало) . Возвращаю в памяти все на свои места. Получаю регистры, вычитаю из регистра rip единицу, загружаю регистры с измененным регистром rip, продолжаю работу программы иии… ошибка сегментации ..

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

Вот код файла с ptrace:

int main()
{
  int pid = 16227;
  long addr = 0x555AA7B7D1E3;
  struct user_regs_struct regs;
  
  cout << "attach " << ptrace(PTRACE_ATTACH, pid, NULL, NULL)<<endl;
  wait(NULL);
  
  cout << "ставим точку останова " << ptrace(PTRACE_POKETEXT, pid, addr, 0xCC) << endl;

cout << "снимаем процесс с паузы и ждем точки останова "<<ptrace(PTRACE_CONT, pid, NULL, NULL) << endl;
  wait(NULL);
  
  cout << "стоим на точке останова, получаем регистры "<< ptrace(PTRACE_GETREGS, pid, NULL, &regs)<< endl;
  
  
  cout << "удаляем точку останова " << ptrace(PTRACE_POKETEXT, pid, addr, 0x55) << endl;
  
  regs.rip -= 1 ;
  cout << "загружаем регистры с rip -1 " <<  ptrace(PTRACE_SETREGS, pid, NULL, &regs)<< endl;
  
  cout << "пробуем продолжить процесс (CONT) " <<ptrace(PTRACE_CONT, pid, NULL, NULL) << endl; 
  
}

Вывод с этого файла:

attach 0
ставим точку останова 0
снимаем процесс с паузы и ждем точки останова 0
стоим на точке останова, получаем регистры 0
удаляем точку останова 0
загружаем регистры с rip -1 0
пробуем продолжить процесс (CONT) 0

Код программы к которой присоединяюсь:

#include <iostream>
#include <thread>
#define sleep(val) std::this_thread::sleep_for(val * 1000 ##ms)
using namespace std;

void asd()
{
  cout << "asd" << endl;
}

void asd2()
{
  cout << "asd2" << endl;
}

void asd3()
{
  cout << "asd3" << endl;
}


int main()
{
  while(1)
  {
    asd();
    sleep(0.1);
    
    asd2();
    sleep(0.1);
    
    asd3();
    sleep(0.1);
  }
}

Вывод:

asd
asd2
Ошибка сегментирования

В чем проблема? Что я делаю не так?

 ,

helpanite
()

Книги о внутреннем устройстве Линукс

Форум — Talks

Здравствуйте. По ряду причин собираюсь на лечение, интернета там не будет. Давно хотел почитать что-то про внутреннее устройство Линукс. Не так давно прочитал Б. Уорда - ни о чем, ничего не нашел интересного для себя, поверхностно все. Так же могу отозваться о кингах Д.Кетова по этой же тематике - вроде интересное есть, но немного и кусками, сложно уследить за смыслом. Хотя все дочитал.

Порекомендуйте, пожалуйста, литературу по внутреннему устройству Линукс, его ядра и подсистем. Хочу купить или успеть скачать. Интересует не сильно глубокое описание частей системы, процесса загрузки, безопасности, взаимодействия с пользователем, программирования и пр., каких-нибудь структур - короче все, что позволит лучше понять как и что происходит в недрах системы. Вот какие книги вам понравились по этой тематике - посоветуйте, пожалуйста, буду признателен. Конечно, хотелось бы «бумажные» книги, но буду рад и электронным.

Спасибо.

 , ,

netvis
()

Процесс kacpid грузит проц

Форум — General

Поставил на ноут arch и больше ничего, а в процессах висит kacpid, который грузит проц на ~30%. Что это и почему так грузит? Как заставить оставить проц в покое?

Еще какой-то kacpi_notify

 , ,

bubvalet
()

автоматическое заполнение .config

Форум — Linux-install

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

Ну и заодно и отключение ненужного

 , , ,

SPRATAY
()

Ремап буквенной клавиши на Left Win

Форум — Desktop

Перестала нажиматься кнопка «я» на ноуте и теперь, чтобы ее «набрать» приходится копировать символ в буфер обмена и вставлять, что дико медленно и неудобно, особенно в переписке. Пытался переопределить ее на левый Win через xmodmap, а также в /usr/share/X11/xkb/symbols/pc, но все тщетно. Подскажите, есть ли какой-то способ это сделать? Manjaro XFCE.

 , ,

Man-o-Jar
()

Кому VPS в Финляндии?

Форум — Talks

Решил запилить свой тёплый ламповый VPS-хостинг, так как имею возможность купить несколько серверов, и недалеко от меня небольшой датацентр, где можно арендовать стойку.

Поскольку всё буду стараться делать максимально удобно для пользователей, параллельно с созданием тестовых аккаунтов хотелось бы собрать комьюнити на какой-нибудь популярной платформе (telegram/discord/signal) или даже поднять свой форум.

Тут иногда всплывают треды типа «ищу VPS в Европе, чтобы хостер не лез в частную жизнь, плюс хочу максимально настраиваемо, но не особо дорого». При условии, что все пользователи будут мирно сосуществовать друг с другом, в качестве ОС будет использоваться Proxmox VE (максимально конфигурируемо и не особо дорого), а стоимость оборудования отобьётся раньше, чем оно сдохнет, это желание вполне реально удовлетворить. Пока думаю начать с маленького количества пользователей (человек 20 с оплатой около 10€ в месяц), но если будут желающие, мощности можно нарастить.

Если вдруг вам интересно, есть какие-то пожелания по конфигу VPS или расценкам, пожалуйста, заполните форму.

 , , ,

CYB3R
()

Шахматы

Форум — Games

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

  • Chessx - помимо возможности  игры против движка, это прежде всего приложение для работы с базами данных и анализа партий.
  • Xboard - графический интерфейс для игры в шахматы во всех их основных вариациях: европейские, сянци (китайские), сёги (японские), макрук (тайские), а также некоторые их варианты. Для каждой из вариаций нужен отдельный движок поддерживающий её.
  • SCID - клиент с поддержкой работы с базами данных и анализом партий.
  • SCIDvsPC - форк SCID с добавлением ряда новых возможностей пользовательского интерфейса.
  • PyChess - среди прочих возможностей содержит встроенное руководство по дебютам.
  • Knights - клиент для из набора приложений KDE.
  • Gnome-Chess - клиент из набора приложений Gnome.
  • Gambit - небольшое приложение с собственным движком Gupta.
  • Gmchess - приложение для игры в сянци (китайские шахматы).

Шахматные движки

  • Stockfish - один из наиболее продвинутых и активно поддерживаемых на сегодняшний день движков. Используется на многих онлайн ресурсах и как основной в поставках некоторых приложений.
  • Fairy-Stockfish - форк движка Stockfish, поддерживающий различные вариации шахмат.
  • Crafty
  • GNU Chess
  • Sjaak II - слабый движок, дающий возможность играть новичкам. Поддерживает очень много вариаций шахмат и возможность добавлять свои.

Для обучения и игры онлайн хочется выделить несколько ресурсов:

  • lichess.org - хорошие интерактивные руководства по дебютам в так называемых "студиях". Особенно хочется выделить уроки от LeninPerez, где помимо общей теории есть практика для закрепления.

  • chess.com - уроки есть, но часть их них доступна только после регистрации; по дебютам совсем краткое описание; паззлы по сравнению с предыдущим сайтом кажутся более скучными.

  • chess24.com - интересный и сложный, по сравнению с вышеуказанными сайтами, режим  "тактический тренер", который беспощаден к ученику и в случае ошибочного хода в задаче из нескольких ходов сразу переходит к следующей.

  • chess-boom.online - полностью русскоязычный; понравился раздел с описанием дебютов, в котором подробно описана теоретическая часть.

  • lishogi.org - ресурс похожий на lichess, посвящённый игре в «сёги».

  • www.chessdb.cn - база данных для «сянци» с возможностью анализа текущей позиции.

  • www.pychess.org - онлайн ресурс для игры в различные варианты шахмат; есть возможность задания расстановки фигур на доске и анализа текущей позиции с помощью игрового движка.

P.S.
Хотел сначала создать тему, посвящённую нескольким настольным играм (маджонг + риичи маджонг, го, бридж), но получилось, что для Маджонга список повторял бы старую тему, посвящённую ему, с небольшим обновлением для Риичи:

  • OpenRiichi - наверное единственое на текущий момент достаточно доработанное десктопное приложение для игры в риичи (японский маджонг) для Linux.

  • RMahjong - недавно был сделан быстрый порт быстрый порт на python3 (ветка py3); ряд правил так и не реализован, но играть вполне можно.

  • http://tenhou.net/3 - пожалуй, самый известный онлайн-сервер для игры в риичи, на японском :(, но есть сторонний плагин для браузеров (firefox, google chrome) для перевода интерфейса на английский.

Для Го приложений с графическим интерфейсом под linux не так уж много нашлось (Kigo, как пример), а для Бриджа совсем ничего сходу найти не получилось.

 

grem
()

Таблица в консоли

Форум — Development

Привет. Какая-то либа, которая позволит без гемора выводить в консоль таблицы заполнив некоторый двухмерный массив. С автопереносом линий в колонке, если не вмещается целиком. Что это?

 ,

pavlick
()

Как очистить картинки от метаданных?

Форум — General

Всем доброго вечерочка! Не секрет, что фотографируя на мобильник или цифровой фотик на выходе получается не только изображение, но и связанные с ним метаданные. Например, модель камеры или геолокация, много других данных, которыми бы делиться ни с кем не хотелось. Как в Linux полностью очистить изображение от метаданных (желательно от всех)?

 , , , ,

boris_delaet_site
()

Релиз ОС Genode 20.08

Новости — Open Source
Группа Open Source

Вернее фреймворка для построения операционных систем — именно такую терминологию предпочитают авторы из Genode Labs.

Данный конструктор микроядерных ОС поддерживает несколько микроядер из семейства L4, ядро Muen и собственное минималистичное ядро base-hw.

Разработки доступны под лицензией AGPLv3 и, по желанию, коммерческой лицензией: https://genode.org/about/licenses

Попытка сделать вариант, доступный для использования кем-то помимо энтузиастов разработки микроядер называется SculptOS: https://genode.org/download/sculpt

В данном релизе:

  • полная переработка графического стека (в будущем позволит без проблем рестартовать драйвера в случае сбоя);
  • улучшения в интеграции Qt, позволившие частично портировать браузер Falkon (что достаточно наглядно иллюстрирует степень готовности к использованию ОС обывателями);
  • обновления подсистемы шифрования (написанной на SPARK/Ada!);
  • обновления VFS;
  • и множество других улучшений.

Из особенностей данного проекта можно отметить следующее:

  • повсеместное использование xml в качестве формата конфигурации - что может вызвать идиосинкразию у некоторых комментаторов;
  • эталонный уровень написания release notes и документации — если бы все открытые проекты придерживались подобных стандартов жизнь была бы легка и удивительна.

В целом проект радует регулярными релизами, активно и планомерно развивается и выглядит очень перспективным в качестве альтернативы GNU/Linux в светлом микроядерном будущем. Увы, отсутствие порта Emacs демотивирует автора новости от попыток познакомится с наработками проекта глубже, чем чтение документации.

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

 , , , ,

zabbal
()

Работа с файлом виртуального терминала

Форум — General

Смотрю текущий файл терминала: tty. Допустим, показало /dev/pts/1. Потом с другого терминала посылаю на этот команду: echo ls > /dev/pts/1. Команда не работает. Что не так?

 ,

fingolfin
()

На slackbuilds.org поступление hex редакторов

Форум — Talks

Сабж. Добавили beav, bed, hexcurse, hexinator, nchexedit и tweak.

Это всё консольные hex редакторы на ncurses, за исключением проприетарного графического hexinator'а.

 hex редакторы,

saahriktu
()

Загрузить Linux с CD, затем подгрузить ядро и initrd уже установленной на хард ОСи

Форум — Linux-install

Я давно такой трюк проворачивал, лет 10 назад наверное. Загружаешь LiveCD или установочный DVD, переключаешься в однопользовательский режим по «init 1». Затем вводишь пару команд (монтируешь раздел, вводишь путь до vmlinuz и initrd), а следующей командой грузишь установленную на хард ОС. А та система, которая была загружена ранее, выгружается из памяти.

Я уже всё позабывал, как называется эта возможность?

 , ,

ZenitharChampion
()

Hobbits 0.21 — визуализатор бинарных файлов для реверс-инжиниринга

Новости — Разработка
Группа Разработка

4 марта увидел свет Hobbits 0.21 - инструмент для визуализации бинарных файлов в процессе реверс-инжиниринга. Инструмент написан на связке Qt и C++ и распространяется по лицензии MIT.

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

Для бинарных файлов доступные следующие виды представлений:

  • Классический шестнадцатиричный HEX-код
  • Двоичный код
  • ASCII
  • Побитная или побайтовая растеризация
  • Символьная растеризация

>>> Инструкция по работе с программой

>>> Репозиторий на GitHub

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

 hobbits,

Zhbert
()

sed, который «я так вижу»

Форум — Development

Решился я, наконец, выложить свой вариант sed-а, который меня устраивает. В отличии от оригинального, он работает с буфером целиком, а не построчно. Имеет дополнительный и целый стек буферов, а также счётчик, что позволяет несложно обрабатывать вложенный развесистый синтаксис, всевозможные вложенные блоки. Умеет символ '\0', правда для этого требует отсутствия любого другого символа в тексте/паттернах/заменах. Умеет перекодировать через iconv. regex-ы, подгружаемые и имена выгружаемых файлов могут быть динамически сформированы в процессе исполнения. Пока не умеет матчить номера строк, но, думаю это и не надо. Зато буковок под команды — 46.

Полное описание

В качестве примеров приложены скрипты для очистки html-ей после офисов (open/ms) и из lib.ru/samlib.ru для приемлемого результата для ручной правки или просмотра читалками.

 ,

vodz
()

Сергей Гаврилов, „Тензорное исчисление для «чайников»”.

Форум — Talks

Недавно человек спрашивал про тензоры — А посоветуйте что-нибудь почитать про роторы, дивергнецию и тензоры — вспомнили позапрошлогоднюю тему, в которой рекомендовали эту книгу. Случайно обнаружил, что по сети гуляют несколько её версий, самая полная из найденых — тут: http://ffmgu.ru/index.php/Файл:Tensor_dla_chainikov_gavrilov.pdf (62 страницы) Было интересно освежить знания, заодно узнал кое-что новое. Возник вопрос: откуда эта книга? Ощущается некоторая недосказанность, может, за 2 года появился и более полный вариант?

 

question4
()

При компиляции однобайтового массива на 100Мб gcc cъедает 15GB RAM

Форум — Development

Есть сишный файл enclose_io_memfs.c с одним единственным массивом. Весь массив забит разными значениями, не нулями.

#include <stdint.h>
#include <stddef.h>

const uint8_t enclose_io_memfs[114798592] = { 104
,115,113,115,104,55,0,0,25,234,210,93,0,0,2,0,239,1,0,0,1,0,17,0,192,0,1,0,4,0,0,0,48,8,227,225,1,0,0,0,27,167,215,6,0,0,0,0,19,167,215,6,0,0,0,0,255,255,255,255,255,255,255,255,107,96,211,6,0,0,0,0,71,69,213,6,0,0,0,0,200,84,215,6,0,0,0,0,157,166,215,6,0,0,0,0,120,218,140,189,7,92
,206,223,251,63,126,119,183,247,78,37,148,138,38,161,97,183,148,22,146,189,147,172,148,202,222,90,146,221,64,70,40,35,73,40,100,100,84,36,69,50,43,217,178,178,202,200,202,250,31,159,243,60,239,175,115,255,188,30,143,191,199,227,233,188,238,171,211,185,207,235,58,215,185,214,25,45,245,240,243,20,75,73,137,216,63,105,81,111,209,159,79,26,230,226,255,125,118,1,253,171,81
...
};

При самой обычной компиляции gcc -c enclose_io_memfs.c gcc 7.4 под убунтой 18.04 (стандартный, x64) съедает 15GB памяти! (1 процесс сс1). Размер *.с файла - 400Мб, размер получившегося *.о файла - где-то чуть больше 100Мб. Но почему он ест 15Gb и как его отучить от этого? --param ggc-min-expand=0 --param ggc-min-heapsize=0 не помогают.

 , , ,

repu1sion
()

Диаграммы

Форум — Development

Ребята, нужно нарисовать uml диаграммы классов, объектов и состояний. В чем можно нарисовать?

 

Liz812
()

Обработчик webhook`ов гитхаба с минимум зависимостей

Форум — Talks

Хотелось автоматически обновлять проект при пуше в гитхаб, а deployhq с ним работает как-то криво.

Для сабжа сойдет даже cgi скрипт, но это нужен вебсервер с поддержкой cgi

Накатал вот такую штуку. https://github.com/pawnhearts/github_webhook/blob/master/webhook.py ей нужен только питон, используется встроенный в питон http.server. Сервер однопоточный, что и требуется. При запросе он проверяет хэш с вашим секретным словом.

 ,

pawnhearts
()