Задать вопрос
  • Можно ли повредить ОЗУ программой?

    @historydev Автор вопроса
    А если эта программа в ядре, комп просто не будет включаться из-за перегрева и даже биос не поможет, т.к. ядро запускается после того как он всё проверит?
    Написано
  • Проблема с кодом в Unity Ecs, как исправить?

    @historydev
    Код оберни в тег кода, а не цитаты.
    Написано
  • Как прочитать неизвестные данные из памяти по адресу?

    @historydev Автор вопроса
    Василий Банников,

    Тогда тебе надо собственно без ОС запускать свою программу, раз ты хочешь напрямую с памятью работать.
    #[no_std] и так далее. Segfault не будет, если не будет ос ;)

    Так чтобы запустить, мне нужен загрузчик и ещё пара этапов, нет?


    если ты собираешься делать ядро ОС, то тебя этот вопрос волновать не должен.


    В данный момент я над ос, поэтому знать хотелось бы, потому-что по другому я не смогу тестировать, разве что брать загрузчик по гайду и уже с ним тестировать, но хотелось бы чёткого понимания.
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    mayton2019,

    И почитай литературу по системотехнике.
    Начни с описания как устроена современная DDR память. Про контроль четности еще почитай.


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

    Спасибо за информацию, займусь в порядке очерёдности чтивом
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    mayton2019,
    Можно и в тг, я время от времени с некоторыми ребятами отсюда общаюсь, т.к. отдельный вопрос на общение создавать - дич.

    Если конечно желание есть, ник такой-же как в здесь.

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

    Я так-же могу реализовывать функции 'С', так-что у меня есть в запасе malloc, free и необходимое из языка.
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    mayton2019,

    Что значит - повредить? Мне кажется что ты придумал или превнес свою терминологию.
    Здесь бы больше подошло - "изменить". Согласен?

    Чтобы завис бит или сразу байт, не знаю как ячейка физическая называется, знаю что 1 ток пошёл, 0 ток перестал идти.

    Не знаю что конкретно там происходит и как это назвать, изменить - это корректная операция, переключить с 0 на 1, а вот повредить это скорее между, 0.5 и ничего не можешь с ним сделать после этого.
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    mayton2019,

    А тебе для чего? Для чего тебе?


    Для чего-то грандиозного и чертовски интересного)

    Я скоро паять начну походу, не хочется, но этого я ещё не делал и это интересно)
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    mayton2019,


    , все зависит от того что ты себе качаешь. Современный прикладной разработчик на 99%
    вообще не полезет в глубину тех глубин которые ты хочешь для себя копать.


    Меня не интересует разработка в новомодном понимании этого слова, тупой кодинг для Ивана-Бизнесмена это одно.

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

    А денег заработать можно и попроще, чем горбатиться у монитора.
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    mayton2019, Мне важно не что там хранится, а сам процесс доступа, я нашёл крейт который по pid процесса даёт обращаться к его памяти, но при наличии разрешений (судо или админки) и то не во всех случаях обязательно, если 2 процесса твои.

    Я не горю желанием копаться 200 лет в софте написанном 300 лет назад, чтобы предоставить кряк каким-то типам.

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

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

    Я знаю что озу очищается при отключении питания, так-что забить её навсегда висячими указателями не выйдет)

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

    Мои вопросы не несут цели стать мамкиным хакером, если в эту сторону идёт наклон.

    Я разберусь, дело времени, но зачем мне тратить 2 недели, если есть те, кто уже потратили 10 и знают вдоль и поперёк вопрос.

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

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

    Ну или на худой конец направлять, направление я увидел и понял ошибку.
    Но снова-же дрова как-то получают доступ к нужной им памяти и полагаю они приоритетнее чем какие-то поделки-самоделки от Васьки.
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    mayton2019, Это слишком низко, я пока смотрю на qemu/raspberry.

    Посмотрел видео про микро-контроллеры некоторые, это довольно интересно, но их же потом паять нужно, не?

    И в целом они расходятся с моей целью, а именно своё ядро с "hello world" + загрузчик, следом дрова периферии и т.д, если не надоест.

    Я спускаюсь ниже чтобы подтянуть базу, понять как работает это всё и закрепить на мини-ос.
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    Вопрос изначальный - решён, конечная цель поднять ядро и загрузчик, после этого я пойму нужно мне оно или нет.

    Но до этого мне нужно ещё в C покопаться возможно и точно в ассембреле.

    А самое главное разобрать базу, от которой я так далеко был годами, потому-что не было нужды и интереса.
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    SunTechnik, я понимаю что есть ограничения, например первый сегмент должен содержать загрузчик не более 512 байт, но пока не углублялся.

    А начальные адреса памяти и их систему по архитектуре искать?
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    SunTechnik, ошибки утечки памяти?

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

    А драйвера загружаются каким-то особым способом или почему им "всё" можно? - почитаю, но уже не сегодня
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    SunTechnik, спасибо, теперь понял, но ведь я смогу своим способом на уровне ядра получать доступ к памяти, верно?
    Написано
  • Как получить адреса памяти с которыми можно работать?

    @historydev Автор вопроса
    SunTechnik,
    Недочитал, неделю безвылазно читаю, утомило уже.
    Перерыв нужен походу)

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

    @historydev Автор вопроса
    Фак, обкакался, ну бывается чё:

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

    @historydev Автор вопроса
    То есть программа работающая под ОС не может вытащить данные с любого адреса, а только с адреса который был назначен запрошенной ей памяти?
    Написано
  • Как получить адреса памяти с которыми можно работать?

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

    В частности:
    https://ru.m.wikipedia.org/wiki/%D0%A1%D0%B5%D0%B3...

    Виртуальная память - я понимаю что не работаю напрямую с памятью, я так-же понимаю что виртуальные адреса транслируются в реальные и что менеджер памяти в случае её нехватки может хранить данные на диске.

    Сегменты - ТРИЖДЫ перечитал и что мне это дало?
    Я понял что сегменты это N байт памяти которые выделяются менеджером по запросу программы.

    Я пытаюсь прочитать сегмент по адресу N и извлечь данные из него.

    То есть в моём случае байты которые я пытаюсь прочесть пусты, поэтому я получаю ошибки или что?
    Написано
  • Как прочитать неизвестные данные из памяти по адресу?

    @historydev Автор вопроса
    mayton2019, не понял, 16 разрядный это 16-бит?


    Сам посчитай. 16 разрядный сегментный
    регистр который сдвигался влево на 4 бита позволял тебе видеть только 20 бит адресов.
    Написано