Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет p_govorun ([info]p_govorun)
@ 2008-01-12 22:20:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Беспроволочное
Есть такая штука -- универсальный выключатель для телевизоров. Это дистанционный пульт, имеющий всего одну кнопку: "Выкл", зато действующий на все телевизоры. Недавно шутники применили его прибор на компьютерной выставке: телевизоры на стендах, один за другим, погасли.

Теперь представители пострадавших фирм возмущаются хулиганами. Рискну предположить, что скоро они успокоятся, и вернутся к своему занятию -- производству. Они будут производить:
-- мобильники, которые автоматически сигналят всем соседним телефонам о своём присуствии.
-- беспроводные клавиатуры, работающие с базой на расстоянии до сотни метров, даже если эта база -- от совсем другого компьютера.
-- wi-fi роутеры, при включении готовые подключить к сети того, кто первым назовёт им по радио дефолтный пароль.
-- операционные системы, которые, заметив вставленую флешку, первым делом хватают с неё вирус и устанавливают к себе.
-- трамвайные стрелки, которые переключаются переделаным пультом от телевизора.
-- машины для голосования со встроеными радиомодемами.
-- и многое, многое другое...

А может быть, эта история всё-таки их чему-нибудь научит?

UPD: Не прошло и нескольких часов, как во френдленте обнаружился ещё пример радиоуправляемой техники.


(Читать комментарии) - (Добавить комментарий)


[info]p_govorun
2008-01-13 01:07 (ссылка)
Пользователи винды вобще, на удивление быстро ко всему привыкают. Все те, кто когда-то смеялся над монтированием дисков в линуксе, теперь спокойно отмонтируют флашки в винде.

Я там выше написал, почему виндовый вариант -- худший. А ваш вполне пригодный. Может быть, поэтому его никто и не реализует :-/

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]nealar.livejournal.com
2008-01-13 01:28 (ссылка)
Самое смешное, что 98 винда не требует действий для монтирования и размонтирования. Ну да, кэшировать она не сможет при такой политике. Ну и какой толк с виндового кэша?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]p_govorun
2008-01-13 01:31 (ссылка)
Вот ведь, умели когда-то :-)

(Ответить) (Уровень выше)


[info]lodin.livejournal.com
2008-01-13 16:39 (ссылка)
Придется, видимо, реализовывать. Самое сложное -- сделать хук для события "попытка записи". Это вообще насколько глубоко лезть-то нужно?..

И ещё, хотелось бы sync для отдельного устройства. А то просто sync на каждый чих это кхм... Не очень вежливо. А, ну хотя вместо sync можно как раз ремаунтить опять в ro.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]p_govorun
2008-01-13 19:05 (ссылка)
Ну уж если так, то хотелось бы некий "менеджер съёмных дисков". Где можно посмотреть статус ("Воткнуто", "Была запись", "Синхронизировано", "Можно выдернуть", "Выдернуто без спроса: срочно верните", "Не читаеццо", "Не пишеццо") и изменить этот статус ("Я выбросил эту дискету в помойку, забудь о ней", "Отдай CDROM, мне он срочно нужен", "Попробуй ещё раз, вдруг прочтётся").

Но это уже розовая мечта. Никто о таком и не думает.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]k001.livejournal.com
2008-01-14 11:56 (ссылка)
В принципе, ничего такого особенно сложного нет, на низком уровне вроде всё есть для этого.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]p_govorun
2008-01-14 19:06 (ссылка)
Не всё.

Например, нету досовского "Abort, Retry, Ignore?" Пускай бы (по моей просьбе) ядро не спешило бы выдавать приложению "I/O error", а спросило бы меня, что делать. Может, приложение переживёт, если ему дать сектор нулей.

Флага "сюда записывали" тоже нету. Примерно как в текстовых редакторах: даже если файл открыт, редактор помнит, что изменений в нём ещё не было.

Или вот, например: я написал "umount", и жду. Ядро знает, сколько блоков ещё не синхронизировано, но мне оно не скажет. А я, может быть, успею пока сходить за чашкой чая. :-)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]k001.livejournal.com
2008-01-14 21:08 (ссылка)
Например, нету досовского «Abort, Retry, Ignore?» Пускай бы (по моей просьбе) ядро не спешило бы выдавать приложению «I/O error», а спросило бы меня, что делать. Может, приложение переживёт, если ему дать сектор нулей.

А там по игнору приложению возвращался блок нулей? Забавно, я и не знал толком.

Не знаю, для меня практическая ценность оного Нафиг/Нефиг/Пофиг была только в том, чтобы попытаться прочитать слабочитаемую дискетку (в современных условиях — компакт-диск).

Но я вот слабо себе представляю, как можно сделать, чтобы *ядро* спрашивало. Приложение может не иметь терминала. Приложение может иметь несколько терминалов. Приложение может быть иксовым (или чёрт знает каким ещё).

А вот как это сделать на уровне приложения (ну или библиотек, оно примерно понятно (за исключением момента, как заставить ядро перечитывать сектор).

Хотя в целом мне представляется разумным поведения ядра без выбора. Оно делает retry, и если ничего не помогает, возвращает приложению EIO, давая возможность выбрать Abort, Ingore или всё, что угодно.

Флага «сюда записывали» тоже нету. Примерно как в текстовых редакторах: даже если файл открыт, редактор помнит, что изменений в нём ещё не было.

Или вот, например: я написал «umount», и жду. Ядро знает, сколько блоков ещё не синхронизировано, но мне оно не скажет. А я, может быть, успею пока сходить за чашкой чая. :-)


Есть флаг «грязности», это почти то же самое (только он после sync пропадает, но как я понимаю, именно это нам и нужно). Есть количество грязных буферов, которые надо скинуть на диск. В принципе, можно смотреть за прогрессом, писать ETA и т.п.

Кстати, одно время в gnu fileutils (cp, mv, dd) были прогресс-бары по какой-то недокументированной опции, но их оттуда убрали. А зря, мне вот жалко, приходится использовать mc для таких случаев.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]p_govorun
2008-01-14 22:20 (ссылка)
Что возвращала DOS на "ignore", я не знаю. Но что-то же она возвращала.

Я знаю, что ядру неприлично общаться с пользователем. Но если у пользователя беда (нечитающийся CDROM -- это беда), то можно и снизойти. Я это представляю примерно так. По умолчанию всё, как сейчас, но пользователь (видимо, root) может включить особый режим. В этом режиме при ошибке ввода-вывода поднимается некий флаг (скажем, в /proc) а ошибка приложению не возврашается до тех пор, пока пользователь на этот флаг не отреагирует (скажем, путём записи туда же, в /proc). Я понимаю, что при этом могут быть разнообразные глюки в ОС, но если пользователь готов это потерпеть -- его право.

(Когда я рассказываю о линуксе, я иногда говорю "А ещё линукс умеет быть досом. Для этого надо загрузить ядро и запустить bash". (Кстати, существует и command.com под линукс -- кто-то с чувством юмора написал). Так почему бы не довести это умение до совершенства?)

Про "грязный" флаг я не знал. Но нынешнюю ситуацию я вижу так: почти всё есть, но жутко разбросано.

Вот ещё пример проблемы. Представь себе, что у тебя есть usb флешка, про которую ты знаешь всё (vendor/device id, метку тома и прочее в этом духе). Она воткнута в компьютер (linux). Надо написать скрипт, определяющий, подмонтирована ли эта флешка.

(Ответить) (Уровень выше)


(Читать комментарии) -