The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Код Bcachefs принят в основной состав ядра Linux 6.7, opennews (??), 31-Окт-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


21. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (1), 31-Окт-23, 09:16 
Нет, не издеваюсь, казалось бы оффлайновая должна быть, если возможна архитектурно.
Ответить | Правка | Наверх | Cообщить модератору

25. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +1 +/
Сообщение от Аноним (-), 31-Окт-23, 09:29 
Чисто теоретически на таком дизайне это сделать - вообще не проблема. Чисто практически - насколько уже сделали и работает ли это - а вот будет -rc1, приходи да посмотри. И если вдруг еще нет, или жуткие глюки, а фичу хочется - можно попробовать ну там баг в багзилу повесить, как напоминалку, потому что cow без хотя-бы офлайн дедупа это и правда забавно.

Самое очевидное что там не было когда я смотрел недавно это backrefs, сталбыть замена девайсов и прочий shrink файлухи будет заметно хуже btrfs'а. Но это tradeoff: можно отстройку реверс-индекса делать плавно и в рантайме всегда, а можно конденсированно в момент операции. Оба варианта имеют свои плюсы и минусы. Без backrefs быстрее в крейсерском режиме но когда захочется shrink или изъятие девайса наступит момент пожалеть о такой экономии.

Ответить | Правка | Наверх | Cообщить модератору

121. "Код Bcachefs принят в основной состав ядра Linux 6.7"  –1 +/
Сообщение от Аноним (120), 31-Окт-23, 14:07 
В fs/bcachefs/fs-io.c
loff_t bch2_remap_file_range() даже вроде поход на зачатки реализации нужных ioctl'ов. Но насколько сие работает - ессно будет понятно когда -RC1 выкатят.
Ответить | Правка | Наверх | Cообщить модератору

91. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +1 +/
Сообщение от OpenEcho (?), 31-Окт-23, 12:24 
>  казалось бы оффлайновая должна быть, если возможна архитектурно.

Кэширование - это о скорости, а не о экономии. Делать дедупликацию в ущерб скорости в этом случае - это шаг назад

Ответить | Правка | К родителю #21 | Наверх | Cообщить модератору

147. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 31-Окт-23, 16:04 
файловая система ничего не должна кешировать, она организует способ хранения в зависимости от устройства хранения.
Ответить | Правка | Наверх | Cообщить модератору

169. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от OpenEcho (?), 31-Окт-23, 18:20 
> файловая система ничего не должна кешировать, она организует способ хранения в зависимости
> от устройства хранения.

По моему новость была именно о кэшировании ;)

Ответить | Правка | Наверх | Cообщить модератору

193. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 31-Окт-23, 22:04 
> По моему новость была именно о кэшировании ;)

""""
Особенностью Bcachefs является поддержка многослойного подключения накопителей, при котором хранилище компонуется из нескольких слоёв - к нижнему слою подключаются наиболее быстрые накопители (SSD), которые используются для кэширования часто используемых данных, а верхний слой образуют более ёмкие и дешёвые диски, обеспечивающие хранение менее востребованных данных. Между слоями может применяться кэширование в режиме отложенной записи (writeback). Накопители можно динамически добавлять и отсоединять от раздела без остановки использования файловой системы (данные мигрируют автоматически).
""""

вот этой хренью фс заниматься не должна!!!

Ответить | Правка | Наверх | Cообщить модератору

198. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 31-Окт-23, 23:35 
> вот этой хренью фс заниматься не должна!!!

Как показал пример bcache - осмысленно заинтегрировать с учетом свойств девайсов может быть достаточно интересной опцией. Файлухе виднее всего что с файлами творится. А блочный уровень понятия не имеет что это за блоки и потребуются ли они реально еще раз вообще, может это кус метаданных который отброшен навсегда (весьма типично для cow). К тому же cow дизайны на кеширование блочного уровня неважно маппятся.

Но вы можете показать как оно у вас лучше работает. Let's the battle begin! И мы посмотрим кто кого сделает. Это и определит что и как "должно" быть. Файт!

Ответить | Правка | Наверх | Cообщить модератору

208. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 01-Ноя-23, 02:07 
> Но вы можете показать как оно у вас лучше работает. Let's the
> battle begin! И мы посмотрим кто кого сделает. Это и определит
> что и как "должно" быть. Файт!

отлично, начнем с определения, что есть блочное устройство хранения, ФС и какие функции они выполняют?

Ответить | Правка | Наверх | Cообщить модератору

221. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 01-Ноя-23, 04:38 
>> Но вы можете показать как оно у вас лучше работает. Let's the
>> battle begin! И мы посмотрим кто кого сделает. Это и определит
>> что и как "должно" быть. Файт!
> отлично, начнем с определения, что есть блочное устройство хранения, ФС и какие
> функции они выполняют?

Блочное устройство это устройство хранения которое хранит данные, оперируя при типовых операциях блоками данных как минимальным юнитом IO.

При том сейчас наметилось некое разделение, вылившееся в Zoned. Оно было и раньше, как MTD, потому что блоки бывают разные и блоки флеша - на самом деле совсем не то же что сектора HDD. Но MTD слишком хардкорно, Zoned это еще одна попытка нащупать баланс между полным абстрагированием в фирмвари истинной природы накопителя и спихиванием сложностей на ядра, ФС и блочный уровень.

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

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

Ответить | Правка | Наверх | Cообщить модератору

285. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 01-Ноя-23, 16:24 
> Блочное устройство это устройство хранения которое хранит данные, оперируя при типовых
> операциях блоками данных как минимальным юнитом IO.

ОЗУ - блочное устройство?

> Но вот как показала практика, есть довольно большая разница между минимальным определением
> автомобиля и тем что реально хочется. Да, без круиз контроля и
> кондиционера водитель не умрет. Однако их отсутствие точно не будет фичой.
> И популярности не добавит.

реально хочу, что бы автомобиль летал, вопрос тот же - должен он летать?


Ответить | Правка | Наверх | Cообщить модератору

327. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 02-Ноя-23, 04:46 
> ОЗУ - блочное устройство?

В общем случае за него не считается - ибо произвольно адресуемо вплоть до побайтового доступа. В блочном устройстве нельзя пойти и изменить только 105-й байт от начала памяти, минимальный юнит это сектор/блок. И идем кантовать минимум 512 байтов кусок, даже если хотели 1 байт изменить. А то и 4К в более современных хардах. Ну вот не умеет оно записывать 1 байт. Потому и блочное.

В Flash еще хитрее, там есть "pages" и "eraseblocks" а запись разнесена 2 разные операции, стирание и программирование. И если pages еще могут на сектор смахивать то eraseblock измеряется в мегабайтах. Так что это еще и КРУПНОблочное устройство, да еще с нетривиальными заморочками, и наружу - довольно приблизительная абстракция. А пойти и гарантированно записать 105-й байт от начала девайса? Не, так в флеше в общем случае нельзя. Иногда, и с большими оговорками - может быть, но при этом все равно с eraseblocks знакомство состоится. Так что наружу они предстают чем-то с блоками, отличие этой абстракции от реальных кишок дико варьируется, от почти 1 в 1 до огромного FTL.

При желании из RAM можно эмулировать блочный девайс, но это лишь эмуляция. Умея писать в произвольный регион, соврать что нифига, только блоками - да не вопрос. Наоборот ессно не то чтобы нельзя но сильно менее эффективно - поддержать абстракцию произвольного доступа можно только RMW на весь блок. Прочитать сектор, запатчить там 105-й байт, записать обратно. Своротив все 512 байтов ради одного. Потому и блочное.

> реально хочу, что бы автомобиль летал, вопрос тот же - должен он летать?

С учетом числа тех кто пытается такое сделать, и sci-fi где оно так - возможно что да. Глупо утыкаться в 2 измерения и стоять в пробках когда измерений три. А я от вас отличаюсь тем что на самом деле хочу - небольшой звездолет с гипердвигателем и машиной времени. Чтобы навигировать по 4 измерениям как босс. Ну вот и с файлухами так же.

Ответить | Правка | Наверх | Cообщить модератору

364. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 02-Ноя-23, 14:33 
> В общем случае за него не считается - ибо произвольно адресуемо вплоть
> до побайтового доступа.

ага, а tmpfs это что за ФС? Произвольно адрессуется? это что такое? Линейная там адрессация, а вот произвольный там - доступ. И в то же время я же не имею возможности прямого изменения бита данных, вот вам и блочное устройство с размером блока в 8 бит.

> Ну вот не умеет оно записывать 1 байт. Потому и блочное.

дело не в записи, а в адрессуемости.


> Так что наружу они предстают чем-то с блоками, отличие этой абстракции от реальных кишок дико варьируется, от почти 1 в 1 до огромного FTL.

А ФС то в итоге будет работать разве не с единым интерфейсом блочного устройства, а все вся остальная магия на совести драйвера этого устройства?


> При желании из RAM можно эмулировать блочный девайс, но это лишь эмуляция.

в смысле эмуляция? рамдиск это эмуляция или полноценное блочное устройство?
  
> Своротив все 512 байтов ради одного. Потому и блочное.

своротив 8 битов, ради одного - потому и блочное.

> Ну вот и с файлухами так же.

в этом то вся и беда. Рожденный ползать ..... (ц) М. Горький


Ответить | Правка | Наверх | Cообщить модератору

424. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 03-Ноя-23, 15:22 
> ага, а tmpfs это что за ФС? Произвольно адрессуется? это что такое?

Это - файловая система в оперативке. Вот только к блочным устройствам это не относится уже.

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

