avva: (Default)
[personal profile] avva
Let's Bash Microsoft Today — забавная дискуссия в веблоге Филиппа Гринспана о том, за что стоит ненавидеть Майкрософт (или не стоит). В основном в комментах.

Кстати, хотя со многими высказанными там претензиями я согласен, многие другие кажутся мне непонятными или даже невразумительными. И откуда, интересно, такая ненависть к реестру (он же registry)? Вот это я давно не могу понять. У меня есть немало конкретных претензий к Майкрософту по поводу реестра (плохо документирован, в основной программе редактирования не хватает многих важных возможностей, итп.), но я не понимаю, что такого уж ужасного в идее центрального реестра конфигурационной информации, в принципе.

Date: 2003-09-29 10:16 am (UTC)
From: [identity profile] dimrub.livejournal.com
Про Юникс позвольте не согласиться. Есть системы, которые доказывают, что при грамотной организации юниксовский подход работает. FreeBSD например. Да даже и RedHat, когда немножко освоишься!

FreeBSD мне администрировать не приходилось (только программировать маленько - www.kulichki.com), а RedHat - сколько угодно.

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

А вот примеров систем, которые успешно используют registry нету :)

С этим утверждением трудно спорить, но я попробую. Пример такой системы - Windows начиная с 2000. Ваш ход.

И вообще, Вам пришлость два раза использовать аргумент "надо будет, напишут", а это, по-моему, наводит на размышления. С текстовыми файлами настройки кроме текстового редактора и grep писать ничего не пришлось.

Это пример различия между платформой и аппликацией. В MS не удосужились написать нормальный редактор реестра, нормальный текстовый редактор (не word processor: я про notepad) и telnet. Какие выводы из этого можно сделать о реестре либо о виндошном TCP/IP stack?

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

Date: 2003-09-29 10:32 am (UTC)
From: [identity profile] meshko.livejournal.com
Один из примеров, который сходу вспомнился - это Samba. Вот уж configuration hell.

Да, но там всего один файл конфигурации и все в нем. Кстати есть что-то забавное в том, что Вы привели в пример именно Самбу.

С этим утверждением трудно спорить, но я попробую. Пример такой системы - Windows начиная с 2000. Ваш ход.

Windows 2000 имеет интересное свойство: она со временем работает все медленней и медленней. Это конечно ничем не подкрепленные слова. Ну мне так кажется, и не мне одному. Многие просто её раз в год переустанавливают. Это, конечно, на десктопе. На сервере, на который не ставят новые программы таких проблем нет. Я считаю, что это связано с накоплением мусора в registry.

Потому что попробуйте при помощи find / найти где же сидит этот гребанный файл с конфигурацией автомаунта - я Вам не позавидую.

С помощью find сложно. А вот так:
rpm -qa | grep auto
rpm -ql autofs
man autofs

довольно просто.

Date: 2003-09-29 10:39 am (UTC)
From: [identity profile] dimrub.livejournal.com
Да, но там всего один файл конфигурации и все в нем. Кстати есть что-то забавное в том, что Вы привели в пример именно Самбу.

Навскидку - их там как минимум 3: собственно samba.conf, lmhosts и файл с паролями. Да, четвертый - /etc/init.d/samba.

Плюс, почему-то samba.conf по крайней мере на Дебиан существовала в нескольких вариантов. Какой из них действовал - поди разберись.

Date: 2003-09-29 10:47 am (UTC)
From: [identity profile] meshko.livejournal.com
Еще раз хочу обратить внимание: Самба -- не самый выигрышный для Вас пример.

/etc/init.d/samba -- это не совсем файл конфигурации программы, это скорее вместо диалога "services". Тут бы уместно сказать, что я думаю о команде net и её документации, но это офтопик.

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

Date: 2003-09-29 11:33 am (UTC)
From: [identity profile] dimrub.livejournal.com
Ну у Вас прям как у Ивана Бездомного: о чем не спросишь - все не конфигурация. По этой логике список shares, находящийся в файле samba.conf, это тоже данные.

На самом деле, реестр пригоден для хранения любой иерархической информации небольшого объема, которая редко изменяется. lmhosts - типичный пример. Более того, мне не совсем понятна логика разработчика, поместившего в системную директорию windows файл /etc/hosts. Его содержимому самое место в реестре.

