• Как в архитектурах risc одинаковые виртуальные адреса разных контекстов задач различаются?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    В risc вроде там куча csr регистров

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

    на разных компиляторах одна си операция ассемблируется то в комбинацию lui + addi, то в комбинацию auipc +addi

    Ты указал ARM в тегах, но у ARM нет инструкций lui и auipc. Такие инструкции есть у RISC-V.
    Если ты посмотришь в The RISC-V Instruction Set Manual, раздел 2.4 Integer Computational Instructions, то увидишь, что опкод lui загружает константу собранную из 20 битов непосредственного значения из инструкции и 12 нулевых младших битов в целевой регистр, а auipc прибавляет такую же точно константу к PC и загружает в целевой регистр результат сложения, и в этом вся разница между ними.

    где какая используется не совсем понимаю.

    lui используется для генерации констант, которые не зависят от того, где расположен код, а auipc для генерации констант, которые двигаются вместе с кодом. Т.е. Если ты хочешь вызвать функцию, которая находится дальше чем ±2К от точки вызова, ты можешь сгенерировать её адрес инструкцией auipc, и полученный код будет работать одинаково, независимо от того, по какому адресу он будет размещён. А если тебе надо поместить в регистр константу, например 0x12345678, то ты можешь это сделать парой инструкций lui rd, 0x12345 ; addi rd, rd, 0x678 и значение константы будет всегда одинаковым, вне зависимости от того, где будет этот код.

    Каким образом одинаковые адреса различаются. Или они просто не могут быть одинаковыми(типа ос позаботиться)?

    Если есть MMU и он используется ОС, то есть и виртуальные адреса и они могут быть одинаковыми у разных процессов. Если MMU нет или он не используется, то ОС размещает все процессы в одном адресном пространстве, нет смысла говорить отдельно о виртуальных адресах, поскольку они равны физическим, адреса выделяемые ОС разным процессам могут быть как одинаковыми (например несколько процессов запущенных из одного исполняемого образа могут использовать один и тот же код и константные данные), так и разными (например изменяемые данные разные у всех процессов, а стеки разные у всех потоков).

    Как они в tlb обрабатываются, если вдруг они реально могут быть одинаковыми, и там нету ни каких дополнительных индексов процесса)

    Выбери конкретную процессорную архитектуру -- обсудим. у многих RISC-архитектур есть ASID, который идентифицирует адресное пространство и записывается вместе с виртуальным адресом в TLB. Но в любом случае ASID -- это просто оптимизация для повышения производительности, когда он отсутствует или переполняется ОС должна сбрасывать содержимое TLB при переключении адресного пространства.

    У ARM есть регистры TTBR с примерно той же функцией, что и cr3 в x86.
    У RISC-V есть CSR satp, содержащий ASID и базовый адрес корневого каталога страничных таблиц. Об этом можно прочитать в разделе 4.1.12 Supervisor Address Translation and Protection (satp) Register спецификации The RISC-V Instruction Set Manual Volume II: Privi....
    Ответ написан
    Комментировать
  • Что учить дальше начинающему джависту?

    Jacen11
    @Jacen11
    хотел бы писать вещи, которые можно пощупать руками и показать друзьям

    - В веб идти не очень хочу

    эм. Ну типа все, просто практически ничего в мире больше нет

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

    которые можно просто запустить у себя на компе
    да любые просто

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

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

    Есть ли у меня соответствующие моим запросам альтернативы?
    ну я вижу одни "мне не нравится". И это перекрывает буквально все сферы. Выглядит как "хочу чтобы ничего не делать, было легко и много денег за это". Так тут все просто, найти легкую работу и на джаве можно, даже без спринга, и будешь копейки получать(лично у меня такая была). Много всем подряд не платят. Традиционно просто джава в банках используется, а эта сфера сложная. Но есть и другие сферы, да и в банках много левых проектов.
    Ответ написан
    4 комментария
  • Какая программа нужна для создание одной сети?

    link_web
    @link_web
    Magento, Laravel, Zend, Shopify, Prestashop, WP
    open vpn поднять
    Ответ написан
    Комментировать
  • Какая книга по Python самая лучшая для новичков и продолжающих?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Лучше Лутца ничего не было и нет.
    Ответ написан
    3 комментария
  • Копирование одного диска на несколько, как ускорить?

    Melkij
    @Melkij
    PostgreSQL DBA
    попробуйте для начала dd if=/dev/sda | tee /dev/sdb /dev/sdc /dev/sdd > /dev/sdc
    сходу проверить негде, но не вижу причин почему бы это не работало.

    можно так
    dd if=/dev/sda | tee >(dd of=/dev/sdb) >(dd of=/dev/sdc) >(dd of=/dev/sdd) > /dev/null

    чтобы был доступ к привычным опциям dd
    Ответ написан
    4 комментария
  • Как в windows записать переменную среды Path, если она слишком велика?

    InternetMaster
    @InternetMaster
    Интернет
    Меняют специальное значение в реестре виндовс.

    Для включения поддержки длинных путей через реестр необходимо найти в разделе HKLM\System\CurrentControlSet\Control\FileSystem параметр с именем LongPathEnabled и задать его значение равным 1.

    Эту операцию можно произвести с помощью PowerShell, командой:

    Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name LongPathsEnabled -Value 1
    Ответ написан
    6 комментариев
  • Можно ли сказать, что Гит работает на блокчейне?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нет. Гит не является блокчейном потому-как в него не закладывались требования по кворуму и гарантий уникальности и нефальсифицируемости истории.

    В git нет понятия блок. И нет алгоритмов POW для подтверждения потраченной работы.

    В git владелец может убить master-бранч что само по себе - принципиально невозможно в криптовалютных проектах

    UPD: Почему я привлекаю именно юзкейс криптовалют. Потому что в наше время блокчейн плотно ассоциирован именно с этой технологией. Хотя само по себе определение блокчейна может быть либеральнее чем я описал. Например POW может и не быть. Просто рассматривая git надо обозначить его сравнительные недостатки чтоб не было в теме попыток спекулировать просто на похожести этих двух технологий. Да они в чем-то похожи но блокчейн во много раз строже по безопасности. Ведь хранение журнала фин-операций - особая и деликатная задача.
    Ответ написан
    3 комментария
  • Как встроить антивирусный движок в python?

    @rPman
    Полагаю в мире есть только один открытый антивирусный движок с условно свободными базами и обновлениями - clamav, вот его и интегрируй, либо через библиотеку libclamav либо вызывай утилиту командной строки

    p.s. альтернатива (лучше но не бесплатно, там сразу десятки антивирусов) - использовать облачные решения от virustotal, у них есть api который позволяет по хешам файлов быстро выдавать ответ (ну и заливать неизвестные)
    Ответ написан
    Комментировать
  • Как можно хранить фотографии в виде байтов?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Если вы хотите хранить или передавать двоичные данные в виде строки, то для этого придумали Base64.
    Для хранения в бд SQL есть тип varbinary, в других БД может быть тип BLOB.
    Ответ написан
    1 комментарий
  • Как экранировать символы в .bash-aliases?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Решил, как порядочный линуксоид вынести алисы в отдельный файл.

    $'/var/www/www-root/data/www\r'

    \r в конце намекает на то, что в этом отдельном файле концы строк виндовые а не юниксовые. dos2unix .bash-aliases должен это пофиксить.
    Ответ написан
    2 комментария
  • Ubuntu выводит -bash: nohub: command not found, что делать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    -bash: nohub: command not found,

    команда называется nohup, сокращение от no hangup.
    Ответ написан
    3 комментария
  • Дорого ли стоит нейросеть?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    дорого и бессмысленно, проще отталкиваться от рендеров или фоток - моделей не так много
    а главное - один фиг все их перебирать для нейронки
    Ответ написан
    Комментировать
  • Зачем нужно разворачивать DHCP сервер на Windows Server если есть роутер?

    @tukreb
    Не нужен, если есть железка, которая умеет это.
    Для вас может быть шоком, но из любого компьютера можно сделать свич, роутер или ещё что-нибудь, всё зависит от ПО и вашего банковского баланса.

    П.С Хотя если вы соединяете ваш сервер без посредников в виде свичей/роутеров (например Сервер + НАС), то тогда DHCP сервер может помочь, с быстрой настройкой вместо вбивания адресов руками, но такое редко делают.
    Ответ написан
    Комментировать
  • Почему is работает не так, как ожидается?

    ElonMask2
    @ElonMask2
    Autor of Tesla Machini and SpaxeX
    Ладно
    a = 'af' Инициализируем ПЕРВУЮ переменную А = АФ  идентиф=1
    b = 'a' Инициализируем ВТОРУЮ переменную Б= А     идентиф=2
    b += 'f' Инициализируем ТРЕТЬЮ переменную Б = А + Ф  идентиф=3
    # А все почему? Строка - НЕИЗМЕНЯЕМЫЙ ТИП
    print(a is b)
    >>> False
    a = 5
    b = 2
    b += 3
    # Тоже самое но, в питоне числа до 255 КЕШИРУЮТСЯ и 50 is 50 и 255 is 255
    print(a is b)
    >>> True


    А тут,
    a = 'af'       #Инициализируем ПЕРВУЮ (ОНА ИДЕТ В КЕШ) А = АФ
    b = 'a' + 'f'  #Инициализируем ВТОРУЮ интерпретатор не тупой и Б = ТОЖЕ АФ (а так как аф есть в кеше Б получает ссылку на ту же память)
    
    print(a is b)
    >>> True


    Где читать? Гугл-
    Изменяемые неизменяемые типы,
    Ответ написан
  • Какая есть литература про парсинг различных форматов данных?

    GavriKos
    @GavriKos
    У каждого формата есть спецификация - вот ее и читайте
    Ответ написан
    Комментировать
  • Как Уменьшить пинг в linux для игр?

    @Wexter
    Так же как и в Windows/MacOS, переездом как можно ближе к серверу
    Ответ написан
    1 комментарий
  • Как передать данные без кавычек в execute() безопасно, чтобы предотвратить SQL-инъекции (PyMySql)?

    Fernus
    @Fernus
    Техник - Механик :)
    https://stackoverflow.com/questions/54113887/place...

    P.S.: Я бы проверял через "белый список" допустимые таблицы...независимо от экранирования в запросе...
    Ответ написан
    7 комментариев
  • Внешний жосткий диск?

    opium
    @opium
    Просто люблю качественно работать
    Для диска хдд в целом вредно любое включение выключение
    Ответ написан
    Комментировать
  • За сколько можно прокачаться не очень хорошему системному администратору до DevOps инженера?

    vldmrmlkv
    @vldmrmlkv
    Systems engineer
    На секунду показалось, что как будто это я писал года 3 назад. Был похожий стек и те же вопросы, пока окончательно не выгорел. За год до этого полностью перешёл на Linux. Потом прошел курсы и поменял работу.

    По теме. Тупой тот, кто не хочет и не может учиться. Рутина без развития демотивирует, работа и профессия должны нравиться. Вы уже начали, значит вопрос решается и это хорошо. Возможно потеряли пару лет - стабильность затягвает, у меня так и было, но теперь вы знаете что делать дальше. Нужно составить план и делать. Попробуйте канбан доски в trello - мне очень зашло. Будет некая игрофикация процесса обучения, приятно когда закрыл ещё одну "таску" и видно объем проделанной работы. Ну или можно купить какой нибудь крутой курс слёрма, но лучше с начала самому - всё основное есть в свободном доступе. Ссылки в конце.

    Начать я бы рекомендовал с linux как основная ОС, а на работе внедрять IaC и мониторинг - ansible, terraform, docker, docker-compose, gitlab, AWX, Portainer, Prometheus, ViktoriaMetrics, Graylog, Loki. Те же агенты zabbix можно раскатывать ansibl'ом, автоматизировать это все в gitlab ci. Провижинить вм terraform'ом. В zabbix api можно много чего автоматизировать. Например, автоматическое добавление новых хостов. Поднять всё, что можно в docker, разобраться с docker-compose. Кубер можно локально посмотреть minikube, поднимается за 10 минут. Для кубера поставьте Lens - не тру конечно, но в нём наглядно видна структура сущностей кубера.

    Пару ссылок по теме:
    https://infinite.education/skillset/linux_administrator
    https://www.youtube.com/@KirillSemaev
    https://github.com/milanm/DevOps-Roadmap
    https://www.youtube.com/@ADV-IT/playlists
    https://github.com/bregman-arie/devops-exercises
    https://landscape.cncf.io/?grouping=category&zoom=60
    https://kubernetes.io/ru/docs/tutorials/kubernetes...
    Ответ написан
    Комментировать