Вот позвольте! Никто нигде не утверждал что ВСЕМ файлухам НЕОБХОДИМО именно блочные устройства, в обязаловку. Есть всякие специализированные экспонаты, НЕ ориентированные на вот именно блочные устройства. Или ориентированные на какую-то специфику. Например flash filesystems. Какой-нибудь UBIFS вы только на флеше и подымете. Флеши в ТОМ их виде, кстати, не "block device" в терминах линя, а таки "MTD" (memory-technology device). Чтобя явно их отличать от обычных блочных девайсов по типу HDD.

В линухе TMPFS вообще никаким блочным устройствам формально вроде не соответствует и являет собой просто аллокации кернелом в оперативе как я понимаю. Без backing блочного устройства, а потому жрущая RAM по объему реально-занятого и не испытывающая проблем отдать место. С блочным устройством - а там сложнее понять используется ли блок и если он отобран под рамдиск, назад его забрать уже очень отдельный трабл будет. Но есть и такое, скажем ZRAM, он еще жмет страницы к тому же. Сватается в основном для свопа но вот там именно явный block device сэмулирован - и на него можно любую ФС для блочных устройств уже разложить. А у tmpfs вообще понятия блочного девайса и форматирования (в энную ФС) - нету. Такая ерунда.

Мораль сей басни? ФС != блочный девайс. Кто-то сомневался?

>> Ну вот не умеет оно записывать 1 байт. Потому и блочное.
> дело не в записи, а в адрессуемости.

Под блочными девайсами подразумевают характерный класс девайсов с характерными свойствами. Оператива сама по себе не есть блочный девайс, и tmpfs как раз хороший пример - она вообще не обладает формальным блочным девайсом и маунтится в лине "вникуда". Т.е. вы ее заказываете но этому никакой блочный девайс не соответствует. В частности lsblk ничего не покажет для tmpfs.

> А ФС то в итоге будет работать разве не с единым интерфейсом
> блочного устройства, а все вся остальная магия на совести драйвера этого
> устройства?

Tmpfs в линухе не подперт никаким явным блочным девайсом. Такая ерунда. Наберите lsblk на компе с tmpfs и убедитесь. А откуда следует что ФС == блочный девайс? Ниоткуда? То-то и оно. В лине есть несколько ФС которые не подперты блочными устройствами или хотят иной тип устройств типа MTD например.

>> При желании из RAM можно эмулировать блочный девайс, но это лишь эмуляция.
> в смысле эмуляция? рамдиск это эмуляция или полноценное блочное устройство?

Можно вывесить вот именно блочное устройство - даже соврав что надо работать посекторно. В этом случае софт не отличит сие от иного блочного девайса.

А можно этого не делать и работать как tmpfs. Но на tmpfs как раз и нельзя нарезать произвольную файлуху для блочных девайсов - у него backing block device просто нет. Не на что нарезать ФС. Оно самодостаточная абстракция не подпертая блочным устройством.

>> Своротив все 512 байтов ради одного. Потому и блочное.
> своротив 8 битов, ради одного - потому и блочное.

В устаканившихся у вон тех терминах блок обычно подразумевает сектор 512 или 4096 байтов. И как блочный девайс обычно вывешено вот такое вот.

>> Ну вот и с файлухами так же.
> в этом то вся и беда. Рожденный ползать ..... (ц) М. Горький

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

Ответить | Правка | К родителю #364 | Наверх | Cообщить модератору

437. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 03-Ноя-23, 18:08 
> Это - файловая система в оперативке. Вот только к блочным устройствам это
> не относится уже.

https://www.kernel.org/doc/html/latest/filesystems/tmpfs.html
https://docs.kernel.org/admin-guide/blockdev/ramdisk.html

/dev/shm
/dev/ram
/dev/zram

это все что?


> Мораль сей басни? ФС != блочный девайс. Кто-то сомневался?

а никто этого и не утверждал, ФС уровнем абстракции выше уровня устройства.

> Под блочными девайсами подразумевают характерный класс девайсов с характерными свойствами.
> Оператива сама по себе не есть блочный девайс, и tmpfs как
> раз хороший пример - она вообще не обладает формальным блочным девайсом
> и маунтится в лине "вникуда". Т.е. вы ее заказываете но этому
> никакой блочный девайс не соответствует. В частности lsblk ничего не покажет
> для tmpfs.

/dev/shm что это?

> А откуда следует что
> ФС == блочный девайс? Ниоткуда?

А кто такой вывод сделал? я такого не делал.


> Можно вывесить вот именно блочное устройство - даже соврав что надо работать
> посекторно. В этом случае софт не отличит сие от иного блочного
> девайса.

зачем tmpfs нужны вот эти параметры монтирования?

"""

tmpfs has three mount options for sizing:

size
nr_blocks
nr_inodes

"""

https://www.kernel.org/doc/html/latest/filesystems/tmpfs.html


> Но на tmpfs как раз и нельзя нарезать произвольную файлуху для блочных девайсов -
> у него backing block device просто нет. Не на что нарезать
> ФС. Оно самодостаточная абстракция не подпертая блочным устройством.

всмысле нарезать ФС?

> В устаканившихся у вон тех терминах блок обычно подразумевает сектор 512 или
> 4096 байтов. И как блочный девайс обычно вывешено вот такое вот.

ну это не серьезное утверждение.


> Ну вот я и хочу себе звездолет с гипердвигателем и машиной времени.

Я тоже хочу, но вам не предлагаю :)

Ответить | Правка | К родителю #424 | Наверх | Cообщить модератору

450. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 04-Ноя-23, 10:20 
> https://www.kernel.org/doc/html/latest/filesystems/tmpfs.html

Ну и что там про блочные устройства? И mkfs у него нет. Монтирование самодостаточно для создания, никакой девайс при этом не указывается.

> /dev/shm
> /dev/ram
> /dev/zram
> это все что?

Это разные устройства так или связанные с RAM. По довольно разным поводам. В этом контексте, рамдиски и zram - ведут себя как эмуляция блочного устроства, zram еще и сжатый. А shm вообще про совместно используемые регионы памяти между процессами. Как это все к топику?

>> Мораль сей басни? ФС != блочный девайс. Кто-то сомневался?
> а никто этого и не утверждал, ФС уровнем абстракции выше уровня устройства.

Ну и отлично. ФС может быть вообще подперта чем угодно.

> /dev/shm что это?

Это shared память между процессами насколько я помню. К tmpfs не относится вообще.

> А кто такой вывод сделал? я такого не делал.

Отлично, а о чем тогда спич?

> зачем tmpfs нужны вот эти параметры монтирования?

...
> nr_inodes

Параметры абстракции. В какой-то явный блочный девайс это в случае tmpfs не отливается. Тут еще стоит добавить что с RAM зачастую удобно работать юнитами размерами со страницу. Из соображений выставления прав. Это однако не минимальный юнит IO.

Более того - из-за страниц можно даже эмулировать RAM свопфайлами и разделами. Но это не уже на самом деле не рандомный доступ - гранулярность как правило страница 4К и это уже таки не RAM. Потому что рандомного доступа как раз уже и нет.

> всмысле нарезать ФС?

В прямом. В /dev/ramX или /dev/zramX можно класть любую ФС для блочных устройств в пределах технических лимитов. Скажем, создав там ФС mkfs'ом. Коли уж эмулирует блочный уровень. Tmpfs этого не делает и там нет таких понятий, как и явного блочного девайса. В этом смысле - сие довольно разные технологии.

> ну это не серьезное утверждение.

Ну как бы устаканились вот такие абстракции. Они местами пересекаются. Местами несколько условны. Местами эмулируют друг друга. Но в конечном итоге нечто либо вывешено как блочный девайс, либо нет. И критерий блочного девайса - минимальный юнит IO. Более формально - если оно есть для lsblk, то несомненно блочный девайс. Если нету - значит это что-то другое, даже если и похоже на вид.

>> Ну вот я и хочу себе звездолет с гипердвигателем и машиной времени.
> Я тоже хочу, но вам не предлагаю :)

А я вот пришел и показал ALL что экспериментальная модель - вот - выкачена из ангара и взята в оборот. Тестовые пилоты желающие покамикадзить - велкам.

Ответить | Правка | К родителю #437 | Наверх | Cообщить модератору

468. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 04-Ноя-23, 19:32 
> Ну и что там про блочные устройства? И mkfs у него нет.
> Монтирование самодостаточно для создания, никакой девайс при этом не указывается.

То что нет у нет mkfs не отменяет факта, что ФС работает с блоками, сами говорите самодостаточность.

Читаем внимательно вот это предложение:

Contrary to brd ramdisks, tmpfs has its own filesystem, it does not rely on the block layer at all.

Вот ее самодостаточность, в которой говориться, что она реализует интерфейс (уровень) ФС и не пологается на блочный уровень, УРОВЕНЬ. tmpfs сама для себя и ФС и блочное устройство, ибо использует блоки "kernel internal caches". То есть на блочное устройство tmpfs нельзя накатить другую ФС которая будет работать с ним (блочным устройством tmpfs) на уровне блочного устройства.

> Это разные устройства так или связанные с RAM. По довольно разным поводам.
> В этом контексте, рамдиски и zram - ведут себя как эмуляция
> блочного устроства, zram еще и сжатый. А shm вообще про совместно
> используемые регионы памяти между процессами. Как это все к топику?

An alternative to tmpfs and ramfs is to use brd to create RAM disks (/dev/ram*), which allows you to simulate a block device disk in physical RAM. To write data you would just then need to create an regular filesystem on top this ramdisk.

И к топику имеет ровно то отношение, что ОЗУ - блочное устройство!

> Ну и отлично. ФС может быть вообще подперта чем угодно.

И даже самоподперта.

> Это shared память между процессами насколько я помню. К tmpfs не относится
> вообще.

https://www.kernel.org/doc/gorman/html/understand/understand...

> Отлично, а о чем тогда спич?

спич начинался с того, что ОЗУ - такое же блочное устройство, как и хдд.