Вместо команды net Вы можете воспользоваться вполне съедобным графическим междумордием. Как жаль, что в plain vanilla Unix нет аналога команде net, и каждая дистрибуция придумывает что-то свое.

Date: 2003-09-29 11:40 am (UTC)
From: [identity profile] meshko.livejournal.com
Ладно, lmhosts и пароли это скорее традиция, вроде /etc/hosts и /etc/passwd

На самом деле я часто ловлю себя на дословно такой вот мысли: "и за что я эту registry так ненавижу? Идея-то вроде правильная...".

Кстати в Самбе скоро обещают команду net.

Date: 2003-09-29 12:37 pm (UTC)
stas: (Default)
From: [personal profile] stas
А, ещё интересная тема. У меня на винде на работе глючит драйвер. Скорее всего, сети или что-то, на него навешаное. На юниксе я бы в течении получаса примерно разобрался, какой файл за это отвечает, где его настройки и как его переустановить/отключить. В Windows, насколько я понимаю, к этой проблеме нормальный человек без изучения наизусть книги "как писать VXD" может даже и не приближаться. Это, конечно, не вина resistry, так к слову пришлось.

Date: 2003-09-29 12:49 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Это достаточно слабый аргумент. Человек с бОльшим опытом администрирования виндов, нежели юникса, может с той же уверенностью сказать, что на виндах он за полчаса примерно разберется что к чему, а в Юниксе без изучения книги, скажем, "FreeBSD Kernel" он может даже не приближаться. Кстати, в таких случаях очень помогает event viewer. Его как бы аналог на Юниксе, содержимое директории /var/log, намного менее приспособлено для использования человеческим существом.

Date: 2003-09-29 01:03 pm (UTC)
stas: (Default)
From: [personal profile] stas
Сомневаюсь - и сильно. Все люди, которых я спрашивал, говорили мне что-то типа: "Переустанови драйверы. Ах, не помогло? Ну тогда не знаю...".
В event viewer, понятное дело, нет ничего. Точнее, там до задницы всего, только не имеющего отношения к делу.

Его как бы аналог на Юниксе, содержимое директории /var/log, намного менее приспособлено для использования человеческим существом.

Это вы, батенька, сгоряча сказали. В евентлоге такой мусор встречается, что только руками всплеснешь. Вот сейчас глянул, там лежит от инсталлера сообщение, что-то типа "В продукте {длинный GUID} неовзможно установить компоненту {другой длинный GUID}". Оченно полезно. А в другом логе вот такое: "RSM cannot manage device PhysicalDrive1. It encountered an unspecified error". Тоже крайне полезное сообщение :)

Date: 2003-09-29 02:19 pm (UTC)
From: [identity profile] meshko.livejournal.com
Как сделать grep в evenlog'e? Где он вообще находится? Как запустить eventviewer через командную строку (минуя меню)? Как настроить какие программы пишут в какой event log?
Это офтопик, но мрачный для Windows, очень.

Date: 2003-09-29 03:04 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Ооо, как много сложных вопросов сразу!

Как сделать grep в evenlog'e?

"Event Viewer" -> скажем, "Applications" -> View -> Filter. Если не устраивают предлагаемые опции фильтерования, можно скинуть лог в файл (Action -> Save Log File), дальше - грепом.

Где он вообще находится?

Куда положите (вышеупомянутой опцией), там и будет.

Как запустить eventviewer через командную строку (минуя меню)?

C:\>eventvwr

Как настроить какие программы пишут в какой event log?

Любая программа, используя задокументированный интерфейс

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskaddingyourapplicationassourceofeventlogentries.asp

Кроме того, можно посыслать события через утилиту с командной строки:

http://www.itworld.com/nl/win_this_wk/03032003/

Это офтопик, но мрачный для Windows, очень.

