The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Код Bcachefs принят в основной состав ядра Linux 6.7"
Отправлено Аноним, 11-Ноя-23 15:29 
> Соглашусь все же, ибо это определение дал сам Тьюринг

Алилуя. Я даже в чем-то согласен насчет битов, НО это наполовину к CPU вопрос. Минимальный юнит который многие CPU адресуют - байт. Быть святее папы римского?

>> Они забавно сделали: замаппили регионы адресов в отдельные биты.
> чет не в курил, ссылку плиз.

Например, https://www.st.com/resource/en/programming_manual/pm0056-stm... - Memory Model, 2.2.5 Bit-Banding.

Такой маппинг, bit[N] <-> u32[N]. Адресов больше чем памяти, они и отмаппили. Можно за 1 атомарную операцию конкретный бит потрогать. Это ARM для МК так, заодно спасет от гонок когда IRQ вклинился в середине RMW и имел свои идеи что сделать с переменной/регистром. Какая вероятность словить IRQ в середине RMW понятно, удачи в дебаге.

>> Блоки данных с HDD изначально вообще не существуют в адресном процтранстве проца.
> в смысле "в адресном пространстве проца"? а южный мост для чего?

Южный мост - частный случай. На том SoC с линем (да, я смогу сабж там погонять) и даже этом десктопе DRAM controller в проце. У SoC часто есть SRAM доступный "сразу", например, чтобы boot loader подымающий DRAM (это целое действо) туда читать. И система команд процов строится вокруг "адресации". У МК RAM и ROM сразу есть после power up. Они все - процы и у них есть адреса. Адрес сам по себе - число.

>> нативного IO он не может в рандомный доступ к 150423-му байту.
> и сколько байт из свопа должны возвратиться в рам?

Завсит от системы. Page fault работает в терминах страниц. Которые чаще всего 4096 байтов. Не очень рандомно - воротить 4096 байтов чтобы запатчить 1 из них.

> Ну да, и "бесконечной ленты" нет выходит :)

Реальные машины сложнее чем та абстракция. Сам по себе адрес лишь число энной разрядности. Соответствует ли конкретному адресу что-то логическое (или физическое) или ничего - вопрос номер два.

В си (асме, unsafe хрусте и еще ряде штук) можно итерировать все адресное пространство указателями. Правда, в многозадачке за левый доступ в unallocated адреса могут и SIGSEGV или его аналог дать. И даже в физической машине с полным доступом результат - весьма варьируется. Некому диапазону адресов может не соответствовать ничего. А железо может такое эскалировать до исключения. Или забить. Случаи разные бывают. У 64 бит систем 2^64 адресов никогда полностью не аллоцированы: не бывает столько памяти у систем.

> случае (power up) кроме "меня" никого нет, всё доступно "мне". "Сам
> себе" я не выделяю если и так "мне" это всё доступно.

"Все" - достаточно абстрактно. Даже при раннем старте - а у вас есть 2^64 памяти? (в случае 64 бит системы). На 32-бит системе типа МК тоже не обязано быть все 4G раскиданых от и до.

Но чисто технически машинный код и яп низкого-среднего уровней могут попытаться сходить в вполне конкретный адрес, итерировать и проч. Можно словить за это от MMU. железа и проч, которые так то могут и эскалировать совсем левый доступ хзкужа в исключение. В bare metal оно сразу вам и прилетит. В многозадачках... его получит ядро. Но потом оно отгейтует абстракцию как "сигнал" типа SIGSEGV или что там, общая идея остается.

> ну и регистры так же доступны, и ЦПУ (с регистрами и АЛУ)
> до лампочки есть у него ММУ блок или нет. Зависит от архитектуры.

У многих CPU регистры, внезапно, не имеют соответствующих им адресов в памяти и не адресуемы "как память". Но есть и экзоты где банк регистров имеет конкретные адреса и можно с блоком регистров как с "RAM" работать. Позволяет эффектные вещи типа переключения контекста заменой 1 указателя "reg frame". Может быть а может и не быть хорошей идеей, давая старт новому классу атак когда пытаются переписать состояние проца левым доступом к памяти или сбить указатель frame.

>> А какие нибудь БД так и половину абстракций ФС пересоздают
> а вот зачем?

Технически ФС сама что-то типа простой БД, но она general purpose. БД может иметь какие-то более специализированные хотелки как это все должно быть из соображений эффективности. В этом месте ФС ей будет скорее мешаться чем помогать, делая примерно то - но, увы, не так.

Режим NOCOW в btrfs (и прочих COW кто умеет этот флаг) в частности просит отвалить в туман с медвежьими услугами если софт считает что лучше чем ФС знает как оно ему было надо. Это настолько близко к "raw разделу" насколько можно через абстракцию именно файла и ФС вывесить. При этом уровень "экстентов" и его парсинг останется, но он же дает админу и софту реаллоцировать размеры файла как надо, с raw разделом это невозможно.

>> Обычные ФС могут быть нереализуемы
> ага сделать sync в tmpfs (return 0)

Для него эта операция не имеет логического смысла. Он будет потерян при крахе или ребуте.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру