LINUX.ORG.RU

В состав ядра 7.1 принят новый драйвер NTFS

 , ,


1

1

Линус Торвальдс принял в состав ядра Linux 7.1, релиз которого ожидается в середине июня, набор изменений с новой реализацией драйвера для файловой системы NTFS. Новый драйвер включён под именем «ntfs», которое ранее использовалось для удалённого из ядра старого драйвера, работавшего в режиме только для чтения. До сих пор основным NTFS-драйвером в ядре оставался ntfs3, добавленный несколько лет назад компанией Paragon Software.

Новая реализация подготовлена разработчиком ядра Намджэ Чжоном (Namjae Jeon), ранее участвовавшим в развитии exFAT, KSMBD и других подсистем. Работа над драйвером велась около четырёх лет и представляет собой переработку исходного NTFS-драйвера ядра с более чистой кодовой базой, в которую добавлены поддержка записи, более современные возможности и улучшенная интеграция с актуальными механизмами ядра Linux.

Среди преимуществ новой реализации упоминаются полная поддержка записи, более высокая стабильность по сравнению с ntfs3, прохождение большего числа тестов xfstests, а также использование современных возможностей ядра, таких как iomap и folio. Кроме того, для новой реализации подготовлены пользовательские утилиты для fsck. По словам авторов, по уровню внутренней интеграции с современными возможностями ядра новый драйвер выглядит предпочтительнее текущего ntfs3.

Перед включением в основную ветку код в течение примерно двух месяцев находился в linux-next, где проходил дополнительную обкатку и рецензирование. Общий объём новой и переработанной кодовой базы оценивается более чем в 36 тысяч строк.

Примечательно, что изначально Линус Торвальдс отклонил первую попытку включения нового драйвера из-за проблем с оформлением pull request в Git, однако после отправки исправленного варианта изменения всё же были приняты. Сам Торвальдс охарактеризовал произошедшее как «ntfs resurrection». При этом драйвер ntfs3 пока остаётся в дереве исходных текстов ядра, а новую реализацию можно включить через опцию NTFS_FS в Kconfig.

>>> OpenNet

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от Gonzo

Вот и пусть она будет там где она есть. Развивать ее поддержку в linux не надо. Есть возможность прочитать и ладно. Ещё раз повторю, она не должна быть first class citizen в linux

cobold ★★★★★
()
Ответ на: комментарий от borisych

Мы когда говорим, что «вот эта штука не особо-то и стабильная, и ей можно пользоваться разве что на свой страх и риск»

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

Итак - думаю ни для кого не секрет что ntfs в линуксе не основна система, а по большому счету прослойка совместимости. Сунуть флешку, внешний диск или перенести данные на дуалбутовый раздел. И вот когда эта хрень пишет ваша фс типа dirty монтировать я ее отказываюсь категорически и предлагаяю вам перегрузиться в венду или найти венду на стороне сбросить этот флажок и потом вернуться - то ценность всех остальных фич ntfs3 для меня становятся равны нулю. С ntfs3g такого засранства нет. Да - возможно оно чуть медленнее, но это всеравно быстрее чем ребутнутся в венду, пофиксить вот это и ребутнуться в зад. То есть вот это то самое что для по моим оценкам для 95% пользоветелей сделает реакцию на смену парагоновской реализации китайской однозначной - слава аллаху, наконец то. Это не вникая в детали политики техники и финансов - чисто пользовательская реакция. Продукт был не юзабельным - да возможно тезнически продвинутым, с хорошим потенциалом и кучей обещаний (и поддерживать, и дать юзерспейсный fsck ну хотя-бы не топ продвинутый но хоть простейший фикс неаккуратн выдернутой флешки или выключенной кнопой машинки когла кроме этого dirty флага ничего криминального не случилось). Но таки нет же - обещания остались обещаниями, и вроде как больше трех лет ждали.

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

Qui-Gon ★★★★★
()
Ответ на: комментарий от cobold

Согласен. Это нужно просто для того чтобы перетащить данные на/с флешки или дуалбутового раздела. Все. И с этой задачей ntfs3 cправляется как говно(см мой пост выше). Новая реализация возможно будет лучше. Опять же возможно - пока я ее не пробовал, поэтому не скажу. ntfs3g - вполне справляется.

Qui-Gon ★★★★★
()
Ответ на: комментарий от anonmyous

Где та грань, после которой уже нужно переименовывать, а до неё - всё ещё нельзя?

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

question4 ★★★★★
()
Ответ на: комментарий от Qui-Gon

с патриотической стороны мне обидно

нельзя же быть таким наивным: то что Торвальдсу корпы сказали (в данном случае samsung), то он и сделал

