Page 1 of 2

Format

Posted: Tue Oct 16, 2018 8:32 pm
by theonlymirage
Format - утилита для форматирования.

Текущее состояние: разработка ui.
На этой неделе планирую добавить kmenu и все их настроить, по возможности прикрутить диалог ("все файлы будут уничтожены").
Учёл предыдущие ошибки с размером текста, сразу выбрал признанный всеми вариант. :)

Сейчас же предлагаю обсудить возможность возврата подфункций ф.58 или создания пары новых системных функций. Напомню, что сейчас в ядре есть функция для включения low-level доступа, но самого этого доступа видимо нет.
С 0CodErr обсуждали давнюю тему. Моё мнение:

Если не возвращать такую возможность, а напомню Nasarus в самом начале выпиливания приложил максимум дипломатии... Выпилили не до конца, теперь возможностей нет, добавлять - признать ошибки... Создать что-то новое и умное, ужасно сложно и смысла на данный момент нет.
Моё предложение людям в прошлом: Зашиваем форматирование прямо в ядро, прямо как приложение. Когда какая-то программа захочет форматнуть диск, она делает сис.call и ядро запускает свою программулину, которую эта утилита не в силах контролить. Пользователь с ней работает, делает свои дела.
Конечно тогда можно сказать, что есть функции управления окнами, клавой и мышкой и можно эмулировать ввод пользователя и всё-равно форматнуть диск = дыра. Тогда я не представляю, как они пропустили функцию удаления и перезаписи файла в ядро. Всё это дыры, которые могут испортить данные. У нас в Колибри нет защиты от этого. У нас есть только одна попытка, очень быстрая и очень острая катана, которой мы ловко орудуем как скальпелем.
Сейчас нам либо вернуть всё, можно использовать включение низкоуровневого доступа, которое осталось, либо мы не сможем ничего сделать с задачей форматирования. И без этого есть проблема:
Если мы сделаем системные функции форматирования диска, то понятное дело это подвесит всё ядро на время форматирования. Совсем не годится. Можно предоставлять из ядра чтение/запись блоков байт с диска, но опять же, что мы можем сделать, если скорость доступа к диску низкая... Разрешать работать с блоками до 256 байт? Если блоки будут больше, то копирование опять же сможет подвесить ядро. Возможно нам нужен буфер и ассинхронщина...

Re: Format

Posted: Tue Oct 16, 2018 8:41 pm
by Siemargl
Ты можешь и не знать старый анекдот

Сын Била Гейтса у отца спрашивает: "Пап, а правда, что Windiws многозадачная система? "
- ну да сынок
- а покажи!
- подожди сынок, дискету доформатирую и покажу.

Re: Format

Posted: Tue Oct 16, 2018 8:48 pm
by theonlymirage
Siemargl wrote:Ты можешь и не знать старый анекдот

Сын Била Гейтса у отца спрашивает: "Пап, а правда, что Windiws многозадачная система? "
- ну да сынок
- а покажи!
- подожди сынок, дискету доформатирую и покажу.
Этот знаю, всем рассказывал много лет назад, теперь давай по теме, побольше и посерьёзнее ;)

Re: Format

Posted: Tue Oct 16, 2018 9:07 pm
by Leency
"Обзор" можно смело заменить на "..." - всем понятно и меньше заморочек.
Чекбоксы лучше тоже с большим шрифтом.
Мне понравился дизайн где есть всплывающее окно с предупреждением у которого по периметру идет красный ободок на небольшом расстоянии от края вроде этого http://prntscr.com/l6slgk (сейчас не могу сделать более дельный концепт, если надо чуть позже)

По самой теме мало что могу сказать, т.к. раньше не приходилось сталкиваться.
Вариант не делать вообще худший из всех, надеюсь к этому не придем.
Как в других системах реализовано? Linux, Mac, Win?

Re: Format

Posted: Tue Oct 16, 2018 11:04 pm
by punk_joker
Для ознакомления по теме
http://board.kolibrios.org/viewtopic.ph ... %BB#p58972

Re: Format