> Потому что рандомного доступа как раз уже и нет.

в смысле нет рандомного доступа?

> В прямом. В /dev/ramX или /dev/zramX можно класть любую ФС для блочных
> устройств в пределах технических лимитов. Скажем, создав там ФС mkfs'ом. Коли
> уж эмулирует блочный уровень. Tmpfs этого не делает и там нет
> таких понятий, как и явного блочного девайса. В этом смысле -
> сие довольно разные технологии.

ну вы же сами указали на самодостаточность tmpfs, она представляет пользователю уровень ФС, а не блочный, но в тоже время сама работает с ОЗУ (kernel internal caches) как с блочным устройством, ибо уровень ФС требует этого. Если посмотреть на синтаксис fstab, то там в качестве source device и fs type указывается tmpfs - из-за самодостаточности.


> Более формально - если оно есть для lsblk,
> то несомненно блочный девайс. Если нету - значит это что-то другое,
> даже если и похоже на вид.

обсуждать это все щас бесмыссленно, потому-что никто толком не продумывал (теоретический труд) что должно из себя представлять ФС и вообще ОС в целом. И появления таких недо (само) достаточных ФС как tmpfs, ramfs, procfs, debugfs, securityfs, devtmpfs, configfs, hugetlbfs O_o и всякой дичи с окончанием ФС говорит лишь о том, что от идеи "все есть файл" почему бы не родиться идеи "всё есть ФС" и "все есть блочное устройство"?

> А я вот пришел и показал ALL что экспериментальная модель - вот
> - выкачена из ангара и взята в оборот. Тестовые пилоты желающие
> покамикадзить - велкам.

а дальше что? получение оборонзаказа? патенты? и т.д.

Ответить | Правка | К родителю #450 | Наверх | Cообщить модератору

481. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 06-Ноя-23, 02:50 
> То что нет у нет mkfs не отменяет факта, что ФС работает
> с блоками, сами говорите самодостаточность.

Как ей удобно - так и работает. К минимальному юниту IO для RAM это отношения не имеет.

> it does not rely on the block layer at all.

Я в курсе. И чего?

> То есть на блочное устройство tmpfs нельзя накатить другую ФС которая
> будет работать с ним (блочным устройством tmpfs) на уровне блочного устройства.

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

> И к топику имеет ровно то отношение, что ОЗУ - блочное устройство!

Не так. "RAM может, но не обязан, использоваться для эмуляции блочных устройств".
Можно в обратную сторону: возможна эмуляция RAM из блочных устройств (paging). Но хреновая и медленная. В т.ч. и потому что IO с юнитами по 4096 байтов != "random access".

>[оверквотинг удален]
> почему бы не родиться идеи "всё есть ФС" и "все есть блочное устройство"?

Потому что не все - блочное устройство. В *nix даже есть "антипод", character device. RAM сам по себе - вообще не "device", это непосредственно доступная память (см в конце).

> а дальше что? получение оборонзаказа? патенты? и т.д.

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

Если что - иллюстрация на тему что есть рандомный доступ:


$ cat 1.c

#include <stdint.h>
int main()
{
  uint8_t * something = (uint8_t *) 0x100;
  *something = 234;
}


Да, это на обычном компе упадет, потому что адрес 0x100 не обязан быть доступной оперативой. Но с более валидным адресом - положит байт по указанному адресу. При этом нет никаких системных вызовов и "девайсов". А вот обратиться так к HDD и т.п. - удачи.
Ответить | Правка | К родителю #468 | Наверх | Cообщить модератору

482. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 06-Ноя-23, 16:28 
> Не так. "RAM может, но не обязан, использоваться для эмуляции блочных устройств".

RAM и есть, а обязан или не обязан - не имеет значения.

> В т.ч. и потому что IO с юнитами
> по 4096 байтов != "random access".

лол, кек - понятие "произвольный доступ" используется в терминах БЛОКА, у каждого блока данных свой адрес, к которому можно произвольно обратиться, и не важно каков размер этого блока данных, 1 или 4096 байтов.

первый абзац
https://en.wikipedia.org/wiki/Hard_disk_drive

> RAM сам по себе - вообще не "device", это
> непосредственно доступная память (см в конце).

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

> А вот обратиться так к HDD и т.п. - удачи.

https://en.wikipedia.org/wiki/Logical_block_addressing

Ответить | Правка | К родителю #481 | Наверх | Cообщить модератору

485. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 08-Ноя-23, 07:58 
>> Не так. "RAM может, но не обязан, использоваться для эмуляции блочных устройств".
> RAM и есть, а обязан или не обязан - не имеет значения.

Это именно эмуляция, дополнительным софтом и абстракциями. Я на x86-64 запускаю виртуалки с системой команд ARM или RISCV. Это не делает x86-64 ARM-ом. Нативный интерфейс x86-64 проца это x86-64 поток команд. Даже если я и могу вот тут запустить ARMовский бинарник, это весьма забавная абстракция, не более. С RAM аналогично, то что я могу вывесить там эмуляцию блочного девайса не делает ее блочным девайсом.

> лол, кек - понятие "произвольный доступ" используется в терминах БЛОКА,

"Блок" и "произвольный доступ" - взаимоисключающие параграфы. Вы или можете адресовать конкретный байт или нет.

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

Вообще-то важно. Вон там машинный код напрямую может пойти и положить число 234 в адрес 0x100 и это немедленно и без дополнительных условий обеспечивается, если там RAM. А в случае с блоком - так нельзя. Как максимум можно подкостылить и сделать вид что получилось, но вот это уже - эмуляция.

> https://en.wikipedia.org/wiki/Hard_disk_drive

Я рад что вы умеете читать вику, теперь запишите число 234 по смещению 0x100 от начала, не портя другие байты. А, так изначально нельзя? Потому и блочное устройство - на уровне его нативного интерфейса. А то что swap им RAM изображает - круто, но считать ЭТО за именно "random access memory" я все же не буду. Потому что хотя чередой RMW + IO и можно изобразить ЭТО, сие будет крайне медленно и неэффективно и не является нативным интерфейсом девайса.

> ну за это спасибо Фон Нейману, добавляем новый диск - новое устройство
> хранения, а добавляем новую планку памяти - доп. размер.

Планка напрямую адресуема из программы - а HDD на уровне кода программы - изначально вообще не существует. Это уже надо запросы к операционке делать (сисколы). А переменную программы там не разложишь. Такая "небольшая" разница на уровне программного интерфейса.

> Хотя между этими устройствами хранения одна лишь разница, одна
> энергозависимая другая - нет.

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

>> А вот обратиться так к HDD и т.п. - удачи.
> https://en.wikipedia.org/wiki/Logical_block_addressing

В этих терминах не описывается "хочу чтобы байт по смещению 0x100 стал равен 234". Чтобы это обеспечить придется сделать нехилую эмуляцию, RMW, сисколы и проч. На этом основании я и отказываюсь считать это RAM - изначально "random access" там как раз и нету.

NB существуют и всякие достаточно забавные промежуточные случаи. Скажем SPI флешка сама по себе не есть "random access memory" - оно в общем случае "девайс на интерфейсе" из которого напрямую вообще выполнять ничего нельзя, надо команды слать. А запись там совсем не рандомная. Но небольшим хардварным довеском доступы в регион памяти начинают транслироваться в SPI-команды прозрачно, хоть и медленно. Вплоть до того что проц при RESET читает допустим память с адреса [0x0] - а железка транслирует это в SPI-команды чтения флехи. Результат достаточно трудноклассифицируем. С одной стороны это нечто типа "ROM" для проца, с другой - оговорок столько что это точно не "RAM" и даже "ROM" только с очень большими оговорками и весьма медленно из-за той трансляции. А нафиг это надо? Так мелким штукам может быть проще грузиться, для проца это прямое выполнение, юзается дешевая малолапая SPI флеха, все обеспечивается простыми железками. Но это "внеклассовая" экзотика. Она не цепляется ни как RAM ни как блочный девайс в том же линухе. Как MTD - еще может быть. Но на это и не получится обычную "блочную" файлуху изобразить, да и "ROM" оно только на начальном этапе, потом код загрузчика буферит это в настоящий RAM потому что так неизмеримо быстрее.

Ответить | Правка | К родителю #482 | Наверх | Cообщить модератору

497. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 09-Ноя-23, 00:55 
> Это именно эмуляция, дополнительным софтом и абстракциями.

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


> "Блок" и "произвольный доступ" - взаимоисключающие параграфы. Вы или можете адресовать
> конкретный байт или нет.

какой нафиг бай, а бит я могу адресовать? а почему не могу? потомучто минимальный блок данных который можно адресовать в РАМ это 8 бит! тоже самое и с хдд, адрессуются блоки данных, а не байты, а прикол знаете в чем? а бай вовсе не 8 бит, бывает и 7 и 9 лол кек.


> Вообще-то важно. Вон там машинный код напрямую может пойти и положить число
> 234 в адрес 0x100 и это немедленно и без дополнительных условий
> обеспечивается, если там RAM. А в случае с блоком - так
> нельзя. Как максимум можно подкостылить и сделать вид что получилось, но
> вот это уже - эмуляция.

адрессуются блоки данных, я не виноват что у хдд блок данных имеет размер 512 байт, а рам 1 байт.


> Я рад что вы умеете читать вику, теперь запишите число 234 по
> смещению 0x100 от начала, не портя другие байты. А, так изначально
> нельзя? Потому и блочное устройство - на уровне его нативного интерфейса.

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

> Планка напрямую адресуема из программы - а HDD на уровне кода программы
> - изначально вообще не существует. Это уже надо запросы к операционке
> делать (сисколы). А переменную программы там не разложишь. Такая "небольшая" разница
> на уровне программного интерфейса.

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