Давайте теперь все те же вопросы зададим про syslog, maillog и еще черт знает какой лог в директории /var/log/*. Впрочем, это оффтопик.

That's it!

Date: 2003-09-29 11:10 am (UTC)
From: [identity profile] towndwarf.livejournal.com
Угу, 100% согласен с [livejournal.com profile] dimrub, не говоря уже о том, что тем, кому нравятся INI - могут замечательно писать СВОИ програмки используя INI.

Да, кстати - Винды бекапят свой реестр. А как на счёт INI?

Да и вообще - по моему любые такие споры - это "ענין דתי" (дело религии),
на данный момент существуют 3.5 нормальных операционки (UNIX (+0.5-Linux :-), MAC, Win (NT)), которые
а) работают;
б) с ними работают многие
в) написано до дури софта;
г) они "стандартизировали мир", что вывело программирование из пелёнок "домушничества".
...
Каждый волен ругать/выбирать в соответствии с первой детской любовью,
ибо кроме удобства,пригодности к решению определённой задачи, лёгкости/цены поддержки и комплектующих, всё остальное - лишь пустые разговоры, частенько поддерживаемые лишь апломбом.

Date: 2003-09-29 12:32 pm (UTC)
stas: (Default)
From: [personal profile] stas
Файл с конфигурацией автомаунта ищется так:

man automount

А вот расскажите мне, где искать registry entry, в котором написано, какой диск куда прицепляется при буте - думаю, это посложнее будет задачка ;)

Date: 2003-09-29 12:43 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Стас, я когда-то конфигурировал automount и его evil twin - autofs. Это был кошмар ходячий. man automount даже не начинал помогать понять, что, черт побери, там происходит, и почему ни хера не работает. А по поводу диска на буте -

Google ->

http://www.theeldergeek.com/change_drive_letters.htm

Date: 2003-09-29 01:12 pm (UTC)
stas: (Default)
From: [personal profile] stas
Это вы мне чё-то левое нашли, какие-то советы эникейщика по XP. Я спросил - вот я хочу, чтобы у меня буква "зю" при буте подключала путь \\foo\bar. Куда в registry писать? В качестве вольного упражнения - в каком ключе registry хранится разрешение экрана по умолчанию и как его поменять, не пользуясь GUI? В качестве третьего упражнения - где хранится текущая timezone и как узнать, что именно там написано (например,когда в этом году летнее время) - а также поменять это? В Юниксе, просто для информации, всё это хранится в текстовых файлах и меняется текстовым редактором и утилитами типа ln.

Что касается автомаунта - надо, разумеется, читать и man autofs заодно. Там всё прописано с примерами. Очень весело работает. Единственный недостаток - когда что-то не работает по внешним причинам, найти,что же не сработало, трудновато. Это проблема, что есть, то еть. У виндов, впрочем, с этим ещё хуже - они просто при любой проблеме спрашивают пароль до посинения ;)

Date: 2003-09-29 01:14 pm (UTC)
stas: (Default)
From: [personal profile] stas
Поправочка - сам timezone хранится всё-же в двоичном формате, читаемом специальной (стандартной) программой.

Date: 2003-09-29 01:37 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Это вы мне чё-то левое нашли, какие-то советы эникейщика по XP. Я спросил - вот я хочу, чтобы у меня буква "зю" при буте подключала путь \\foo\bar. Куда в registry писать?

Зачем в registry? Это можно сделать из explorer. Рассказать как?

То же касается и остальных заданий. Есть GUI, есть configuration APIs, а есть и registry keys, но поскольку доступ к ним напрямую не предусмотрен, они не документированы. Если же кому-то очень надо, он найдет их (хотя зачем - непонятно).

Date: 2003-09-29 01:57 pm (UTC)
stas: (Default)
From: [personal profile] stas
но поскольку доступ к ним напрямую не предусмотрен, они не документированы.

В этом-то и основная беда. Это концепция windows, за которую я его не люблю - что якобы они лучше меня знаю, чего мне понадобится. По опыту - они знают хуже ;)

Зачем в registry?

Мы ж говорили про registry. Вот вам пример вещи, которую в конфигурации Unix найти проще простого, а в registry - очень непросто. Я таких примеров, при нужде, могу немало произвести :)

Это можно сделать из explorer. Рассказать как?


Расскажите. А лучше напишите - коротенькую программку, которая бы получала 2 аргумента - букву и сетевой путь - и привязывала второй к первой. Нет, я не спорю, это возможно - но пока эту фигню отыщешь, заморишься. То ли дело Unix - mount и кум королю ;)

Date: 2003-09-29 02:02 pm (UTC)
From: [identity profile] dimrub.livejournal.com
net use /PERSISTENT:YES

Date: 2003-09-29 02:12 pm (UTC)
stas: (Default)
From: [personal profile] stas
Ну, допустим. А остальные?

Date: 2003-09-29 03:19 pm (UTC)
From: [identity profile] dimrub.livejournal.com
http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_20703479.html#9105499

Это насчет резолюции экрана. Судя по Вашему комменту выше, стандартные инструменты можно предлагать? Ну так вот, стандартнее WinAPI на виндах еще не придумали.
stas: (Default)
From: [personal profile] stas
WinAPI меняет _текущие_, насколько я понял. Я же говорил именно о:
"[HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{B18A464E-ACA7-4F17-A1B4-3ED211131432}\0000\Mon70000001]",

Правда образец понятности и прозрачности? ;) Я ещё и подозреваю, что это имя аппаратно-зависимо... Нет, я понимаю - "не предназначено для использования". Ну тогда нечего на юникс наезжать, что у него файлы не так устроены - у виндовсов registry устроено не лучше, да ещё и не предназначено.
From: [identity profile] livsy.livejournal.com
Чего ж непонятно? {GUID} -- идентификатор видеокарты, 0000 -- номер её конфигурации Mon700... идентификтор монитора. Это навскидку. Просто я с этим работал а ты нет.

Имя не только аппаратно зависимо, но ещё и драйверно и номеромонитроно зависимо, представляешь? Только не надо туда ходить вручную. Просто нет необходимости. Реестр предназначен для хранения данных программ, а не пользователей. И если у тебя три видеокарты, пять мониторов и работаешь с ними ты в двух конфигурациях, то такая нотификация позволяет избежать путаницы в текстовом файле хотя бы за счёт представления данных в виде дерева.

Мне кажется логичным, что ОС должна иметь централизованную базу данных для хранения своих настроек. Все *nix согласны с этим и имеют негласный стандарт держать натройки ОС в /etc. Вот только для windows эта система текстовых файлов в /etc неудобна -- настроек на порядки больше -- стороннего софта больше, драйверов больше, железа больше.

Я себе представляю OLE, лазающее grep'ом по директории с CLSID и собирающее объекты из текстовых файлов.

Вариантов её хранения 2: более удобный для пользователя и более удобный для ОС. Для ОС типа windows, где требуется хранить множество настроек, подходит естественно второй. А чтобы пользователь не скучал ему дали минимально функциональный редактор реестра.

На самом деле просто у различных подходов различны цели.
stas: (Default)
From: [personal profile] stas
Только не надо туда ходить вручную. Просто нет необходимости.

Сегодня в масле потребности нет ;)

Реестр предназначен для хранения данных программ, а не пользователей.

Есть такие люди - программисты. Они кто - программы или пользователи?

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

_Своих_ настроек или всех вообще настроек?
Ну да ладно - допустим, это всё так. Но registry - это лишь один из возможных вариантов воплощения одной из моделей такой базы. И как таковой, обладает многочисленными недостатками.
Тема в том, что если я каждый раз для того, чтобы узнать, где что в registry хранится, должен запрашивать соответствующую программу - с тем же успехом эта программа может хранить свои конфиги в .ini или на клинописных табличках. Преимущество единой базы должно быть в том, что есть унифицированные инструменты доступа. Часть этих инструментов у registry есть - но увы, недостаточная. В первую очередь - из-за недостаточной документации, стандартизации и излишней ориентации на специализированные GUI. Для юзеров этого и вправду хватает, а вот как начнёшь копать вглубь - начинается кино и немцы.

Я себе представляю OLE, лазающее grep'ом по директории с CLSID и собирающее объекты из текстовых файлов.

Совершенно необязательно грепом. Файловая система поддерживает иерархические структуры не хуже спецформата микрософт, и уж точно - не медленнее. Особенно специализированная система - смотри, например, /proc.
А хоть бы и грепом - чем, в самом деле, плохо?

Date: 2003-09-30 08:05 am (UTC)
From: [identity profile] avnik.livejournal.com
А оин grep знают, а find еще нет ;)

Хотя честно говоря хочется гибрида ;) надо будет скрпитик написать на sh

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
2829 30 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 12:02 pm
Powered by Dreamwidth Studios