Компьютерра, 2006 № 05 (625) - [30]

Шрифт
Интервал

Был создан прототип интерфейса, а затем сформирована команда проекта Monad.Знакомство

Итак, Monad (она же Microsoft Shell, или MSH) — это будущая платформа для администрирования операционной системы и программных продуктов Microsoft. Cамая важная идея, заложенная в MSH, состоит в том, что в знакомой нам командной строке вывод результатов команды представляет собой не текст (в смысле последовательности байтов), а объект (данные вместе со свойственными им методами). Все! Остальное так или иначе вытекает из этой идеи.

Вот главные цели, преследуемые разработчиками Monad:

командная строка как основной интерфейс администрирования;

реализация ObjectFlow (элементом обмена информации является объект);

переработка существующих команд, утилит и оболочки;

интеграция командной строки, COM— и .NET-объектов;

работа с произвольными источниками данных в командной строке по принципу файловой системы.

По словам разработчиков, сильное влияние на Monad оказали следующие продукты:

BASH, KSH — композиционность;

AS400/VMS — стандарт синтаксиса именования команд, облегчающий изучение;

TCL/WSH — поддержка встраиваемости и нескольких языков;

PERL, PYTHON — выразительность и стиль.

Участники команды оценили разные аспекты администрирования систем и попытались собрать все лучшее в одном продукте.


Маэстро, музыку!

В качестве примера я написал плагин, который позволяет управлять воспроизведением музыки в Monad (полный код можно найти в [4]). Ниже приведена реализация команды play-nextsong на языке C#, которая переключает воспроизведение на следующую композицию:


[Cmdlet(«play», «nextsong»)]

public class PlayNextSongCommand : Cmdlet

protected override void EndProcessing()

Media.Player.controls.next();

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


Media:\Slayer\Reign In Blood> get-command play*

Command Type Name Definition

— — —

