Обновить
39
0.5

Пользователь

Отправить сообщение

Присоединяюсь к вашей скорби и негодованию, шлю лучи добра.

Да что угодно, контроллер станка какого-нибудь.

дружочек

К кому вы обращаетесь? К переводчику статьи?

Каждый сегмент имеет свой собственный размер и базовый адрес в физической памяти.

Нет, базовый адрес сегмента — это линейный адрес, а не физический. Они не тождественны в общем случае, и только если бит PG в CR0 выключен, линейный адрес будет численно равен физическому.

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

Каждый из этих регистров хранит базовый адрес соответствующего сегмента.

Нет, не хранит. В реальном режиме он хранит индекс параграфа физпамяти, к которому будет приплюсовано смещение.

В защищенном режиме он хранит селектор, который состоит из битовых полей, отдельные биты которого задают индекс дескриптора сегмента в глобальной/локальной таблице дескрипторов.

Но, что это интересно, в исходном ошибочном утверждении таки есть доля правды: с введением защищенного режима у сегментных регистров появилась невидимая пользователю теневая часть, в которую процессор заносит базу, лимит, атрибуты доступа соответствующего сегмента, чтобы затем при каждом обращении к сегменту не читать эту информацию из GDT/LDT. То есть это такой кеш для текущего элемента GDT/LDT.

Эта модель была широко использована в ранних компьютерных системах и операционных системах, таких как Intel 8086/8088, и была частично сохранена в более поздних архитектурах x86.

Чего это частично? По мере развития 8086/80186/80286/80386/80486/80586 от сегментов никто не отказывался и их функциональность никак не урезал. Наоборот, появились регистры FS и GS.

Это только в amd64 решили рубить с плеча, потому что парадигма поменялась: раньше инновации в области процессорных архитектур мотивировали системных арограммистов на интересные решения в системном софте, а теперь тупо спрос рождает предложения.

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

Как раз таки не страдает, в отличие от архитектур с flat-моделью памяти. Вот единое адресное пространство процесса очень легко фрагментировать микровыделениями, так, что свободно будет 80%, но нельзя будет выделить непрерывный блок, размером хотя бы 20% от суммарного объема свободной части АП.

А вот с сегментами такой проблемы нет, она есть только на уровне фрагментации линейного адресного пространства. Ах, если бы инженеры Intel сделали PDBR не в составе CR3, а в составе дескриптора сегмента... в этом случае проблема фрагментации была бы решена на корню.

Но и без этого, фрагментацию линейного адресного пространства можно было бы решить дефрагментацией: блоки данных можно было в нужные моменты времени сдвигать/раздвигать в линейном АП, чтобы устранить или расширить гэпы. При этом даже копирование данных не пришлось бы делать: достаточно править PDE/PTE, меняя трансляцию линейных адресов в PFN-ы.

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

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

Не попробую, потому что не существует плагина под мою IDE

Я не представяю, как АИ-помощник может помочь. Он должен разбираться в предметной оласти, а откуда ему это знать. Для этого мой код полностью будет сливаться провайдеру АИ-сеовиса?

Я думал это шутка, что кто-то вместо написания кода доверяет задачу нейросетям.

И наконец, в последнем блоке case, используется символ универсального сопоставления. Он выглядит как знак подчёркивания (_) и играет роль ветви else условного оператора.

Ну гениально же! Лучшего выбора и сделать было нельзя. Но мне кажется создатели этого языка, подарка судьбы для продавцов курсов, недостаточно преисполнились в своем дзене

Вместо if нужно было использовать символ ?, а вместо else — символ /.

Возможно мы увидим это в каком-нибудь ином новорожденном языке, например, языке Udaff. Курсы по которому будут рекламировать из каждой дырки.

Часовые перекомпиляции — признак неверной организации проекта.

Поставил статье минус за то, что «-менеджер» в заголовке и первом предложении пропущен, и при этом пропущен не по нелепой случайности, а целенаправленно.

Терпеть не могу, когда отгрызают куски слов и издеваются над семантикой текста, например, когда вместо «климат-контроль» (контроль климата) пишут «климат».

Paging канонично переводить как «страничная организация памяти», а не как «разбиение на страницы».

Графика скорее да, звук нет, GPIO естественно.

Эх, хау-ту-шка.

Я бы с удовольствием почитал статью о «матане», который заставляет звук звучать так, словно он доносится сверху, сзади, а ее просто слева.

Не могу заранее очертить. Границы хотелок — это 386й или 486й процессор, точнее совместимый с ним.

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

Ну где же одноплатники с x86-процессором?

Откуда в VGA сигналы Pr-Y-Pb?

С блобом это так не будет работать, все что стоит справа от blob: это просто ничего не значащая строка, уникально идентифицирующая блоб, а сам блоб — это объект, который создается клиентским кодом (JS) и сам же этот код волен записывать в блоб произвольные данные, таким образом никакого запроса к серверу при использовании блоба нет вообще.

По крайней мере так я понимаю, хотя я вышел из веб-разработки до того, как был изобретен блоб.

Другое дело, что у меня подход с блобом не используется инстаграммом (хотя когда-то в прошлом я помню, что блобы использовались), а используется прямое указание URL картинки или видео.

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

Я делаю ПКМ по стори и жму «Показать код». Открываются инструменты разработчика, вкладка с DOM-деревом, кликнутый элемент выделен.

Задача найти ближайший DOM-элемент типа <img> или <video>, в зависимости от типа истрии. Он будет накрыт дивом, чтобы заблокировать контекстное меню, поэтому смотрим выше дива, находим нужный элемент, смотрим у него атрибут src и готово.

Можно просто удалить из дерева прозрачные перекрывающие дивы, блокирующие контекстное меню, а потом кликнуть правой кнопкой и выбрать «Сохранить объект как...».

Да вроде бы пока сториз скачивается классическим путем.

Информация

В рейтинге
2 135-й
Откуда
Петропавловск, Северо-Казахстанская обл., Казахстан
Зарегистрирован
Активность

Специализация

Software Developer, Embedded Software Engineer
Pure C
Assembler
X86 asm
Win32 API
Visual Basic
MySQL
Git
OOP
Electronics Development
Reverse development