> В этих терминах не описывается "хочу чтобы байт по смещению 0x100 стал
> равен 234". Чтобы это обеспечить придется сделать нехилую эмуляцию, RMW, сисколы
> и проч. На этом основании я и отказываюсь считать это RAM
> - изначально "random access" там как раз и нету.

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

> NB существуют и всякие достаточно забавные промежуточные случаи. Скажем SPI флешка сама
> по себе не есть "random access memory" - оно в общем
> случае "девайс на интерфейсе" из которого напрямую вообще выполнять ничего нельзя,
> надо команды слать. А запись там совсем не рандомная.

для уровня который предоставляет ФС до лампочки, пользователю нужно, открыть записать и закрыть, все. ДЛя ФС прочла блок, записала блок и всё. Драйвер как там представляет блочный интерфейс уже не важно.


Ответить | Правка | К родителю #485 | Наверх | Cообщить модератору

502. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 10-Ноя-23, 22:31 
> эмуляция это то, чего нет,

У RAM нет изначально никаких "блоков", по определению RAM. Так же как x86 на самом деле не умеет выполнять ARMовские программы. Что общего? Это абстракции создаваемые дополнительным софтом.

> а блочное устройство из РАМ сделать можно споскойно, и это не эмуляция.

Изначально блоков нет. Но можно создать абстракцию добавочным софтом.

> какой нафиг бай, а бит я могу адресовать? а почему не могу?

В некоторых штуках, типа Cortex M, можно и лобовую атомарную адресацию конкретных битов 1 операцией. Они забавно сделали: замаппили регионы адресов в отдельные биты. И вот уже запись u32 в конкретный адрес - пишет 1 конкретный бит в регионе alias'а. Можно и чтение, значение бита вернет. Почему u32? Нативный размер слова и шины проца, видимо так проще всего было, а адресов много и экономить не требовалось. Можно, вот, и 1 бит атомарно, если это встроенная RAM или регистры периферии.

> потомучто минимальный блок данных который можно адресовать в РАМ это 8 бит!

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

> тоже самое и с хдд, адрессуются блоки данных, а не байты, а прикол знаете в чем?
> а бай вовсе не 8 бит, бывает и 7 и 9 лол кек.

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

> адрессуются блоки данных, я не виноват что у хдд блок данных имеет
> размер 512 байт, а рам 1 байт.

Блоки данных с HDD изначально вообще не существуют в адресном процтранстве проца. И поддержанием связанных с этим абстракций так то занимается довольно большой пласт софта. С которым "файлушники" в линухе неизбежно познакомятся.

> смещению относительно какого базавого адреса? вы понимаете что есть базовый адрес и смещение?

Можно 0 для определенности. Хороший базовый адрес, у всех одинаковый более-менее. Даже на жестком диске понятие вида "150423-й байт от начала" как таковая - валидно. А то что выполнять "mod 512 math" прерогатива дополнительного софта - бывают в жизни огорчения. Если уж возвращать вам фавор, mmap() делает весьма убедительную абстракцию линейного адресного пространства из вон того. Однако это не делает HDD RAM как таковым. На уровне его нативного IO он не может в рандомный доступ к 150423-му байту. И придется просить сектор с ним, а там если хотите можете RMW сами сделать. Но это как раз уже и был не рандомный доступ а блочный.

> а что если я не делаю аллокация, моя программа что нибудь знает
> о памяти? нет не знает.

Эй, эксперт, а вы программировать точно умеете и понимаете программную модель типовых компьютерных систем? В неймановской абстракции адреса существуют "сами по себе" и то что там RAM будет например изначально замаплен - ничему не противоречит. Аллокация это абстракция многозадачных ОС (которые сами так то абстракция). Скажем в C можно программировать и совсем без *alloc(). Используя стек, или статическое распределение памяти. Более того - в embedded вполне нормально если *alloc() в фирмвари вообще нет. При этом память не может "закончиться". Такой абстракции просто нет. И если оно запустилось - то уж работает. Исключение разве что переполнение стека.

Более того - у многих современных камней есть блоки SRAM доступные сразу после power up без дополнительных условий, оговорок и конфигурации этого. Вот прям с power up первыми командами берете и адресуете это. В терминах машинного кода на этом этапе аллокаций вообще нет как класса, эта абстракция будет создана где-то сильно потом.

> Моей программе вообще доступна вся память если на то пошло.

Ей доступно "все адресное пространство". Что в нем замаплено в общем то отдельный вопрос. Но ничему не противоречит и что туда та или иная RAM замаплена, сразу, хоть при power up системы, при этом RAM доступен, а абстракции типа "аллокаций" если и будут то где-то сильно потом. И вообще-то они опциональны, даже если с ними и удобнее/лучше в ряде случаев.

> все зависит на каком уровне абстракции работает ваша программа, вот для этого
> и придумали файловые системы,

Как ни странно posix поддерживает абстракцию как будто это обычная 1-задачная система и заметить отличия можно только если это отдельно и явно захотеть и оно зачем-то надо было. Это упрощает програминг: если кто не хочет париться многозадачностью, он и не парится. И код так портабельнее.

> чтобы не думали о всяких смещениях и адрессах.

Работая с файлами таки все равно придется в ряде случаев трекать из смещения. А какие нибудь БД так и половину абстракций ФС пересоздают, а файлом оно в основном "для удобства менеджмента админом". Этому вообще может быть удобнее на RAW разделе - но так админам неудобно, как например стораж расширить? В btrfs то "device add", получаем +n места, файл без проблем отрастет и туда. А с разделом такое упс. Не тот уровень абстракций.

> Достаточно иметь интерфейс, открой такой-то файл, запиши в него столько-то
> байт по такому смещению (учтите смещению относительно начала файла,

Фокус в том что файловые системы так то тоже - абстракции. Как впрочем и файлы. Их поддерживает специфичный софт - файловые системы.

В простейшем случае можно и без этих абстракций. У меня есть несколько фирмварей напрямую таскающих сектора с SD/MMC. Но в операционке общего назначения это было бы не очень удобно. В узкоспециализированной фирмвари где оно для специфичных целей - можно и вот отдельные сектора. И таки RMW секторов и не особо удобно и не то чтобы сильно эффективно vs реально рандомный доступ. И память под буферизацию сектора жрет, для мелочи - аргумент. SD/MMC в этом смысле типичный представитель "блочных устройств". С весьма нерандомным доступом.

> и организует хранение файлов. А все остальное это уже работа драйвера устройства.

Драйвера устройств так то тоже - всего лишь абстракции. При том в разных ОС еще и разные.

> для уровня который предоставляет ФС до лампочки, пользователю нужно, открыть записать и
> закрыть, все.

Обычные ФС могут быть нереализуемы на неподходящей абстракции. И тогда этого не будет. Или будет вам наглухо readonly эмуляция - и хватит с вас. А попробуйте в роутере squashfs перезаписать, узнаете в чем прикол!

Абстракция ФС - есть, но... 1) у нее нет понятия записи и 2) это не "блочное устройство" внезапно а MTD вообще какой окажется. И 3) более обычные ФС на таком жить конечно же не смогут.

> ДЛя ФС прочла блок, записала блок и всё. Драйвер
> как там представляет блочный интерфейс уже не важно.

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

Ответить | Правка | К родителю #497 | Наверх | Cообщить модератору

505. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 11-Ноя-23, 01:56 
> У RAM нет изначально никаких "блоков", по определению RAM.

Соглашусь все же, ибо это определение дал сам Тьюринг, своей "бесконечной лентой". Не мне, его определения ставить под сомнение.

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

чет не в курил, ссылку плиз.

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

в смысле "в адресном пространстве проца"? а южный мост для чего?

> Однако это не делает HDD RAM как таковым. На уровне его
> нативного IO он не может в рандомный доступ к 150423-му байту.

и сколько байт из свопа должны возвратиться в рам?


> В неймановской абстракции адреса существуют "сами по себе" и
> то что там RAM будет например изначально замаплен - ничему не
> противоречит.

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

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

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

> Но ничему не противоречит и что туда та или
> иная RAM замаплена, сразу, хоть при power up системы, при этом
> RAM доступен, а абстракции типа "аллокаций" если и будут то где-то
> сильно потом. И вообще-то они опциональны, даже если с ними и
> удобнее/лучше в ряде случаев.

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

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

а вот зачем?

> Обычные ФС могут быть нереализуемы

ага сделать sync в tmpfs (return 0)

Ответить | Правка | К родителю #502 | Наверх | Cообщить модератору

507. "Код 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)

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

Ответить | Правка | К родителю #505 | Наверх | Cообщить модератору

508. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 11-Ноя-23, 20:01 
> Например, https://www.st.com/resource/en/programming_manual/pm0056-stm...
> - Memory Model, 2.2.5 Bit-Banding.
> Такой маппинг, bit[N] <-> u32[N]. Адресов больше чем памяти, они и отмаппили.
> Можно за 1 атомарную операцию конкретный бит потрогать. Это ARM для

а совокупность битов?

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

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

> А железо может такое эскалировать до
> исключения. Или забить. Случаи разные бывают. У 64 бит систем 2^64
> адресов никогда полностью не аллоцированы: не бывает столько памяти у систем.

ММУ это контроллирует.

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

есть или нету, выявиться на этапе инициализации памяти.


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

Зависит от архитектуры ЦПУ и системы комманд (ISA).


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

так это интерфейс который должна реализовать любая ФС, иначе нет смысла вообще в рам реализовывать ФС, ибо это недо-ФС получается по определению. Будет ли иметь смысл допустим реализовывать всякое кеширование в ram-based ФС?

Ответить | Правка | К родителю #507 | Наверх | Cообщить модератору

509. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 11-Ноя-23, 23:34 
> а совокупность битов?

А для этого байты есть. Произвольные за цикл нельзя? Вы и разные байты в разных закоулках RAM за цикл не могли. Симметрия.