Cmdlet play-nextsong play-nextsong [-Verbose…

Cmdlet play-previoussong play-previoussong [-Ver…

Cmdlet play-song play-song [[-MshPath] S…

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


Media:\Slayer\Reign In Blood> get-command play-nextsong —Synopsis

play-nextsong [[-SkipSongCount] Int32] [-Verbose] [-Debug] [-ErrorAction ActionPreference] [-ErrorVariable String] [-OutVariable String] [-OutBuffer Int32]

А вот так выглядит листинг содержимого текущей директории. Директория не обязательно файловая, это может быть контейнер любых объектов, в нашем случае это альбом, а содержимое — композиции:


Media:\Slayer\Reign In Blood> ls

Number Name AlbumName ArtistName Year

— — — —

1 Angel of Death Reign In Blood Slayer 1986

2 Piece By Piece Reign In Blood Slayer 1986

3 Necrophobic Reign In Blood Slayer 1986

Новые возможности

Что же дает Monad различным категориям пользователей? Программисты, например, смогут ускорить реализацию интерфейсов управления к разрабатываемым системам. Для того чтобы создать новую команду, достаточно унаследовать свой класс от класса Cmdlet и вызвать из него специфичную функцию системы (см. врезку). Отметим, что, реализовав интерфейс управления к своей программе таким образом, разработчик не ограничивается только командной строкой. Стандартная графическая консоль управления Microsoft Management Console (MMC), используемая в Windows XP и Vista, будет понимать модули, написанные для Monad.

Администраторам разнородных сетей, безусловно, будет удобнее управлять Windows-системами, с помощью привычного интерфейса командной строки. Инструменты управления DNS и Active Directory с навигацией, реализованной в виде иерархической структуры, тоже разрабатываются, и их можно найти в Интернете.

Администраторы смогут скомпоновать из разных блоков командную оболочку для определенных типов задач. Ее можно указать в качестве сценария запуска (login shell) при входе определенной группы пользователей в систему — локально или удаленно. Тем самым можно ограничивать функции, доступные пользователям, а требования к пропускной способности канала в случае распределенной системы будут минимальными, достаточными для протокола telnet.

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


SH vs MSH

Не могу удержаться от соблазна сразу же привести пример. Людям, знающим предметную область, он многое объяснит.

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

Я попросил специалиста Unix shell быстро, не зарываясь в man, написать такой скрипт.

Решение SH:


%>ps -A -sort ‘%cpu’ -format ‘%cpu,pid’ | egrep -v ‘^ (0|1|2).’ | grep -v ‘%CPU’ | tail —n3 | gawk ‘{print $2;}’ | xargs -r kill

Скрипт написан за семь минут, работает, и я его привожу как есть — без исправлений. Не буду объяснять, как он работает, отмечу лишь, что главной проблемой является необходимость выделения из набора строк, возвращаемых командой ps, нужные нам параметры процессов (в данном случае — процессоное время).


Еще от автора Журнал «Компьютерра»
Компьютерра, 2008 № 01-02 (717-718)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Компьютерра, 2007 № 15 (683)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Компьютерра, 2008 № 10 (726)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Цифровой журнал «Компьютерра» 2013 № 18 (171)

ОглавлениеКолонкаПочему мы позволяем нас обманывать, или Грустные размышления об иррациональности политической жизни Автор: Дмитрий ШабановГолубятня: Samsung Galaxy S4 — цидули перебежчика (часть 1) Автор: Сергей ГолубицкийУроки любви к Родине: McAfee патентует технологию обнаружения и блокировки пиратского содержания Автор: Сергей ГолубицкийПодпадает ли астрономия под закон о митингах Автор: Дмитрий ВибеIT-рынокНасколько глупа шумиха вокруг «умных» часов? Автор: Андрей ПисьменныйПромзонаПосмотрите на свалку, которую китайцы превратили в парк Автор: Николай МаслухинЭтот сайт позволяет создать собственное световое шоу на точном макете Токио Автор: Николай МаслухинТехнологииДжипег, подвинься! Веппи как единственный необходимый графический формат Автор: Евгений ЗолотовИнновацииПочему менеджерам российских корпораций не нужны стартапы Автор: Елена КраузоваИнга Нахмансон (Fitting Reality): «Российскому e-commerce не до виртуальности» Автор: Елена КраузоваГидGoogle Now для iOS появился без лишнего шума и уже собирает сведения Автор: Андрей Васильков.


Компьютерра, 2006 № 30 (650)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Цифровой журнал «Компьютерра» 2012 № 01 (101)

ОглавлениеСтатьиTertium datur: другие компьютеры Автор: Евгений Лебеденко, Mobi.ruИнтервьюПавел Фролов («ГНУ/Линуксцентр») о НПП Автор: Евгений КрестниковА. Самсонов о троичной логике и цифровой археологии Автор: Андрей ПисьменныйКолумнистыВасилий Щепетнёв: Месть индейских вождей Автор: Василий ЩепетневКивино гнездо: Беззаконие роботехники Автор: Киви БердКафедра Ваннаха: Подарки и конструкции Автор: Михаил ВаннахАлександр Амзин: Силой данного мне природой мозга Автор: Александр АмзинВасилий Щепетнёв: Гимн усталому караулу Автор: Василий ЩепетневКивино гнездо: Беззаконие роботехники (окончание) Автор: Киви БердДмитрий Шабанов: Марков и Эволюция человека Автор: Дмитрий ШабановКафедра Ваннаха: Пришельцы на Луне Автор: Михаил ВаннахГолубятня-ОнлайнГолубятня: Даже гоблин ходит в отпуск Автор: Сергей ГолубицкийГолубятня: Железный парад 2011 Автор: Сергей Голубицкий.


Рекомендуем почитать
«Если», 2005 № 07 (149)

Вернор ВИНДЖКУКИ-МОНСТРЕсли поутру вы не можете вспомнить обстоятельства вчерашнего дня, то хочется свалить вину на бурно проведенный вечер. Ну а если и это не так?Елена ХАЕЦКАЯБУГГО И ПИРАТЫЧитателю журнала не впервой путешествовать на космическом корабле «Ласточка», ведомом стойким капитаном Бугго Анео. Но на этот раз полет будет куда опаснее.Фрэнк РОДЖЕРБАБУШКИНО ПУТЕШЕСТВИЕ НА ЛУНУНа Луне — улетный шопинг, если кто не знает. И цены, между прочим, вполне приемлемые.Терри МАКГЕРРИСТРЕМНИНАЧужие тайны — штука коварная.


«Если», 2009 № 05 (195)

Джон КЕССЕЛГОРДОСТЬ И ПРОМЕТЕЙИстория Виктора Франкенштейна продолжает тревожить умы писателей… Хотя стилистически эта повесть ближе не прозе Мэри Шелли, а перу Джейн Остин.Кристин Кэтрин РАШКОМНАТА ЗАТЕРЯННЫХ ДУШОднажды «нырнув в крушение», знакомая нам героиня зареклась заниматься спейс-дайвингом. Надолго ли ее хватит?Сергей КУПРИЯНОВЛОВУШКА ШЕРМАНАДело пахнет керосином! Жаль, бравые вояки поняли это слишком поздно.Джек СКИЛЛИНСТЕДВСЁ, ЧТО ТЫ УВИДИШЬПленный пришелец стремится переиграть своего палача, меняя реальности.Олег ДИВОВСТРЕЛЬБА ПО ТАРЕЛКАМТакая вот национальная забава… И не по-смеет инопланетный супостат топтать нашу картошку!Кир БУЛЫЧЁВПЛЕННИКИ ДОЛГАПисатель никогда не забывал об одном из своих любимых героев.


День Литературы, 2001 № 08 (059)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


День Литературы, 2001 № 06 (057)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


День Литературы, 2002 № 07 (071)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


День Литературы, 2010 № 02 (162)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Компьютерра, 2008 № 17 (733)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Компьютерра, 2006 № 06 (626)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Компьютерра, 2006 № 23 (643)

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Компьютерра, 2005 № 27-28 (599-600)

Документ создан на основе открытого контента, расположенного по адресуhttp://offline.computerra.ru/2005/599/Размер изображений не менялся, поэтому некоторые могут быть некорректно отображены на неVGA-моделях КПК (особенно скриншоты и таблицы).