LINUX.ORG.RU

Поддержка F2FS в GRUB2

 , ,


0

1

Смотрю я на страницу
http://git.savannah.gnu.org/gitweb/?p=grub.git;a=tree;f=grub-core/fs
и на код для обычной такой файловой системы
http://git.savannah.gnu.org/gitweb/?p=grub.git;a=blob;f=grub-core/fs/ext2.c
и вижу, что код занимает 1000 строк (т.е. на день работы программиста в теме и на три месяца работы для программиста не в теме = 0,25 человеко-года).
Смотрю именно на ext2/3 потому что f2fs многое делает похожими способами (хранит блоки и структуру директории)
Вот тут примерно описано, как эта f2fs работает:
http://lwn.net/Articles/518988/

Потом ищу в гугле, как люди пытаются найти уже написанную другими поддержку этой fs в grub - вижу 930 000 результатов. То есть миллион человек поискали, обломились и написали об этом в интернет.

Если на это действие они затратили по 5 минут каждый, то всепланетарные затраты цивилизации на неудачный поиск составили 9 человеко-лет.

Считаю, что это явная диверсия ящериков из Самсунга против человечества. Предлагаю в этом топике организовать повстанческий отряд для написания патча к GRUB2 для поддержки F2FS (её исходники тут: https://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs.git/tree/fs/f2fs )

Тем более тут кто-то недавно порывался писать учебную ФС.



Последнее исправление: deadline-multishiva (всего исправлений: 2)

слушай, а так-ли это надо-то? Новые ядра Патрег собирает раз в месяц, я их ставлю в ext2 разделчик размером 48Мб, и lilo на него натравливаю. А корень в f2fs монтируется через initrd (он не только для f2fs нужен, но и для разных модулей, которые мне лениво раз месц в ядро вкомпилливать)

Между прочим, я дня за три могу сам сделать поддержку f2fs в lilo (там вообще просто, надо только дыры учесть в карте), но зачем?

emulek
()

код занимает 1000 строк (т.е. на день работы программиста в теме

Чего? Где такие водятся? Хочу на них посмотреть, спросить, как они это делают.

i-rinat ★★★★★
()
Ответ на: комментарий от megabaks

только для первого, потому что дальше груб умер.

И этот человек пишет нам о фанатизме. Какая разница между загрузчиками, если они выполняют свою работу?

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

код занимает 1000 строк (т.е. на день работы программиста в теме

Чего? Где такие водятся? Хочу на них посмотреть, спросить, как они это делают.

на php можно. Я делал.

emulek
()
Ответ на: комментарий от megabaks

сделай мне для первогруба

не, там сложно. Это надо сам загрузчик править, а в lilo только сам установщик загрузчика, причём совсем немного. И я граб не юзаю, больно он сложный ИМХО.

Ну и опять-таки, не стоит овчинка выделки.

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

код занимает 1000 строк (т.е. на день работы программиста в теме

Чего? Где такие водятся? Хочу на них посмотреть, спросить, как они это делают.

на php можно. Я делал.

Не делал. Тупо набросать 1000 строк это легко, взять хотя бы «китайский» код, без циклов. А написать драйвер для чтения с ext2/3/4 в 1000 строк за один день — совсем другое. И это неимоверно круто.

i-rinat ★★★★★
()
Ответ на: комментарий от deadline-multishiva

я же обосновал. Нельзя предоставлять ящерикам 8.75 лет преимущества (они за это время изобретут warp-двигатель прилетят и всех загеноцидят)

они уже здесь

http://lurkmore.so/images/6/63/Chaos_Belarus.jpg

emulek
()
Ответ на: комментарий от i-rinat

Не делал. Тупо набросать 1000 строк это легко, взять хотя бы «китайский» код, без циклов.

нет, делал. И не китайский, а нормальный говнокод. На php.

А написать драйвер для чтения с ext2/3/4 в 1000 строк за один день — совсем другое. И это неимоверно круто.

Патрег не пишет драйвера ext. А других Богов у нас нет (:

Т.ч. NoWay.

Чуть поправить /sbin/lilo я могу, а вот херачить кучу кода поддержки на лету прямо по живому совершенно новой системы — увольте`с... Да ещё за один день. ТС белены объелся.

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

Да ещё за один день

Вау, как быстр был путь от оспаривания моего высказывания до согласия с ним. 13 минут.

i-rinat ★★★★★
()

и да, о ящерках: Linux отлично грузится с ЛЮБОЙ ФС, хоть ваще без ФС может. Есть lilo, там тупо карту делаешь, какие сектора надо затолкать в память, и она тебе хоть NTFS, хоть exFAT загрузит. Главное тут — что-бы блоки ФС лежали в открытом виде, без всяких шифрований и т.п. Но это веде так. Нет никакого смысла шифровать Linux-ядро.

У меня уже больше полугода корень в F2FS в нетбуке, на кой ляд что-то делать-то?

emulek
()
Ответ на: комментарий от i-rinat

Вау, как быстр был путь от оспаривания моего высказывания до согласия с ним. 13 минут.

за эти 13 минут до тебя дошло, что я говорил про говнокод на пхп. Я счастлив, раньше до тебя за 3..5 дней доходили мои мысли...

emulek
()
Ответ на: комментарий от i-rinat

Если именно смотреть, как раз можно получить такое впечатление.

По-моему, довольно распространённый паттерн: неделю потупить-поразмышлять, затем за день написать и сделать, чтоб работало (числа приблизительно описывают только что доделанный мною драйвер — наверняка гораздо проще любой FS, но строк 800 там есть). Внешний наблюдатель упомянутую неделю может воспринимать так: «программист околачивает груши, поскольку знает, что всё равно справится вовремя». На самом деле всё сложнее :)

LeninGad
()
Ответ на: комментарий от i-rinat

Скажу по секрету, grub не на PHP написан.

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

Для тех кто в танке:

php совершенно другой ЯП совершенно для других задач.

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

и мой ответ был обращён к ТСу, у которого очевидно был похожий опыт, и который думает, что в ФС та же самая ерунда, тупо берёшь, и тупо пишешь, тупую математику на уровне 2+2=4.

А ты мне доказываешь, что там всё совсем не так.

Перестань, я это прекрасно знаю.

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

вообще-то там и есть тупая математика уровня 2+2.

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

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

deadline-multishiva
() автор топика
Ответ на: комментарий от i-rinat

Как будто это что-то меняет. У нас по условию - человек в теме, то есть язык ему учить не надо. И поэтому нельзя сослаться на то, что времени на изучение C++ уйдет больше, чем на изучение php.

А операции там простые, которым в начальных классе школы учат - сложение и умножение:
http://blog.chinaunix.net/attachment/201309/15/28989651_1379207390OFOK.jpg

deadline-multishiva
() автор топика

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

А вот груб наоборот насилует одни и те же сектора раз за разом. Раз за разом.

pony
()
Ответ на: комментарий от LeninGad

наверняка гораздо проще любой FS

Ты так говоришь, как будто в прикручивании к grub эту fs надо писать. А на самом-то деле надо просто скопировать нужные куски кода из реализации самой fs, чтобы считывались директории:

http://blog.chinaunix.net/attachment/201309/19/28989651_1379555658wcW8.jpg

deadline-multishiva
() автор топика
Ответ на: комментарий от deadline-multishiva

вообще-то там и есть тупая математика уровня 2+2.

в таком случае считай меня неосилятором.

emulek
()
Ответ на: комментарий от pony

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

1. про «сырую память» ты придумал

2. если какой-то раздел пишется раз в месяц а читается раз в неделю, то там можно и FAT16 применить, это не принципиально

3. проблемы «ресурса» не существует, это городская легенда. Проблема в том, что SSD не раскрывают весь свой потенциал на системах разработанных для HDD, в которых краеугольные команды(TRIM) костылями.

А вот груб наоборот насилует одни и те же сектора раз за разом. Раз за разом.

бред.

emulek
()
Ответ на: комментарий от deadline-multishiva

Как будто это что-то меняет. У нас по условию - человек в теме, то есть язык ему учить не надо.

Знания языка не достаточно, чтобы быть «в теме». А вообще в нашем мире так — кому больше всех надо, тот и пишет. Если ты обсуждаешь, кому сколько там писать, значит тебе это не так уж и нужно. Да, ты бы заиспользовал, если б было, но нет — так нет.

i-rinat ★★★★★
()
Ответ на: комментарий от megabaks

Прилетело новое ядро ? Или просто захотелось дописать параметры ядра на постоянку ? GRUB перезапишет ВСЁ

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

а что по-твоему груб пишет?
запилить в MBR - это разовая операция. и делает это загрузчик не самовольно
копирование образов ядра/init{ramfs,rd}/конфигов/карт в /boot это не задача загрузчика.
правка конфига тоже не его ума дела.
что не так!?

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
5 октября 2014 г.
Ответ на: комментарий от pony

А вот груб наоборот насилует одни и те же сектора раз за разом. Раз за разом.

но ведь каждый раз когда ты пишешь Грубом — срабатывает аппаратный static-wear-leveling на самом устройстве (если SSD)..

ну или в более худшем случае — срабатывает dynamic-wear-leveling (если USB\SD flash-drive).

например в ситуации когда бОльшая часть пространства используется равномерно (f2fs) , а меньшая часть пространства используется НЕ-равномерно (/boot/ раздел) — предполагаю что именно в таком случае wear-leveling сгладит не равномерность.

user_id_68054 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.