• Как удалить дубликаты внутри строки?

    3vi1_0n3
    @3vi1_0n3
    #!/bin/bash
    IFS='
    '
    exec 3<>data.txt
    while read -u 3 line
    do
    (
            IFS=' '
            result=()
            for word in $line
            do
                    [[ ! "${result[*]}" =~ "$word" ]] && result=(${result[*]} $word)
            done
            echo ${result[*]}
    )
    done
    Ответ написан
    1 комментарий
  • Какой IDE выбрать вместо Borland C++?

    @Filipp42
    Довольно простая IDE - Geany. Она подходит для многих языков.
    Ответ написан
    3 комментария
  • Как процессор распознает длину команды?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Один из вариантов написали выше - кодировать длину в отдельных битах. А можно ещё использовать префиксный код
    Ответ написан
    Комментировать
  • Как процессор распознает длину команды?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Первый байт показывает какая это команда, или тип команды. Далее идет логика которая отрабатывает либо эту конкретную однобайтовую команду, либо осуществляет чтение следующих байт для конкретизации команды дальше. Т.о. как только процессору (с помощью дешифратора команд) становится понятно что за команда, он ей выполняет -- дает ток нужным элементам в нужном направлении.
    Ответ написан
    Комментировать
  • Как процессор распознает длину команды?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    процессор 8080 было восьмибитным.
    То есть он за один такт обрабатывал одну команду из одного байта, затем уже можно было понять как обрабатывать два последующих байта.
    Для таких вещей существует внутренний декодер.
    Раньше был просто специальный регистр (OPCODE), в который помещался первый байт инструкции и процессор декодируя его обрабатывал следующие байты уже согласно этой инструкции
    7tw6E.gif
    Ответ написан
    Комментировать
  • Как процессор распознает длину команды?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    как процессор может отличить длину команды (1, 2, и 3 байт), чтобы выполнить следующую команду ?

    По коду операции -- части команды, которая кодирует действие команды. В процессоре закодировано соответствие кода операции и длины команды. Код операции может полностью содержаться в первом байте команды (как в 8080), либо может быть распределён между несколькими байтами команды. В последнем случае часть кода операции находящаяся в первом байте должна отличаться от кода операции любой однобайтовой команды чтобы их можно было отличить.

    Почему кроме команды Остановить все команды занимают 3 байта?

    Если речь о 8080, то это утверждение неверно. В 8080 есть несколько однобайтовых команд (nop, битовые сдвиги и вращения, push/pop, и т.д.), несколько двухбайтовых (mvi и арифметика с непосредственными значениями -- adi, aci, и т.д.) и несколько трёхбайтовых (команды с прямой адресацией -- lda, sta, и т.д., переходы, вызовы подпрограмм и т.д.). Потому что значения, с которыми оперируют команды находятся в байтах следующих за первым -- в одном, если нужен 1-байтовый операнд и в двух если нужен 2-байтовый операнд или адрес.

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

    Можно посмотреть в исходники отреверсированного 8080.
    Ответ написан
    Комментировать
  • Как процессор распознает длину команды?

    @d-stream
    Готовые решения - не подаю, но...
    Самое простое для понимания:
    например два самых старших бита кода команды определяют ее длину
    соответственно команды
    от 0000000 до 00111111 - будут однобайтовыми
    от 0100000 до 01111111 - будут двухбайтовыми
    от 1000000 до 10111111 - будут трехбайтовыми
    от 1100000 до 11111111 - будут четырехбайтовыми

    Но это не для 8080. Просто для понимания общего смысла.

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

    2. Однобайтных команд у 8080 больше одной. Навскидку: NOP, HALT, INT3. RET*, сдвиги, обмен между регистрами

    3. если говорить о 8080 - то удобнее и понятнее даже не логически, а схемотехнически... а так - один из источников
    Ответ написан
    1 комментарий
  • Отладка небольших ассемблерных кусков кода?

    @4144
    чтобы использовать привычный синтаксис ассембрерного кода, используйте внутри asm блока команду ".intel_syntax;"
    asm {
        ".intel_syntax;"
        "mov eax, 10;"
        "mov ebx, 20;"
        "add eax, ebx;"
        "mov edx, eax;"
        ".att_syntax;"
      };

    Для использования переменных, используйте подстановки из ответа jcmvbkbc или макросы препроцессора.
    Ответ написан
    Комментировать
  • Как правильно настроить SSH доступ?

    Nird_o
    @Nird_o
    Побил рекорд по количеству прожитых мной дней
    3. Хочу разрешить доступ по SSH только пользователю alexey

    Этого пользователя нужно добавить в группу ssh и ему должен быть разрешен логин на сервере и командный интерпретатор /bin/bash например.
    Насколько такая практика приветствуется или лучше менять дефолтный файл ?

    Обычно дефолтный копируют рядом в sshd_config.old и правят sshd_config по этому, по поводу
    По идее сначала включается мой файл настроек, а потом идёт дефолтный

    ничего не скажу, никогда так не делал.
    4. Почему перегружать сервис ssh надо командой sudo systemctl restart ssh а не sudo systemctl restart sshd ?

    Кто Вам сказал что нужно делать именно так?
    systemctl status ssh
    и
    systemctl status sshd
    говорят, что это одно и тоже. Т.е. без разницы какой командой Вы перезапустите сервис.
    Ответ написан
    4 комментария
  • Sleep на долю секунды как?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    В доках пишут


    читайте доки внимательнее
    20160803-081549.png
    Ответ написан
    Комментировать
  • Как ускорить загрузку Ubuntu 20.04?

    @Alexander_The_Great
    Заменить
    GRUB_CMDLINE_LINUX_DEFAULT="splash quiet" на GRUB_CMDLINE_LINUX_DEFAULT="" в /etc/default/grub
    Затем сделать update-grub
    При запуске системы будет выводиться лог. Увидишь, где именно подвисает, поскольку проблема вполне может быть на стороне железа.
    Эти же данные можно и в логах просмотреть, но так проще.

    P.S.: вот эти сервисы: NetworkManager-wait-online.service и systemd-networkd-wait-online.service в любом случае отключи, поскольку смысла в них нет.
    Ответ написан
    1 комментарий
  • Что делать после настройки веб-сервера?

    shambler81
    @shambler81 Куратор тега Linux
    Линукс это конструктор, какой вам нужен мануал как пользоваться конструктором ?
    У вас есть детали и вам дали ман как они работают, а что вы хотите с этого собрать это уже ваша проблема.
    Ваше решение стоит в сборках. ( веб морды для управления веб серверами)

    Bitrix VM - отлично оптимизированно, ставится на любые виртуальные машины и чистый centos, в 1 нажатие.
    Имеет удобную консольную админку, прес 1 прес2 там и letsencrypt и backup и тд и тп.
    Vestacp - ставится так же одной командой, при инсталяции можно выбирать настройки.
    braynicp - большая может много ставится в 1 клик, не очень удобынй интерфейс, но функционала вагон и тележка.
    ispconfig3 - вот тут большие мануалы ;) вам понравится. Я пользуюсь ей просто кастомлю под себя.
    чистый веб свервер и просто файлы для редактирования не совсем удобны, хотя и имеют место быть.
    Ответ написан
    2 комментария
  • Что делать после настройки веб-сервера?

    Zoominger
    @Zoominger Куратор тега Системное администрирование
    System Integrator
    Ну так и гуглите "защита apache от взлома" и "бэкап nginx".
    Ответ написан
    2 комментария