>> процов строится вокруг "адресации".

...
> в смысле вокруг адресов?

Режимы адресации - часть набора команд. Это как раз про вычисление адресов команд и данных. Тоже числа. Описывающие где брать следудющую команду. Или данные для нее.

> а инструкции процессор откуда должен считывать?

Как правило тоже из адресов, на которые указывает число в специфичном регистре известном как PC (Program Counter), IP (Instruction Pointer) или как его там кто называет.

Технически, используя асм, указатели в си, и т.п. как правило можно сделать доступ на произвольный адрес и как I-code и как D-bus. Проц это попробует. Получится ли - второй вопрос.

> откуда он знает, что вот первая инструкция, вот вторая и т.д.?

Поведение проца при power up регламентировано в доке, где он первую команду берет. Дальнейшее на усмотрение запустившегося софта и его соглашений.

Есть еще варианты. Хардварный дебагинтерфейс типа JTAG или сервисный проц может засетапить состояние проца как считает нужным и отпустить его работать. Скажем PSP на новых AMD так x86 запускает, уже инициализировав DRAM своей фирмварью.

>> адресов никогда полностью не аллоцированы: не бывает столько памяти у систем.
> ММУ это контроллирует.

В общем случае - железо и его конфигурация. У cortex M нет MMU но скажем попытка чтения или записи адреса 0 - воздается. Не любят в ARM null pointer.

> есть или нету, выявиться на этапе инициализации памяти.

На данный момент систем с 2^64 байтов в 1 системе не существует, на это можно расчитывать.

...
> так это интерфейс который должна реализовать любая ФС,

Он может быть и весьма номинальным, как тот пример.

> ли иметь смысл допустим реализовывать всякое кеширование в ram-based ФС?

Кеширование RAM в RAM? Я знаю только 1 осмысленный сценарий, zram. Там paging и проч юзается чтобы страницы еще и сжать. Когда страница потребуется - до того как ее отдать ее сперва распакуют. Но это не совсем кеширование, это креативное использование paging для "сжатия оперативки".

Ответить | Правка | К родителю #508 | Наверх | Cообщить модератору

510. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 12-Ноя-23, 17:00 
> Технически, используя асм, указатели в си, и т.п. как правило можно сделать
> доступ на произвольный адрес и как I-code и как D-bus. Проц
> это попробует. Получится ли - второй вопрос.

зависит еще в какой регион памяти попадет там же "The processor has a fixed memory map that provides up to 4 GB of addressable memory. "


> Кеширование RAM в RAM? Я знаю только 1 осмысленный сценарий, zram. Там
> paging и проч юзается чтобы страницы еще и сжать. Когда страница
> потребуется - до того как ее отдать ее сперва распакуют. Но
> это не совсем кеширование, это креативное использование paging для "сжатия оперативки".

formerly called compcache ("compressed cache") :)
zram can then be used for swap

Ответить | Правка | К родителю #509 | Наверх | Cообщить модератору

512. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 12-Ноя-23, 21:00 
> зависит еще в какой регион памяти попадет там же "The processor has
> a fixed memory map that provides up to 4 GB of addressable memory. "

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

> zram can then be used for swap

Это сжатое блочное устройство в оперативке. Своп это одно из частных применений но с ним можно делать все что можно делать с "блочным устройством" (например разделы создать, ФС разложить, ...).

Интересно в основном прозрачным сжатием. Доволльно быстрым если это LZ4 или LZO+RLE. В силу блочности есть нехилые ограничения: если 2 страницы (как вариатн 3) удалось в 1 сжать, окей, выигрыш. А если сжалось лишь немного - оно таки с округлением до страниц и выигрыша не будет. Но оперативка хорошо жмется и по факту - можно вот выгрузить откровенно холодные страницы в сжатый вид, но если они все же потребуются, взять их из RAM и распаковать не идет ни в какое сравнение с механическим диском, и в отличие от SSD не протирается записями. Так что довольно полезная штука, я этим все свопы и позаменял. И системы отзывчивее, и неиспользуемые страницы, вот, пакуются, больше RAM тем кому она нужна за счет этого.

Ответить | Правка | К родителю #510 | Наверх | Cообщить модератору

233. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 01-Ноя-23, 06:20 
Еще бы понять, кто кому должен ограничиваться рамками юниксовой идеологии "всё есть файл", и зачем оттуда читать по одному байту, когда перфоленты вышли из моды. Отображение в память таки давно перетянули из VMS, и ради удобного mmap() даже размер регистров адреса увеличили до 64-х разрядов. Ниже писали про дедупликацию памяти, и рядом с дедупликацией ФС получается удивительная вещь - дублирование функциональности. Я бы лучше подумал, как куски кода отправить в корзину, потому что "любая проблема в информатике может быть решена с помощью дополнительного уровня косвенности", кроме бесконечного количества таких уровней. Вот только некогда - все силы уходят на борьбу с терминологической путаницей.)
Ответить | Правка | К родителю #193 | Наверх | Cообщить модератору

244. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (244), 01-Ноя-23, 08:14 
> Ниже писали про дедупликацию памяти, и рядом с дедупликацией ФС получается
> удивительная вещь - дублирование функциональности. Я бы лучше подумал, как куски
> кода отправить в корзину, потому что "любая проблема в информатике может
> быть решена с помощью дополнительного уровня косвенности", кроме бесконечного количества
> таких уровней. Вот только некогда - все силы уходят на борьбу
> с терминологической путаницей.)

Как вы понимаете, если кто-то придумывает как сделать дедуп абстракциям - это делается. Но для этого надо осознать HOW TO. Характерный пример? Closures (да, так можно и на си!) vs bcache -> lib где это использует уже bcache и bcachefs. А со временем в ТАКОМ виде это и еще кто поюзает. Когда и если оно им станет надо.

Ответить | Правка | Наверх | Cообщить модератору

266. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 01-Ноя-23, 11:50 
Сейчас проблема не только в "надо". Архитектура ядра созревала на другом железе, в актуальных для того времени условиях. Что бы в неё вписать что-то новое, приходится искать обходные пути. Автору Bcachefs это удалось, пусть оно отчасти выглядит как костыли и не по канонам, но со временем опыт будет учтён и приведёт к изменениям, надо полагать. Шишкин, кстати, точно так же в имеющейся архитектуре тесто, просто у него своё представление, как оно должно быть
Ответить | Правка | Наверх | Cообщить модератору

277. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (277), 01-Ноя-23, 14:57 
> Сейчас проблема не только в "надо". Архитектура ядра созревала на другом железе,
> в актуальных для того времени условиях.

Да. И когда IO стал быстрый, это стало икаться. И там своя крузада с folios, io_uring и чем там еще для снижения оверхеда операций. Одна из причин по которым файлухи вне ядра это трабла - внутренние апи довольно круто рефакторят для снижения оверхеда.

> Что бы в неё вписать что-то новое, приходится искать обходные пути.
> Автору Bcachefs это удалось, пусть оно отчасти выглядит как костыли и не по канонам,

На btrfs было больше наездов, им сложнее было. Кенту попроще. Он уже второй в таком духе, так что меньше тупых претензий, народ уже понимает что сильно кастомный дизайн. Но со временем в идеале наверное должен появиться некий фреймворк для упрощения создания CoW. Если поймут как реюзабельные компоненты выделить.

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

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

Ответить | Правка | Наверх | Cообщить модератору

297. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 01-Ноя-23, 17:52 
Шишкин в курсе тех проблем. Ему нет смысла вторить людям, с кем он как бы в конфронтации на данном этапе, он смотрит подальше. Если принять, что все его "наезды" на Linux адресованы на самом деле в Россию, то они заиграют новыми красками. Президент указывает развивать науку и вот это вот всё. Тут самое время кое-кому заявить "Эдуард, раз Вы такой умный, вот дюжина перспективных студентов, готовых заглядывать в рот и ловить каждое слово". Вместо этого господин с фамилией на туже букву чем занимается? Он кстати куда-то пропал отсюда, увидев цитату Линуса "show me the code".
Ответить | Правка | Наверх | Cообщить модератору

328. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 02-Ноя-23, 05:05 
> Шишкин в курсе тех проблем.

Я никогда не видел никаких реальных пруфов этого. А даже если и, из этого никогда не вытекало ничего полезного для меня. Не, юзать недопиленые out of tree нечто на своих данных мне не айс. А что там внутрях галеры типа хреновой дороги - мне не видно и честно говоря малоинтересно. Во всяком случае, то что на публику выгружалось хреновой дорогой воображение не поражало.

Так что с моей точки зрения - теории какими бы они там красивыми ни были не привели ни к каким видимым мне практически значимым результатам. Представьте себе что электричество оказалось лишь игрушкой для пятка фриков на планете? Мы бы тогда даже не смогли тут переписываться - все это никогда просто не возникло бы. До сих пор корябали бы письма ручкой. С доставкой почтальоном и RTT от 3 дней до месяца, RFC1149 был бы суровой реальностью.

> Ему нет смысла вторить людям, с кем он как бы в конфронтации на данном этапе,

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

> он смотрит подальше.

Наверное, туда же куда участники "русский инженер" с их опросом. Во всяком случае, это наиболее реалистичная из всех перспектив.

> Если принять, что все его "наезды" на Linux адресованы на самом
> деле в Россию, то они заиграют новыми красками.

Ох, тут и россияне уже где-то отметились как категория?

> "Эдуард, раз Вы такой умный, вот дюжина перспективных студентов, готовых заглядывать
> в рот и ловить каждое слово". Вместо этого господин с фамилией
> на туже букву чем занимается? Он кстати куда-то пропал отсюда, увидев
> цитату Линуса "show me the code".