Posted: Wed Oct 17, 2018 12:03 pm
by 0CodErr
Продублирую своё предложение
Добавить пункт на синем экране при загрузке системы, разрешающий всякие низкоуровневые вещи, по умолчанию он должен быть выключен.
Системную функцию для включения доступа при этом также лучше оставить.
Просто при выключенном пункте на синем экране эта функция ничего не будет делать.
Насчёт дизайна: может всё же стоит сгруппировать элементы?
Необязательно в точности так http://board.kolibrios.org/viewtopic.ph ... 119#p71118

Re: Format

Posted: Wed Oct 17, 2018 12:25 pm
by Leency
> viewtopic.php?f=4&t=3739&p=71119#p71118

Группировка хорошо.

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

Думаю окна с предупреждением для пользователя, как в других ОС достасточно.
Одна из утилит даже просила пользователя явно текстом ввести "YES" в поле для подтверждения форматирования. Утилита не была консольной, просто editbox возле кнопки.

Кстати, DrvInstall тоже предупреждает пользователя http://prntscr.com/l70zej

Re: Format

Posted: Wed Oct 17, 2018 6:25 pm
by nina
Так как система безопасности в ОС рудиментарная, и ничего в этой области видимо в ближайшее время не изменится - почему бы и не добавить полезную фичу? Только нужны и fdisk, и mkfs, по-хорошему, как отдельные утилиты.

Re: Format

Posted: Wed Oct 17, 2018 8:12 pm
by Pathoswithin
Во программисты пошли... начинают с дизайна, не имея ни программы ни средств для её реализации.
У нас есть драйвер tmpdisk.sys, который умеет форматировать виртуальный диск в FAT16/32. По логике, начинать нужно с него.

Re: Format

Posted: Wed Oct 17, 2018 9:09 pm
by Leency
Pathoswithin wrote:Во программисты пошли... начинают с дизайна, не имея ни программы ни средств для её реализации.
У меня с Eolite также было :D и ничего вон уже версия 4.0 :)

Re: Format

Posted: Thu Oct 18, 2018 3:03 am
by theonlymirage
rev.7476
Продолжаю доработку UI. Добавил группировку, набросал перевод поля "Размер кластера" на выпадающий список.
Теперь окно выглядит так:

Re: Format

Posted: Thu Oct 18, 2018 3:25 pm
by paulcodeman
theonlymirage wrote:rev.7476
Продолжаю доработку UI. Добавил группировку, набросал перевод поля "Размер кластера" на выпадающий список.
Теперь окно выглядит так:
Я думаю в случае успешной реализации программы было не плохо добавить значок в Eolite форматировать диск (в списке дисковых устройств), при нажатии на значок открывалась бы эта прога.

Re: Format

Posted: Sat Jun 22, 2019 12:12 am
by mkostoevr
Я бы сначала за бэк-энд взялся, а не интерфейс...

Как оно, кстати?

Re: Format

Posted: Tue Nov 09, 2021 5:18 pm
by Leency
Просуммируем информацию по разработке фичи форматирования​

Code: Select all

Нам нужно 4 новых сискола: disk_open, disk_read, disk_write, disk_close
Которые уже сделаны в ядре, нужно только организовать доступ к ним из пространства пользователя.

Само форматирование подразумевает две части: 
- разбивка диска на разделы (fdisk)
- создание файловой системы на разделах (mkfs)

Здесь возможные варианты:
- Порт сишных библиотек для работы с fat, ext и тд. 
- Портировать такие утилиты как syslinux, dd, mkfs.
- У нас есть драйвер tmpdisk.sys, который умеет форматировать виртуальный диск в FAT16/32. Развивать его.
Может быть кто-то хочет заняться?
Данная фича будет очень полезна и в моём списке она кандидат на оплаченную разработку.

Re: Format

Posted: Tue Nov 09, 2021 6:43 pm
by Leency
Комментарий от dunkaist:
Не уверен, что нужны отдельные сисколы для открытия и чтения/записи дисков. Надо сразу делать универсальные open/read/write/close, тем более, что Serge уже какие-то заготовки коммитил: http://websvn.kolibrios.org/filedetails ... nc#line-76

Если делать open/read/write/close, то нет смысла их дублировать для дисков. Да, можно отдельно для дисков сделать disk_* функции. Но потом всё равно переделывать. Фактически, это задача сделать файловые дескрипторы, плюс логика форматирования.