borisych ★★★★★
()
Ответ на: комментарий от borisych

то что Торвальдсу корпы сказали (в данном случае samsung), то он и сделал

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

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

Поэтому да - изначально у меня тоже мелькнула мысль что у линуса опяь начался велико-финский замуд, но так приглядевшись детальнее - все выглядит вполне правильным и логичным. Есть парагон который кое как выдавил из себя половинчатое решение и всячески сабботирует поддержку(не со зла - а просто ресурсов нет на это, не по себе ношу взяли), и есть самсунг который спонсирует полноценное решение и полноценную поддержку - и ресурсов у самсунга настолько овердохрена в сравнении с парагоном что нет никаких сомнений что эта поддержка будет. И что в этом случае Линус неправильно сделал?

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

И что в этом случае Линус неправильно сделал?

вы код-то смотрели, который влили, не?

	err = ntfs_attr_lookup(attr->type, (attr->name_length) ? (__le16 *)
			((u8 *)attr + le16_to_cpu(attr->name_offset)) :
			AT_UNNAMED, attr->name_length, CASE_SENSITIVE,
			(attr->non_resident) ? le64_to_cpu(attr->data.non_resident.lowest_vcn) :
			0, (attr->non_resident) ? NULL : ((u8 *)attr +
			le16_to_cpu(attr->data.resident.value_offset)), (attr->non_resident) ?
			0 : le32_to_cpu(attr->data.resident.value_length), ctx);

Ну и Торвальдс не смотрел

borisych ★★★★★
()
Ответ на: комментарий от borisych

Как говорил директор автоваза - а зачем?

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

Если это и правда писалось в самсунге то в общем-то не удивительно учитывая их стиль работы.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

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

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

  • код откровенно так себе
  • каких-либо новых тестов нет вообще, не говоря уже о покрытии вцелом

Однако, при всем при этом какой-то код в ядро принимают, а какой-то нет. Странно оно как-то… Нет не странно, все и так ясно.

borisych ★★★★★
()
Ответ на: комментарий от cobold

first class citizen

Это же про переменные и программирование, емнип… Ну да ладно.

А где сказано, что это таки «фёрст класс ситизен»? Почему другие ФС в Linux у тебя не «фёрст класс»? По каким критериям осудил?

Gonzo ★★★★★
()
Ответ на: комментарий от cobold

ntfs в linux не должен быть first class citizen

Вообще все ФС из ядра выкинуть, окромя ext2.

devl547 ★★★★★
()
Ответ на: комментарий от anonmyous

Этот фрагмент - после препроцессинга же? Если в оригинале - ссылку в студию на гитхаб.

таки вот

посмотрел еще… парагоновский драйвер куда чище выглядит, тут же кореец не особо-то и стесняется даже циклы на goto лабать.

borisych ★★★★★
()
Ответ на: комментарий от borisych

тут же кореец не особо-то и стесняется даже циклы на goto лабать

Вы просто ему завидуете, потому что сами не умеете «циклы на goto лабать»... ;P ;))

P.S. И я - тоже не умею. :)) Но я ему не завидую, а даже жалею его... немного... ;))

Somebody ★★★★
()
Ответ на: комментарий от Somebody

я не понимаю чему завидовать совершенно. При наличии текущих наработок («старый» ntfs, ntfs3 от Парагона, ntfs-3g) непосредственно написание драйвера можно оценить эдак в месяца три - я вот реально не понимаю что там делать дольше, разве что:

  • нужно набрать тестовых сценариев (условно дампов ФС, чтобы их через loop прилепить и смотреть что происходит) - если они отсутствуют, то здесь скорее вина пресловутого коммьюнити, которое не смогло за 25 лет нужную базу набрать
  • разбираться в текущих наработках - ну так себе затея, потому что код пишут ровно такие же студни как и ты, и на самом деле нужно найти в себе силы плюнуть на все это и написать КОД С БОЛЬШОЙ БУКВЫ с нуля.

я вспоминаю «молодость» - вот были времена, писали нетленку с goto в т.ч. и бухими и накуренными, а потом это как-то быстро прошло: и goto видится сложным, и вместо регэкспов видится куда лучше свой парсер воткнуть и т.д.

Весело быть студнем? да. Хотелось бы всю жизнь так прожить? нет.

borisych ★★★★★
()
Ответ на: комментарий от borisych

я не понимаю чему завидовать совершенно

Ты «смайлов» явно не понимаешь, отсюда и проблема с пониманием «в целом»... :))

Somebody ★★★★
()

Я так и не понял. Это про NTFSPlus?

Tyse_EX
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.