Ну, говоря за себя - я искренне сомневаюсь что нормальные файлухи появляются в природе по причине "президент приказал". Да и у студней, судя по "русскому инженеру" будет в лучшем случае фига в кармане. А то и жест Торвальдса нвидии, при том тоже за дело.

Ответить | Правка | Наверх | Cообщить модератору

349. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 02-Ноя-23, 09:34 
> Ну, говоря за себя - я искренне сомневаюсь что нормальные файлухи появляются
> в природе по причине "президент приказал".

Зато пистон за неисполнение вполне может начать вставляться.

Сидят чукча с геологом. Вдруг видят — прямо на них несется белый медведь. Чукча кидается надевать лыжи.
— Чукча, зачем тебе лыжи? Ты все равно не сможешь бежать быстрее медведя.
— Чукче не надо бежать быстрее медведя. Чукча будет бежать быстрее геолога.

Ответить | Правка | К родителю #328 | Наверх | Cообщить модератору

353. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (353), 02-Ноя-23, 12:46 
> Зато пистон за неисполнение вполне может начать вставляться.

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

В отчетах, конечно, все будет зашибись. Вот как раз поэтому.

Ответить | Правка | К родителю #349 | Наверх | Cообщить модератору

367. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 02-Ноя-23, 14:51 
Так Шишкин утёк и давно, а вот другие что интересного сделали? Не считая легендарного Дениса Попова, наглядно показавшего суть деятельности его коллег. Овощам место на овощебазе так то.
Ответить | Правка | К родителю #353 | Наверх | Cообщить модератору

284. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +1 +/
Сообщение от Sw00p aka Jerom (?), 01-Ноя-23, 16:12 
> Автору Bcachefs это удалось, пусть оно отчасти выглядит как костыли и не по канонам, но со временем опыт будет учтён и приведёт к изменениям, надо полагать.

удалось что? скрестить ежа и ужа? tmpfs давным давно уже создан!!!

Ответить | Правка | К родителю #266 | Наверх | Cообщить модератору

292. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 01-Ноя-23, 17:22 
>> Автору Bcachefs это удалось, пусть оно отчасти выглядит как костыли и не по канонам, но со временем опыт будет учтён и приведёт к изменениям, надо полагать.
> удалось что? скрестить ежа и ужа?

Он ещё и генетик? Не знал. Слышал про анестезиолога.

> tmpfs давным давно уже создан!!!

Эээ... это намёк, что некоторые пихают подкачку в zram? Вот им и читайте лекции про правильную иерархию.

Ответить | Правка | Наверх | Cообщить модератору

303. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 01-Ноя-23, 19:47 
> Он ещё и генетик? Не знал. Слышал про анестезиолога.

"""
Philosophy, vision

We prioritize robustness and reliability over features: we make every effort to ensure you won't lose data. It's building on top of a codebase with a pedigree - bcache already has a reasonably good track record for reliability Starting from there, bcachefs development has prioritized incremental development, and keeping things stable, and aggressively fixing design issues as they are found; the bcachefs codebase is considerably more robust and mature than upstream bcache.

The long term goal of bcachefs is to produce a truly general purpose filesystem:

scalable and reliable for the high end
simple and easy to use
an extensible and modular platform for new feature development, based on a core that is a general purpose database, including potentially distributed storage
""""

покажу где надо поржать, вот тут "The long term goal of bcachefs is to produce a truly general purpose filesystem"

> Эээ... это намёк, что некоторые пихают подкачку в zram? Вот им и
> читайте лекции про правильную иерархию.

я могу больше не покупать рейд контроллер с ббу?

Ответить | Правка | Наверх | Cообщить модератору

329. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 02-Ноя-23, 05:08 
> я могу больше не покупать рейд контроллер с ббу?

Лучше покажи как ты это все в свой ноут засунешь. А, ну как обычно - сапожник без сапог? Ну тогда нахрен таких сапожников, имхо, пусть лучше Кент позажигает - не такой голож@пый а потому куда убедительнее. Если его технологии работают хотя-бы для него это уже дает определенные надежды.

Ответить | Правка | К родителю #303 | Наверх | Cообщить модератору

366. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 02-Ноя-23, 14:41 
> Лучше покажи как ты это все в свой ноут засунешь.

"a truly general purpose" она запись на перфокарты поддерживает?


> как обычно - сапожник без сапог?

ну как всегда "like zfs or btrfs", ну конечно


> имхо, пусть лучше Кент позажигает - не такой голож@пый а потому
> куда убедительнее.

"scalable and reliable for the high end" - у вас там на ноуте места для второго диска хдд осталось еще?

> Если его технологии работают хотя-бы для него это уже
> дает определенные надежды.

based on a core that is a general purpose database, including potentially distributed storage

ага распределенное хранилище на ноуте :)

Ответить | Правка | К родителю #329 | Наверх | Cообщить модератору

452. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 04-Ноя-23, 10:43 
> "a truly general purpose" она запись на перфокарты поддерживает?

Без понятия: у меня таких девайсов нет.

>> как обычно - сапожник без сапог?
> ну как всегда "like zfs or btrfs", ну конечно

Для меня btrfs неплохо работает в моих сценариях. А zfs слишком энтерпрайзный и внеядерный для меня, пусть им похи пользуются, имхо. Меня интересуют менее энтерпрайзные случаи, типа моего ноута, одноплатников, да даже на роутере-мыльнице цепляется. А энтерпрайзные хранилки в чистом виде - не ко мне, меня именно "general purpose" аспект интересует.

> "scalable and reliable for the high end" - у вас там на
> ноуте места для второго диска хдд осталось еще?

В случае btrfs я сделал схему DUP, от рандомного бэда - норм. Да, емкость стоража при этом ополовинится. Зато надежность растет. Даже там где второй девайс поставить нельзя :P. От полного отказа не спасет, конечно, но от мелких случайных пакостей вполне. В целом выживаемость ФС с избыточностью куда лучше.

> ага распределенное хранилище на ноуте :)

Хорошие технологии должны быть масштабируемы. Чему бы его core на минималочках на ноут не пойти я хз.

Ответить | Правка | К родителю #366 | Наверх | Cообщить модератору

464. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 04-Ноя-23, 17:52 
> А энтерпрайзные хранилки в чистом виде - не ко мне,
> меня именно "general purpose" аспект интересует.

ну давайте по пунктам определим так называемый "general purpose", что это за понятие такое?
дедупликация, сжатие, шифрование и т.д. даже в энтерпрайзе не "general purpose".

> В целом выживаемость ФС с избыточностью куда лучше.

То есть ФС по вашему должна уметь выживать? Согласен лишь с тем, что избыточность это один из механизмов выживания, но давайте посмотрим на историю ФС, какая из них заведомо проектировалась с избыточностью хранения данных? Это вообще функция ФС? Кто это определял? Почему избыточность не функция драйвера устройства, ибо ему яснее как работает собственно устройство, и как там можно правильно организовать избыточное хранение? За место этого всего мы придумываем новые слои абстракции просовываясь между уровнями ФС и самих устройств хранения.

> Хорошие технологии должны быть масштабируемы. Чему бы его core на минималочках на
> ноут не пойти я хз.

хорошие микроскопы должны уметь забивать гвозди ;)

Ответить | Правка | К родителю #452 | Наверх | Cообщить модератору

489. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 08-Ноя-23, 14:07 
> ну давайте по пунктам определим так называемый "general purpose", что это за
> понятие такое?

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

General purpose означает что ФС не спасует на всех или хотя-бы многих задачах с которыми сталкиваются ФС и может работать с широким спектром допущений.

> дедупликация, сжатие, шифрование и т.д. даже в энтерпрайзе не "general purpose".

Чем больше у ФС возможностей, тем в большее число задач она сможет вписаться. Если из-за этого не возникнет иных препятствий.

Как пример: btrfs vs ZFS. Я могу btrfs на одноплатниках с 256 мегов RAM и 1 SD или eMMC использовать. Нормально работает а схема DUP повышает надежность. Или ноут с 1 диском. И так далее. ZFS в тех конфигах не в тему, поэтому ИМХО ближе к специализированным ФС с уклоном в "энтерпрайзные хранилки". Райды с батарейкой туда же. Специализированные железки это антипод general purpose.

>> В целом выживаемость ФС с избыточностью куда лучше.
> То есть ФС по вашему должна уметь выживать? Согласен лишь с тем,

В идеале ФС не должна требовать внимания, кроме переконфигурации под иную задачу. Это часть того пожелания на самом деле. Туда же всякие fsck/ckdisk и что там еще.

> что избыточность это один из механизмов выживания, но давайте посмотрим на
> историю ФС, какая из них заведомо проектировалась с избыточностью хранения данных?

Это история проб и ошибок. И далеко не все страницы написаны.

> Это вообще функция ФС? Кто это определял? Почему избыточность не функция
> драйвера устройства, ибо ему яснее как работает собственно устройство,

Как аргументы "за" мне видится:
1) Драйвер не знает о других устройствах и их состоянии, BigPic не его прерогатива.
2) Возможность использования разнородных устройств - фича, можно использовать все ассеты которые есть, "по ситуации". Вплоть до того что btrfs можно временно расширить подоткнув нечто в usb, а потом и вынув это из пула. Удобно для каких-то разовых маневров.
3) Драйвер на уровне блочного интерфейса не знает нужен ли этот блок здесь и сейчас. TRIM лишь частичный костыль, не решает все проблемы. ФС виднее что используется а что нет.
4) По той же причине снапшоты на блочном уровне мучительны и неэффективны.
5) ФС с несколькими девайсами, или 2 копиями на 1 девайсе может использовать продвинутые техники рекавери, запросив другую копию и поняв по чексумам какая верная, починив в фоне. Это точно не прерогатива драйвера конкретного устройства и так получается гибче и меньше допущений что за железо, драйверы и какое у них умение.

