• Как в bash через sed заменить строку через регулярное выражение?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    lang="[a-zA-z]{2}"
    диапазон из 2-х любых латинских букв

    Должно быть lang="[a-zA-Z]\{2\}"
    Ответ написан
    Комментировать
  • Как сделать ожидание завершения linux I/0 процесса?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Можно как-то дождаться завершения всех?

    Если они не демонизируются, можно ждать их завершения командой wait, см. man bash. Если демонизируются -- надо наблюдать за их PID-файлами.
    Ответ написан
    Комментировать
  • Почему не работает загрузчик?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    я так понял, происходит прыжок в никуда?

    Расскажи, как ты это понял?

    почему может не работать?

    Первая ошибка здесь: твой код собран под 0:7c00, но ты загрузил в ds 7c00 вместо нуля.
    Ответ написан
  • Что обозначает инструкция?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    помогите понять инструкцию на MASM:
    mov dx, es:[bx].StartCluster

    Это mov dx, es:[bx + StartCluster], загрузка из базового адреса в регистре + смещения, только в псевдо-С записи. Где-то раньше должна быть определена структура с полем StartCluster, которое используется здесь в качестве смещения.
    Ответ написан
    5 комментариев
  • Как скомпилировать код C в .ko?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Ответ написан
    Комментировать
  • Что не так с моим кодом assembler?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что не так

    Я не нашёл ответов в доступной документации, за исключением следующей ремарки в описании ключа /AT командной строки:
    Enables tiny-memory-model support.
    Enables error messages for code constructs
    that violate the requirements for .com format files.

    Подозреваю, что assume не может использоваться в masm в исходниках .com, поскольку такие исходники не могут иметь символьных ссылок на сегменты.

    Если вопрос -- "что делать", то ответ -- выкинуть директиву assume из кода.
    Ответ написан
  • Как это работает?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как и почему это работало тогда, а вот в досбоксе неработает?


    int 2f -- это multiplex interrupt, портал к дополнениям выполняющимся вокруг DOS. Функция 0x1600 -- это конкретно тест "имеются ли в наличии сервисы windows", см. Почему это должно работать в досбоксе, там же нет виндовых сервисов?
    Ответ написан
    Комментировать
  • Почему я не могу попасть в single-user mode [решено]?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    WTF? Это у меня кривые руки или в ядре при переходе от 4.х к 5.х опять что-то втихушку поправили

    single -- это не параметр ядра вообще. Это параметр init. Сравнивай системы инициализации.
    С systemd для этого эффекта можно использовать параметр systemd.unit=rescue, см.

    Ну и имеет смысл проверить, что grep -w single /proc/cmdline подтверждает, что параметр в неизменном виде добрался до юзерспейса.
    Ответ написан
    9 комментариев
  • Пробую собрать bmminer-cgminer492, ошибка при сборке. Каких зависимостей не хватает?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    получаю следующую ошибку

    судя по тексту ошибок, всего хватает, но ошибки в коде. Я бы в cgminer.c добавил #include <inttypes.h>
    Ответ написан
    Комментировать
  • Генерация паролей на c++ Не могу понять в чем проблема?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    std::pow(alphabet.length(), password_length);

    82 в десятой степени -- это 0xbebf59a0_7dab4400, т.е. это число уже не влезает в 64-битный long long int. Вам нужно придумать другой способ считать пароли.
    Ответ написан
    Комментировать
  • Как исправить вывод матрицы С++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    при замене почему то предпоследний элемент строки и столбца заменяется на случайное число из матрицы

    не на случайное же, а поскольку строка пересекается с заменяемым столбцом, то на тот элемент, который был из строки скопирован в столбец ранее.

    Можно пофиксить например так:

    void replaceColumn(int** matrix, int size) {
        int maxRow = 0;
        int maxElement = 0;
        int copy;
    
        // Находим строку с максимальным элементом
        for (int i = 0; i < size; ++i) {
            for (int j = 0; j < size; ++j) {
                if (matrix[i][j] > maxElement) {
                    maxElement = matrix[i][j];
                    maxRow = i;
                }
            }
        }
    
        copy = matrix[maxRow][size - 2];
        // Заменяем предпоследний столбец найденной строки
        for (int i = 0; i < size; i++) {
            matrix[i][size - 2] = (i == size - 2) ? copy : matrix[maxRow][i];
        }
    
    }
    Ответ написан
  • Происходит ошибка сборки GNU M4, почему?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    /mnt/lfs/usr/include/bits/stdlib.h:86:3: error: #error "Assumed value of MB_LEN_MAX wrong"

    Ну что, нужно взять /mnt/lfs/usr/include/bits/stdlib.h и почитать внимательно, что там вокруг 86й строчки написано и где это assumed value зашито. Вообще эта ошибка не выглядит специфичной для m4, больше похоже на глюк libc.
    Ответ написан
  • Как поменять на ассемблере значения двух массивов местами?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Написал такой код, меняет местами только первые 8 символов, а дальше не знаю как продолжить.

    Надо ответить себе на следующие вопросы:
    - что именно эта функция меняет местами
    - почему используются опкоды fild и fistp
    - в каких единицах измеряется аргумент Len
    - как должны меняться eax и esi внутри цикла
    Ответ написан
    Комментировать
  • Как просчитать "свободную" орбиту для своего спутника?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    eegmak, я намекаю на то, что для практически осуществимого любительского запуска вопрос "рассчитать, чтобы ни с кем не столкнуться" не стоит вообще. Если вопрос теоретический, то, насколько мне известно, носитель доставляет в заданную точку с заданным вектором скорости, а дальше берут модель сил действующих на спутник и тупо интегрируют уравнения движения по этой модели. Сложность модели варьируется в зависимости от нужной точности и ожидаемого соотношения величин действующих на него сил. Можно начать со сферической земли в вакууме, можно с эллиптической, можно добавить геоидность и вращение, добавить атмосферу, добавить действие луны и солнца…
    Ответ написан
  • Как запустить executable в линукс?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Судя по отсутствию каталога /lib64 в корне системы где выводится not found там не установлена поддержка ABI amd64. Нужно либо доустановить 64-биные библиотеки, либо слинковать server-linux статически.
    Ответ написан
    Комментировать
  • Что будет если запустить init через exec?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Что будет если запустить init через exec?

    Вне контекста процесса с PID 1 -- всё то же самое, что будет, если просто запустить его руками из оболочки.
    Ответ написан
    Комментировать
  • Как при помощи AppArmor выдать доступ только к одной папке?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Нужно, чтобы у /server/script.sh был доступ только к папке /server, но при выполнении скрипта с этим конфигом он спокойно читает содержимое из /var/log

    Невозможно на уровне ядра ОС отличить выполнение скрипта от выполнения интерпретатора этого скрипта. Ядро выполняет /bin/sh (или что у этого /server/script.sh написано в шебанге), а не сам /server/script.sh.
    Ответ написан
    Комментировать
  • Как вернуть модуль ядра после rmmod?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Вопрос первый: как обратно эти модули загрузить

    командой insmod.

    Вопрос второй: usbserial это вообще на все порты?

    usbserial может управлять устройствами произвольного типа, но по умолчанию он управляет только небольшим набором типов устройств.
    Ответ написан
    Комментировать
  • Как искать значение в сбалансированном бинарном дереве?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как искать значение в сбалансированном бинарном дереве?

    Так же, как и в несбалансированном. Сбалансированность на стратегию поиска никак не влияет. Влияет логика построения дерева.

    Чтобы создать из этого сбалансированное дерево я беру элементы с индексом floor(arr.length / 2)

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

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

    Если текущий корень больше искомого -- идти в левое поддерево, Если меньше -- идти в правое. Если равен -- то найдено, после чего идти в оба поддерева.
    Ответ написан
    3 комментария
  • Почему waitpid() возвращает ошибку?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему waitpid возращает такую ошибку?
    waitpid: No child processes

    Потому что он вызывается как в родительском, так и в дочернем процессе. В родительском процессе он работает успешно, а у дочернего процесса waitpid вызывается с pid == 0, а такого процесса точно нет.
    Ответ написан