> и как там можно правильно организовать избыточное хранение? За место этого всего мы
> придумываем новые слои абстракции просовываясь между уровнями ФС и самих устройств
> хранения.

Есть еще соображения:
1) Использование уже имевшихся ассетов и возможность их реаллокации и реконфигурации.
2) Гибкость менеджмента. И его сложность.
3) Общая стоимость всего этого.

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

>> Хорошие технологии должны быть масштабируемы. Чему бы его core на минималочках на
>> ноут не пойти я хз.
> хорошие микроскопы должны уметь забивать гвозди ;)

Знаете чем мы отличаемся? Вы видите микроскопы и молотки. Я же освоил более продвинутые концепции и вижу пространство, время, энергию и эн атомов материи. Они могут стать чем угодно в пределах этих constraint. Надо - собираем в молоток. Изменились требования, станет микроскоп. И так далее. И это лишь наполовину sci-fi, это скорее предсказание. Цель к которой многие стараются прийти. В управлении цифровыми системами это стало уже можно сейчас.

Ответить | Правка | К родителю #464 | Наверх | Cообщить модератору

499. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 09-Ноя-23, 01:26 
> По пунктам сложно,

сложно, но в то же время "Чем больше у ФС возможностей, тем в большее число задач она сможет вписаться."

почему бы и нет, ок, принято. Зачем вообще нужна ОС если есть ФС - лол, кек.

> General purpose означает что ФС

нету этого general purpose формального, никто его не описывал. Ибо это всё еще со времен Танненбаума вливается в спор, микро ядро или монолит. Определитесь!!!


> Специализированные железки это антипод general purpose.

то есть вы хотите сказать, что линукса на серверах меньше чем на ноутах? Учитывая еще тенденцию что линукс на серверах "bare metal" давным давно уже не стоит.

> Как аргументы "за" мне видится:
> 1) Драйвер не знает о других устройствах и их состоянии, BigPic не
> его прерогатива.

ФС должна знать?

> 2) Возможность использования разнородных устройств - фича, можно использовать все ассеты
> которые есть, "по ситуации". Вплоть до того что btrfs можно временно
> расширить подоткнув нечто в usb, а потом и вынув это из
> пула. Удобно для каких-то разовых маневров.

Если бы в ОС была одна единая ФС, то может ОС автоматом любое блочное устройство отображало бы в ФС, и не нужны были бы всякие форматирования и танцы с бубном, но этого нет, ос видит блочное устройстчо, а какую ФС ты хош ту и накатывай, но в итоге твои программы имеют один интерфейс ФС взаимодействия - открой файл, запиши, закрой. Как будет организовано хранение файлов это уже дело ФС. И ОС до лампочки.

> 3) Драйвер на уровне блочного интерфейса не знает нужен ли этот блок
> здесь и сейчас. TRIM лишь частичный костыль, не решает все проблемы.
> ФС виднее что используется а что нет.

ФС разве будет знать для чего в ОС используется файл /etc/passwd ? О файлах знает только конечная пользовательская программа.

> 4) По той же причине снапшоты на блочном уровне мучительны и неэффективны.

В смысле мучительны и не эффективны? я не понимаю.

> 5) ФС с несколькими девайсами, или 2 копиями на 1 девайсе может
> использовать продвинутые техники рекавери, запросив другую копию и поняв по чексумам
> какая верная, починив в фоне. Это точно не прерогатива драйвера конкретного
> устройства и так получается гибче и меньше допущений что за железо,
> драйверы и какое у них умение.

а чем копия файла отличается от копии блока данных и т.д.? уровнем абстракции?

> Железо не бесплатное, специализированное - очень дорогое. Требование хранить на складе
> эн винчей - денег людям стоит. И так далее. Чем меньше
> этого всего, тем лучше, имхо.

санкции говорят об обратном, всегда надо хранить на складе горячий резерв :)

> Надо - собираем в молоток. Изменились требования, станет микроскоп. И так далее.

Вот когда "надо", оказывается всегда, что поздно.

Ответить | Правка | К родителю #489 | Наверх | Cообщить модератору

511. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 12-Ноя-23, 20:36 
> почему бы и нет, ок, принято. Зачем вообще нужна ОС если есть ФС - лол, кек.

И такое бывает, в фирмварях МК например. ФС есть, а ОС - нет. ФС ессно либо что-то простое типа фат либо специализированная/урезанная.

>> General purpose означает что ФС
> нету этого general purpose формального, никто его не описывал.

Это сложно описать. Но...

> Определитесь!!!

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

>> Специализированные железки это антипод general purpose.
> то есть вы хотите сказать, что линукса на серверах меньше чем на ноутах?

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

> Учитывая еще тенденцию что линукс на серверах "bare metal" давным
> давно уже не стоит.

Я не знаю есть ли смысл считать VM или нет, впрочем, в лине встроенный виртуализер KVM встроен и у меня есть эн виртуалочек на именно этом у разных хостеров. Его что так дохрена что сяк.

У меня и у самого так виртуалок - есть. А прям на моих десктопах, ноутах и прочих ресурсах.

>> 1) Драйвер не знает о других устройствах и их состоянии, BigPic не
>> его прерогатива.
> ФС должна знать?

Как минимум - может. И как один из вариантов - на мой вкус весьма прилично работает. Лучше чем то что было до этого имхо. Полностью декорелированые абстракции ФС-блокдев теряют море сведений о проблемах друг друга и становятся неуклюжими и сложными в менеджменте. Так что я считаю дизайны типа btrfs шагом вперед. И не только я. Сабж по мотивам btrfs. С устранением выявившихся слабых мест. А заодно т.к. это автор bcache - с прикольно придуманой логикой кеширования, когда с избыточностью скрещено. Судя по числу юзеров с трупами перед которыми bcache был - интегрировать эту штуку в ФС и явно учитывать избыточность - выглядит хорошей идеей, будет менее неуклюжим чем такие этажерки.

> Если бы в ОС была одна единая ФС, то может ОС автоматом
> любое блочное устройство отображало бы в ФС, и не нужны были
> бы всякие форматирования и танцы с бубном,

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

> но этого нет, ос видит блочное устройстчо, а какую ФС ты хош ту и накатывай,
> но в итоге твои программы имеют один интерфейс ФС взаимодействия -

Как говорится, все равны - но некоторые равнее. Скажем удачи в same extent ioctl на "произвольной" ФС. Или clone file. А знаете, так то круто сделать клон образа 3Тб диска за 1 секунду. Удобно при data recovery. Или флот виртуалок с дисками по 20 гигз поднять в момент.

ИМХО у нас очень разные масштабы задач и предпочтения. Я давно вырос из "хомяка" с "маздайкой", поработал в транснациональных корпах, и нашел ряд их подходов эффективными. И хотя я более не они, ряд моих сценариев имеет что-то общее с их подходами. И одна из фич - я менеджу мои компы на манер виртуалок. Снапшоты ФС это позволяют.

> открой файл, запиши, закрой. Как будет организовано хранение файлов это уже
> дело ФС. И ОС до лампочки.

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

У меня нет таймингов "переставлял систему полдня". И виртуалки я могу раскатывать шустро. И даже набирать с ноля образа систем за весьма обозримое время. ИМХО я давно превзошел все уровни технологий которыми вы ворочали.

>> ФС виднее что используется а что нет.
> ФС разве будет знать для чего в ОС используется файл /etc/passwd ?

Нет. Зато ФС знает что тот или иной файл снесли и блоки можно очистить в момент сноса файла.

> О файлах знает только конечная пользовательская программа.

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

> а чем копия файла отличается от копии блока данных и т.д.? уровнем абстракции?

Блочный уровень без явного знания что это и зачем - сильно менее эффективен в данных операциях. Можно делать снапшоты и на блочном уровне. Но получится тормозное УГ которое дельту отращивает с немеряной скоростью, времена операций и нагрузка на диски так себе, места жрет больше. CoW файлухи - делают все то же самое, только лучше. Там всегда есть все что надо для снапшота, снапшот сводится к весьма небольшой пометке что вон то теперь с более чем 1 референсом и сносить эти экстенты нельзя. Поэтому он мелкий, легкий, шустрый, в случае btrfs сразу в структуре ФС виден, а стереть снапшот (subvolume) можно даже миднайтом каким, снос "диры" которая subvolume с неких пор 100% эквивалентен "btrfs sub del". Так что можно менеджить снапшоты прямо привычным миднайтом или чем там, если хочется.

Более того writeable снапшоты позволяют это подорихтовать, скажем, если я знаю что старое состояние было ок, но там был некий баг, чтобы не наступать на него при каждом откате. Или даже так можно наделать из своей системы образов и сделать send. И вот... я уже болтаю с вами. Только это вообще-то виртуалка. И в ней - мой десктоп. Один из. У меня целая пачка VM берущих начало как мой хардварный десктоп. А потом они fork()нулись и их пути разошлись. Зачем так? Такой "инсталл оси" в виртуалку занимает 2 минуты и подымает мне привычное окружение. Ну что, пилот этажерки, рассказал капитану звездолета как тяги правильно дергать?

> санкции говорят об обратном, всегда надо хранить на складе горячий резерв :)

Я всем этим заниматься не собираюсь. Потому что не склад жестких дисков, это не бесплатно и создает неудобства. Поэтому я предпочитаю менеджмент ОС когда можно подцепить то что есть по мере надобности. Без делания мозга. И динамически реаллоцировать ресурсы на задачу.

>> Надо - собираем в молоток. Изменились требования, станет микроскоп. И так далее.
> Вот когда "надо", оказывается всегда, что поздно.

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

Ответить | Правка | К родителю #499 | Наверх | Cообщить модератору

515. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 13-Ноя-23, 17:25 
> А я динамическое реконфигурирование и реаллокацию ресурсов на задачу полюбил не просто так. А как раз чтобы поздно - не было.

тут главный вопрос - где взять эти ресурсы? :)

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

ага, видел я вашу эпоху - метаданные в кластере касандры, а данные на ext2 :)

Ответить | Правка | К родителю #511 | Наверх | Cообщить модератору

517. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 13-Ноя-23, 19:15 
> тут главный вопрос - где взять эти ресурсы? :)

А вот это уже решаемо при достаточной степени креативности. Скажем если есть диск с дофига места но там нужные данные, можно на неаллоцированом месте диск-в-файле сделать, дать ЭТО как девайс бтрфс на время, это не оптимально, зато никакого дестроя и агрессивное маневрирование тем что было с минимальными допущениями. А возможность добавить-снести позволяет сделать что надо. Даже если это было на 1 раз и проч.

Видите, при перспективе впечататься в планету я могу включить гипердрайв на наносекунды, проскочить на другую сторону - и рематериализоваться там. А если вы так не могли - suxx to be you.

> ага, видел я вашу эпоху - метаданные в кластере касандры, а данные на ext2 :)

Это видимо не наша эпоха и/или альтернативная версия реальности была. В нашей -rc1 для 6.7 вышел и пора посмотреть что может дизайн Кента.

Ответить | Правка | К родителю #515 | Наверх | Cообщить модератору

519. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 13-Ноя-23, 22:04 
> Видите, при перспективе впечататься в планету я могу включить гипердрайв на наносекунды,
> проскочить на другую сторону - и рематериализоваться там. А если вы
> так не могли - suxx to be you.

могу вас поздравить, можете уже на аттосекунду гипердрайвить :)

> Это видимо не наша эпоха и/или альтернативная версия реальности была. В нашей
> -rc1 для 6.7 вышел и пора посмотреть что может дизайн Кента.

мульти-вселенная :))))))


Ответить | Правка | К родителю #517 | Наверх | Cообщить модератору

282. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 01-Ноя-23, 16:10 
> Ниже писали про дедупликацию памяти, и рядом с дедупликацией ФС получается
> удивительная вещь - дублирование функциональности.

еще сжатие, шифрование, ага еще и кеширование О_о, да да будем еще кешировать энергозависимую память


> потому что "любая проблема в информатике может
> быть решена с помощью дополнительного уровня косвенности", кроме бесконечного количества
> таких уровней.

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

> Вот только некогда - все силы уходят на борьбу с терминологической путаницей.)

потому-что в CS (компухтер сайнс) нет строгого формализма, нет четких определений, нет системы, нет исследований архитектурных, фундаментальных. Есть только "накидалово", и одни и те же грабли из поколений в поколения.  


Ответить | Правка | К родителю #233 | Наверх | Cообщить модератору

290. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (5), 01-Ноя-23, 17:17 
>> Ниже писали про дедупликацию памяти, и рядом с дедупликацией ФС получается
>> удивительная вещь - дублирование функциональности.
> еще сжатие, шифрование

В смысле, криптографическое преобразование? При чём здесь оно? Если для оптимизации поиска от данных считается "хеш", то нет даже смысла предъявлять к нему требование необратимости - поскольку ссылка на данные всё равно хранится рядом.

>  ага еще и кеширование О_о, да да будем еще кешировать энергозависимую память

Почему будем? Кеши давно интегрированы в ЦП.

> потому-что в CS (компухтер сайнс) нет строгого формализма, нет четких определений, нет
> системы, нет исследований архитектурных, фундаментальных. Есть только "накидалово",
> и одни и те же грабли из поколений в поколения.

Гипотеза Сепира — Уорфа объясняет кашу сию.

Ответить | Правка | Наверх | Cообщить модератору

302. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 01-Ноя-23, 19:41 
> В смысле, криптографическое преобразование? При чём здесь оно?

нет, как одно из требований безопасности, как в случае с кешированиеь - это требование к "скорости" операций i/o.

> Почему будем? Кеши давно интегрированы в ЦП.

ага сендвич такой L1, L2, L3, DRAM, NVMe, SSD, HDD, Tape, и всякая "лента с дырками"


> Гипотеза Сепира — Уорфа объясняет кашу сию.

Термин "гипотеза" не объясняет, а предполагает. А каша из-за того, что современное понятие "во-IT" давно уже не CS.

Ответить | Правка | Наверх | Cообщить модератору

330. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 02-Ноя-23, 05:13 
Понимаете, достопочтенный сэр, все ваши философствования очень недорого стоят, если в результате система на ноуте скончается от единственного бэда за пяток лет - а у вас не было никаких планов и решений на такие оказии.

А то что я "должен" таскать контроллер райда с батарейкой... знаете, я у вас ничерта не занимал, поэтому ничерта я не должен вам с такими загонами. А вот тем кто момогает мне что-то сделать с насущными, земными проблемами, наверное, надо бы, таки, помочь. Для блага собственного окорока хотя-бы, чтобы не сидеть с вон той голой джеппой :)

Ответить | Правка | Наверх | Cообщить модератору

356. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 02-Ноя-23, 13:47 
> Понимаете, достопочтенный сэр, все ваши философствования очень недорого стоят, если в результате
> система на ноуте скончается от единственного бэда за пяток лет -
> а у вас не было никаких планов и решений на такие
> оказии.

разве появления "бэда" это проблема моей системы? и раз срок вашего оборудования 5 лет, то зачем ждать появления "бэда", если можно менять каждые 4 года.


> Для блага собственного окорока хотя-бы, чтобы не сидеть с вон той голой джеппой :)

продолжаем думать нижним полушарием мозга.


Ответить | Правка | Наверх | Cообщить модератору

428. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 03-Ноя-23, 16:21 
> разве появления "бэда" это проблема моей системы? и раз срок вашего оборудования
> 5 лет, то зачем ждать появления "бэда", если можно менять каждые 4 года.

Можете хоть раз в месяц! Но - за ваш счет и в ваше время, у себя. А бэды таки вероятностный процесс, и может вылести и через месяц. И через год. И через три. Для меня вопрос - "насколько часто". Если чаще 1-2 бэдов в год, окей, может быть железка сыпется. Если сильно чаще, повод чинить/менять, ессно. А такой разовый взбрык - сервисменами за проблему вообще не считается, весьма типичное явление.

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

А я предпочитаю более продвинутые подходы. Это включает и чтобы технологии работали на меня, а не были "где-то там". Сапожники без сапог ничего кроме презрения не вызывают, увы и ах.

Ответить | Правка | К родителю #356 | Наверх | Cообщить модератору

438. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 03-Ноя-23, 18:14 
> А я предпочитаю более продвинутые подходы.

заиметь сначала сапоги, а потом стать сапожником?


Ответить | Правка | К родителю #428 | Наверх | Cообщить модератору

453. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 04-Ноя-23, 11:26 
>> А я предпочитаю более продвинутые подходы.
> заиметь сначала сапоги, а потом стать сапожником?

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

Ответить | Правка | К родителю #438 | Наверх | Cообщить модератору

463. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 04-Ноя-23, 17:37 
> В этом смысле чем больше дизайнов видел архитект, и чем больше данных о их
> проблемах было, тем лучше будет очередная итерация, имхо.

Разве сыт будет человек, наблюдая за тем как ест другой?


Ответить | Правка | К родителю #453 | Наверх | Cообщить модератору

487. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 08-Ноя-23, 09:15 
>> В этом смысле чем больше дизайнов видел архитект, и чем больше данных о их
>> проблемах было, тем лучше будет очередная итерация, имхо.
> Разве сыт будет человек, наблюдая за тем как ест другой?

Если пример проинвертировать...

Если вы не знаете как выглядит еда и понятия не имеете как ее готовить и что может получиться в результате, ваши шансы сделать что-то съедобное и тем более вкусное и питательное - резко понижаются. Почему-то.

Ответить | Правка | К родителю #463 | Наверх | Cообщить модератору

498. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Sw00p aka Jerom (?), 09-Ноя-23, 01:00 
> Если пример проинвертировать...
> Если вы не знаете как выглядит еда и понятия не имеете как
> ее готовить и что может получиться в результате, ваши шансы сделать
> что-то съедобное и тем более вкусное и питательное - резко понижаются.
> Почему-то.

если вы лишены чувства голода, о какой сЪедобности может идти речь? Мне без разницы как, что выглядит, если это утоляет мой голод. Будучи голодным на необитаемом острове вы сожрете все то, от чего в обыденной жизни ворочили бы нос. Так вот.

Ответить | Правка | К родителю #487 | Наверх | Cообщить модератору

503. "Код Bcachefs принят в основной состав ядра Linux 6.7"  +/
Сообщение от Аноним (-), 10-Ноя-23, 23:11 
> если вы лишены чувства голода, о какой сЪедобности может идти речь?

Если вы совсем лишены чувства голода то я вижу 2 опции.
1) Вам вообще не требуется эта абстракция и тогда нет смысла это обсуждать. Может вы фотосинтезируете, или вообще нечто гибридное, типа какого-нибудь искусственного тела или сферы дайсона, там это может не иметь никакого смысла или подразумевать нечто совсем иное.
2) Иначе вы, вероятно, довольно скоро умрете по причине "отсутствие критичного сигнала" который так то мониторил "проблемное условие".

> Мне без разницы как, что выглядит, если это утоляет мой голод.

Если у вас нет чувства голода - то и утолять его не требуется. А так - добро пожаловать в китай, и прочие специфичные страны, они покажут что они могут жрать. Будет интересно посмотреть насколько вы готовы сожрать то же что и они подтвердив свои слова делом.

> Будучи голодным на необитаемом острове вы сожрете все то, от чего в
> обыденной жизни ворочили бы нос. Так вот.

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

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

Ответить | Правка | К родителю #498 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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