Еще в 2000 году колумнист сайта
MacOpinionМарк Зидер (Marc Zeedar) предложил читателям концепт гипотетического Ultimatebook, который можно было бы собрать в домашних условиях из самостоятельных модулей: экрана, мини-базы (процессор, жесткий диск, память, порты), расширенной базы (второй процессор, второй жесткий диск, дополнительная память) и клавиатуры.
Результаты тестирования сведены в таблице 1 (но к этим цифрам следует относиться осторожно: для тестирования нам был предоставлен не серийный экземпляр, а сэмпл, так что не исключено, что публикуемые показатели слегка занижены. По той же причине отсутствуют результаты работы в автономном режиме.) В таблице 2 - спецификация, которую приводить здесь лишний раз бессмысленно. Так что перейдем сразу к лирике.
Лично я привык работать за ноутбуком, и мне отделяемый экран ни к чему, но, думаю, для многих применений (например, работа в графических пакетах или компьютерные игрушки) он предпочтительнее. Сам процесс «перевода» экрана в настольный режим несложен: две защелки на корпусе ноутбука, вытащить экран, две защелки на подставке, поставить экран в пазы, подключить питание, воткнуть интерфейсный кабель, врубить машину и наслаждаться. Непонятно, что еще тут можно упростить, но перевод ноутбука из портативного режима в настольный - это все же не то действие, которое хочется делать часто. Особенно мешает осознание стоимости дисплея.
Звук - для ноутбука отличный. Во многом, по-видимому, за счет того, что сам ноутбук широкий и источники звука разведены чуть шире, чем обычно (плюс, конечно, сабвуфер). Не возьмусь утверждать, что M70 в исходной комплектации устроит любого меломана как основное мультимедийное устройство в доме, но человек, которого заботит компьютерный звук, наверняка подключит к ноутбуку соответствующего качества акустические системы. Возможность такая, естественно, предусмотрена. Встроенного микрофона нет.
Что же до мультимедий вообще, то в M70 - как и в некоторых других ноутбуках от Samsung - реализована система AVS Now, позволяющая работать с аудио-, видео-, фотоматериалами и даже смотреть эфирное ТВ, не загружая основную ОС. С ТВ у меня не сложилось (у M70 нет внутренней антенны, а подключать внешнюю я не стал, поскольку ее нет у меня), а все остальное вполне работает. Интересно, что ранние версии AVS Now работали под Linux, тогда как в M70 реализована версия для XP Embedded, на загрузку которой уходит 10 секунд. По идее, это должно экономить заряд батареи (у Linux-версии выигрыш был неочевиден), но насколько эффективна в этом смысле новая AVS, мы проверить не смогли.
Честно говоря, полезность подобных решений вызывает некие сомнения. Возможно, бывают в жизни ситуации, когда душа так жаждет послушать .wma группы «Любэ», что ждать больше 12 секунд нет никакой возможности, но я в них пока не попадал. Крупные элементы интерфейса AVS и пульт ДУ облегчают использование ноутбука в качестве медиаустройства, но разбазаривать таким образом заложенный в M70 потенциал - преступление. На мой взгляд, Samsung реализует эту технологию в своих ноутбуках для галочки, чтобы было не хуже, чем у других (другие, в свою очередь, исходят примерно из тех же соображений). Ну получилось. Не хуже.
Осиротевшую без экрана полноразмерную клавиатуру вполне можно держать на коленях (2,2 кг), хотя она, конечно, греется - что для ноутбуков явление обычное. В общем, если приглядеться, то получается, что M70 местами все еще лэптоп, при необходимости вполне портативен и время от времени может считаться ноутбуком.
Хотя составителей словарей, полагаю, все же нужно предупредить.
Благодарим российское представительство компании Samsung за предоставленный ноутбук.
Софтерра:Заметки поселенца
Посмотрел на календарь и удивился: с того момента, как я попытался хотя бы недельку «протянуть» под Linux, прошло уже больше года, в течение которого я если и перезагружался под альтернативной ОС производства известной редмондской компании, то очень редко и ненадолго - и при первой же возможности с удовольствием возвращался обратно, в свободную и дружественную систему. Впечатлений от Linux за этот год накопилось множество - некоторыми из них хотелось бы поделиться.
Первое открытие начинающего линуксоида состоит в следующем: любая проблема имеет решение. Это такое свойство открытого софта - если что-то не работает или работает не так, вы всегда можете немного повозиться, найти причину неполадок и в конце концов устранить их на радость себе и окружающим. При этом и диагностика, и лечение производятся не шаманскими методами, вроде «переставить программу» или «перезагрузить компьютер», а вполне научными: анализом log-файлов, чтением документации и поиском дополнительной информации. В худшем случае может понадобиться, например, написать драйвер для какой-нибудь новой железки или сделать что-нибудь еще столь же нетривиальное и требующее специальных познаний, - но, как правило, достаточно уметь пользоваться Google и обладать базовыми навыками работы с системой. Большинство проблем, с которыми может столкнуться новичок, уже обсуждались где-то в Сети, и, скорее всего, решение можно найти в форумах или конференциях - главное, правильно сформулировать поисковый запрос.
Обычно на сайте программы ведется учет и контроль обнаруженных багов (с помощью системы, аналогичной bugzilla, или через почтовый список рассылки) - там можно убедиться, что разработчики в курсе существующих проблем, и найти возможные способы их решения. Стоит также проверить, используете ли вы самую свежую версию, - ошибки исправляются достаточно оперативно, и порой изменение последней цифры в номере релиза оказывает существенное влияние на его стабильность. Если же вдруг вы стали первооткрывателем неисправности, не поленитесь и сообщите о ней, отправив как можно более подробное описание всех ваших злоключений (с указанием версий, особенностей настройки, выдаваемых ошибок и т. д.), - скорее всего, помощь придет (быть может, даже быстро), а за информацию о глюке сообщество скажет вам огромное спасибо.
Философия работы с компьютером в Unix/Linux и Windows принципиально разная. С точки зрения Unix-системы, программ должно быть много, и каждая должна заниматься своим делом, а сложная функциональность достигается за счет их взаимодействия: одни приложения могут использовать другие, передавать друг другу информацию и вообще жить бурной внутрисистемной жизнью. Более того: пользователь, по мнению Unix, представляет собой лишь еще один процесс, не лучше и не хуже какой-нибудь утилиты или демона. Соответственно отдельные софтинки должны уметь общаться в первую очередь с себе подобными - то есть обладать интерфейсами, которые поддаются автоматической обработке.
В Windows все наоборот: программы готовы взаимодействовать с человеком (с помощью GUI), но не со своими собратьями. В результате отсутствия разделения труда приложения обрастают гроздьями функций, размер дистрибутивов растет как на дрожжах, а новые возможности бывают далеко не всегда нужны большинству пользователей. Конечно, «монолитные» программы есть и под Linux, но общая концепция системы все-таки другая, что чувствуется в большинстве открытых разработок.
Впрочем, это не значит, что весь свободный софт жутко недружелюбен. Проблема пользовательского интерфейса решается в рамках Unix way легко и изящно: многие GUI-приложения просто являются надстройками (frontend) над консольными утилитами (backend). Например, под Linux существует несколько систем синхронизации с «Палмами» (kpilot, jpilot и т. д.), но все они являются frontend’ами над разработкой pilot-links, осуществляющей взаимодействие с КПК. Аналогичным образомработают CD-рекордеры K3b и xcdroast, а также множество других GUI-программ. Подобный подход дает серьезные преимущества: не теряя в удобстве работы по сравнению с «монолитами», мы приобретаем гибкость модульной архитектуры.
Наличие множества программ с доступом из командной строки создает своеобразную языковую среду, в которой очень любят работать юниксоиды. Из нескольких тысяч «слов» можно составлять «предложения», выполняющие довольно нетривиальные действия. Можно изобретать новые «слова», используя скриптовые языки (Shell, Perl, Python и др.), что позволяет расширять возможности самовыражения и упрощать работу с системой. При этом компьютер выступает в качестве очень прилежного ученика-помощника, которому достаточно один раз объяснить, как выполнять то или иное действие, и можно быть уверенным, что он все поймет и запомнит (если, конечно, вы правильно объясняли).
Меняется само отношение к работе с компьютером: оно становится более творческим, смещаясь от периодического прочесывания Интернета в поисках новой «классной программы для…» к решению конкретных задач теми средствами, которые предоставляет система. Конечно, это не значит, что софт искать совсем не приходится или что нужно все писать самому, - но зачастую такой подход оказывается быстрым и эффективным. К тому же он позволяет реализовывать весьма специфические вещи, которые практически невозможно найти в сторонних разработках. Подчеркнуть собственную индивидуальность всегда приятно, а интересная и необычная функция, сделанная своими руками, - это вам не логотип на экране мобильника, купленный за доллар у оператора.
При использовании свободного софта меняются не только привычки - меняется мировоззрение. Работая в среде, созданной энтузиастами, поневоле сам становишься одним из них. Найдя интересную разработку, задумываешься не только о том, как ее использовать для решения своих задач, но и о том, как можно помочь ее авторам и другим пользователям - например, реализовать нужную функцию, сообщить об ошибке или ответить на вопрос в форуме. Когда понимаешь, что ситуация под твоим контролем, что твой браузер не станет проверять, насколько лицензионно чиста твоя система, а медиаплейер не будет без твоего ведома сообщать «куда надо», какую музыку ты любишь, что нужная программа не исчезнет с лица земли только потому, что разработчик ее забросил, а исходники выложить не захотел, - начинаешь понимать, что свободный софт - это не просто громкие слова.
Есть каталог с фотографиями. Требуется повернуть каждое изображение в соответствии с положением камеры при съемке (некоторые цифровые фотоаппараты записывают информацию об ориентации снимка в EXIF-данные JPEG-файлов), а также изменить размер на 800х600.
Для работы с EXIF нам потребуется пакет jhead, а для изменения размера изображений - функция convert из набора инструментов ImageMagick. Заклинание для решения всех наших проблем выглядит следующим образом:
mkdir output; for FILE in *.jpg; do jhead -autorot “$FILE“; convert “$FILE“ -resize 800x600 “output/$FILE“; done
Несмотря на то что эта длинная команда пишется в одну строчку, она представляет собой полноценную мини-программу. В ней есть даже цикл (участок между do и done), перебирающий все jpg-файлы в текущем каталоге (их имена записываются в переменную $FILE). Авторы jhead уже позаботились об автоматическом повороте картинок (достаточно указать ключ -autorot), а команда convert умеет не только преобразовывать практически любые типы графических файлов в любые другие, но и обладает недюжинными познаниями в области обработки изображений, так что изменить размер снимка для нее - пара пустяков.
Оповестить пользователя звуковым сигналом о том, что появилась связь с Интернетом.
while [ -z “`ping -c 1 computerra.ru - grep 1\ received`“ ]; do sleep 1; done; aplay “`locate redalert.wav`“
В переводе на русский язык, эта строчка означает приблизительно следующее: если до сервера computerra.ru достучаться не удалось, нужно подождать одну секунду и повторить попытку; затем найти файл redalert.wav и проиграть его. При этом используются многие хитрости языка bash: обратные кавычки, перенаправление потоков ввода-вывода и неявный вызов команды test с помощью квадратных скобок, но подробный разбор синтаксиса остается за рамками данной статьи.
Война миров
Статья «Заметки поселенца» описывает опыт перехода на Linux отдельно взятого пользователя, еще при жизни под Windows уличенного в пагубном пристрастии к клавиатурным интерфейсам и командной строке. Дабы несколько приблизить эту публикацию к реальной жизни, мы решили рассказать и о другом взгляде на вещи. - И.Щ.
Спорить о преимуществах и недостатках операционных систем - занятие неблагодарное, особенно если речь идет о Linux и Windows. Несмотря на все аргументы сторон, последнее слово остается за сухими цифрами статистики - а цифры эти далеко не на стороне свободной ОС. И дело здесь не в том (или не только в том), что у Windows есть какие-то явные и неоспоримые преимущества, а в том, что находятся люди - очень много людей - которых устраивает именно эта система. Есть ли основания предполагать, что эта ситуация изменится в какую-либо сторону в ближайшие годы?
Когда речь заходит о сравнении Linux и Windows, одни говорят, что Windows более дружественна к пользователю, другие утверждают, что и Linux не менее дружественна. Так что же, Windows - это некая «массовая», доступная операционная система, в то время как любой «профессионал» неизбежно должен оценить достоинства Linux? Впечатление это хоть и имеет под собой основания, по сути своей ошибочно. Есть немало профессиональных программистов, которые предпочитают именно Windows, и даже готовы долго и со знанием дела ругать «свободную ОС» и доказывать ее нежизнеспособность. С другой стороны, Linux сейчас становится все более «дружественной», и освоение многих ее дистрибутивов не представляет особой сложности даже для человека, неискушенного в программировании.
Так в чем же дело? Почему защитники Windows так любят говорить о простоте и доступности этой ОС, а сторонники Linux всегда готовы упомянуть о перспективах, открывающихся при использовании командной строки и языка bash? Есть бородатый анекдот, в котором разные операционки сравнивают с самолетами. Пересказывать его здесь я не стану, а вот метафорой воспользуюсь. Windows похожа на комфортабельный, надежный авиалайнер, в котором пользователь является пассажиром. А что же Linux? Linux не менее (или «почти не менее») комфортабельный и надежный авиалайнер, вот только пассажир в нем может при желании сесть в кресло пилота. Это главное отличие. Кто-то, быть может, скажет, что это бесспорный плюс. И будет не совсем прав.
Продолжим наше сравнение. Когда самолет попадает в воздушную яму, у пассажира есть только одна возможность - перекреститься и прочитать молитву, не слишком надеясь, что ему это поможет, но будучи твердо уверенным, что и вреда не принесет. Пилот же не может позволить себе такой роскоши. Он должен что-то предпринять, и результаты его действий могут быть катастрофическими. Человеку, как известно, свойственно ошибаться, а еще человек не любит, когда его ошибки приводят к неприятным для него последствиям. И, по-видимому, из-за этого большинство людей летает на самолетах именно в качестве пассажиров.
Так вот: компьютер для большинства пользователей - всего-навсего инструмент. Инструмент красивый, сложный и удобный, но никак не творческая мастерская. И если он действует по принципу «черного ящика», тем лучше. Хорошо, конечно, когда инструмент можно улучшать по своему усмотрению и чинить при необходимости. Вот только это еще и лишняя головная боль. Стиральную машину тоже можно починить самостоятельно, но почему-то большинство из нас предпочтет вызвать мастера.
А что же программисты? Они-то как раз и есть мастера, разве не так? Так, да не совсем. Даже для программистов компьютер нередко остается только инструментом - инструментом, которым они владеют лучше других людей. Разумеется, чем чаще человек использует какой-то инструмент, чем больше набивает руку, тем больше шанс, что он захочет как-то изменить его, подогнать под себя. Но так бывает не со всеми, и зависит это не столько от инструмента, сколько от самого человека.
Главная черта Linux, которая далеко не всем по душе, - присущая этой ОС идея незавершенности, сквозящее всюду приглашение к сотрудничеству. Если Windows встречает пользователя яркой, рекламно-броской и совершенно непроницаемой оболочкой, то Linux целиком состоит из приоткрытых дверей, люков и форточек, откуда непрерывно доносится гул и равномерное постукивание. И попавший сюда человек либо вскоре сбежит и вернется к глянцевой тишине Windows, либо - рано или поздно - его одолеет любопытство, и он начнет в эти двери заглядывать, превращаясь из простого пользователя в разработчика. Windows не самое лучшее, но простое и, что важнее всего, готовое решение. Linux - дорога для тех, кого оно не устраивает.
ТЕХНОЛОГИИ:Не лает, не кусает: Криптографические решения для всех и для каждого
Практическое применение криптографии долгое время оставалось уделом спецслужб и тщательно скрывалось от посторонних глаз. К сожалению или к счастью, развитие информационных технологий существенно расширило возможности шифрования данных, заодно сделав криптоинструменты доступными всем желающим. И таковых нашлось немало: практически любой компании есть что скрывать от конкурента. А затем и частные лица вдруг поняли, что их приватность ежедневно и ежечасно находится под угрозой. В немалой степени усугублению этой разновидности паранойи способствовал Интернет - на радость разработчикам средств информзащиты.
Подстегиваемая растущими техническими возможностями и жадным спросом, криптография начала развиваться темпами, впечатляющими и озадачивающими даже компьютерщиков с стажем. В результате обилие шифрософта не позволяет не то что составить полный каталог имеющихся программ, но даже однозначно классифицировать приложения.
Способы шифрования данных следует разделить по их программной реализации. Начнем с того, что кое-какие криптоинструменты есть даже в операционках. Так, в Windows XP используется специальная файловая система EFS, благодаря которой можно хранить защищенные данные в томах NTFS 5.0. В этом случае используется прозрачное шифрование, то есть с такими файлами можно работать, как и с обычными: открывать, изменять и т. д. Шифрование/дешифрование будет происходить незаметно, в фоновом режиме. При шифровании файлов (Свойства папки или файла › Общие › Другие › Шифровать содержимое для защиты данных) Windows создает сертификат и связанную с ним пару ключей. Сертификат представляет собой цифровой документ для проверки подлинности и защищенной передачи данных в открытых сетях. Кстати, если не сохранить сертификаты и ключи или не создать учетную запись агента восстановления, при переустановке ОС защищенные данные будут безвозвратно потеряны.
Встроенную криптозащиту предоставляют и многие программные комплексы, например MS Office или Lotus Notes. В «офисных» программах можно ставить пароль как на открытие, так и на редактирование файла. Впрочем, автоматизированный подбор пароля за приемлемое время для доступа к документам Word или Excel вполне возможен. Поэтому для усиления защиты во многих программах предусмотрено подключение внешних модулей шифрования от независимых разработчиков. Чуть ниже мы поговорим о таких модулях подробнее.
Наконец, для шифрования данных (электронной корреспонденции, файлов, дисков и пр.) можно использовать и специализированные комплексы, которые обычно поставляются в виде набора утилит, обеспечивающего полную защиту рабочего места (как правило, гибкая политика лицензирования позволяет установить и отдельные компоненты комплексов, которые необходимы в конкретной ситуации).
Сделать защиту данных более надежной позволяют аппаратные средства. В первую очередь это носители ключей, сертификатов и прочих конфиденциальных данных. Теоретически таким «хранителем» может стать тривиальная дискета, но на практике обычно используются токены (USB-ключи) и смарт-карты (изготовлением последних занимаются специализированные фирмы - Aladdin, Rainbow, «Актив», Eutron). На сегодняшний день «железные» ключи поддерживаются практически всеми популярными средствами шифрования, а некоторые программы вообще не могут работать без аппаратных средств защиты.
Так что перед пользователем, радеющим о неприкосновенности своих данных, стоит нелегкий выбор подходящего к случаю ПО. Но перед тем, как погружаться в нюансы, давайте поговорим о самом неприятном.
Казалось бы, самый очевидный подход - разделить софт по лежащим в его основе алгоритмам шифрования. Но и здесь не все гладко, потому что криптоалгоритмов накопилось великое множество, которое, в свою очередь, тоже нужно классифицировать. Да и сами алгоритмы бывают симметричные, асимметричные и тайнописные. В первом случае принцип действия алгоритма не является ни для кого тайной, а секрет составляет лишь специальный информационный блок - ключ. С его помощью данные можно как зашифровать, так и расшифровать. В асимметричном алгоритме используют пару ключей: открытый и закрытый. Первый служит для шифрования данных и не представляет собой секрета, так как не пригоден для дешифрации. Тем же, кому положен доступ к данным, владелец передает другой - закрытый ключ. Кстати, эти ключи еще и отличаются длиной в битах. Думаю, не стоит уточнять, что чем ключ «длиннее», тем надежнее шифр.
Есть еще тайнопись - самый древний и, увы, ненадежный принцип шифрования, которым в детстве забавлялись многие читатели, изобретая собственные алгоритмы. Классика жанра - использование в качестве ключа букв алфавита в обратном порядке, когда в шифруемом тексте "а" заменяется на "я", "б" - на "ю" и т. д.
В более серьезных сферах применения криптографии тайнопись уже практически не используется, так как сильно уступает двум первым вариантам. Достаточно сказать, что сама необходимость сохранения алгоритма в тайне делает этот метод крайне ненадежным.
Независимо от типа и назначения данных для шифрования можно дать ряд общих рекомендаций по выбору криптоутилиты. Во-первых, в основе ее работы должен лежать зарекомендовавший себя алгоритм. В качестве «наградного знака» можно рассматривать, например, признание алгоритма госстандартом в какой-нибудь из стран. Если же автор софта - небольшая малоизвестная компания, то к ее заявлению о собственной уникальной методике следует отнестись критически. Ну и длина ключа, если используется симметричное шифрование, должна составлять хотя бы 128 бит. С этого «порогового» значения расшифровка данных без ключа при использовании современных средств не может быть выполнена за приемлемое для злоумышленника время.
Следует также остерегаться вариантов, при которых ключ представляет собой пользовательский пароль или создается генераторами «случайных» чисел[Возможно, кого-то это удивит, но значения, возвращаемые функцией random и ее аналогами в различных языках программирования, на самом деле являются не произвольным набором чисел, а определенной последовательностью]. Хорошее решение - генерация ключа на основе случайных движений мышью или нажатий клавиш на клавиатуре, когда измеряется время между каждыми соседними нажатиями/движениями (в миллисекундах), и если результат измерения четный, то очередному биту ключа присваивается нулевое значение, иначе - единица. Если длина ключа достаточно велика, барабанить пальцами по клавиатуре придется больше минуты. Полученные ключи необходимо спрятать, для чего используются различные носители - от дискет до токенов[Такой механизм создания ключа используется, к примеру, программой-клиентом популярной системы WebMoney].
В том, что защититься на 100% невозможно, убеждать, думаю, никого не нужно, и криптографические методы - не исключение. Производители софта для шифрования данных приводят потрясающие воображение цифры тестов - на расшифровку такого-то кода взломщику, работающему по восемь часов в день, понадобится столько-то тысяч лет и т. п. Однако здесь речь идет о том, что потенциальные похитители данных будут решать задачу в лоб, то есть заниматься перебором, чего на практике, конечно же, не происходит. Не стоит забывать, что даже в приложении, построенном на основе отлично зарекомендовавшего себя алгоритма, низкая надежность может проявиться на других уровнях. Работа криптософта - сложный процесс, в котором задействованы сразу несколько технологий: кодирование, ЭЦП, хэш-функции и др. Неудовлетворительные меры защиты хотя бы по одной из этих технологий ослабляют надежность системы в целом. Также далеко не во всех программах тщательно проработано удаление исходной информации для шифрования: сброс аппаратных буферов и кэш-памяти, очистка виртуальной памяти, временных файлов и т. д. В идеале файл подкачки вообще не должен использоваться, но в этом случае резко повышаются системные требования ПО, а разработчики не хотят терять часть (и немалую) клиентов среди владельцев маломощных компьютеров.
Во многих программах не учитывается влияние «окружающей среды», которая может критически повлиять на безопасность. В частности, нередко считается, что доступ к компьютеру, на котором установлен криптософт, закрыт для посторонних. Между тем это почти всегда не соответствует истине. Выход в данном случае - программная поддержка аппаратных ключей, снабженных собственной защитой (например, смарт-карт с PIN-кодом). Ведь на самом компьютере могут находиться вредоносные программы, включая кейлоггеры, и если злоумышленник узнает пароль, вводимый пользователем для шифрования данных, он может легко получить доступ и к конфиденциальной информации.
Samsung M70
Результаты тестирования сведены в таблице 1 (но к этим цифрам следует относиться осторожно: для тестирования нам был предоставлен не серийный экземпляр, а сэмпл, так что не исключено, что публикуемые показатели слегка занижены. По той же причине отсутствуют результаты работы в автономном режиме.) В таблице 2 - спецификация, которую приводить здесь лишний раз бессмысленно. Так что перейдем сразу к лирике.
Лично я привык работать за ноутбуком, и мне отделяемый экран ни к чему, но, думаю, для многих применений (например, работа в графических пакетах или компьютерные игрушки) он предпочтительнее. Сам процесс «перевода» экрана в настольный режим несложен: две защелки на корпусе ноутбука, вытащить экран, две защелки на подставке, поставить экран в пазы, подключить питание, воткнуть интерфейсный кабель, врубить машину и наслаждаться. Непонятно, что еще тут можно упростить, но перевод ноутбука из портативного режима в настольный - это все же не то действие, которое хочется делать часто. Особенно мешает осознание стоимости дисплея.
Звук - для ноутбука отличный. Во многом, по-видимому, за счет того, что сам ноутбук широкий и источники звука разведены чуть шире, чем обычно (плюс, конечно, сабвуфер). Не возьмусь утверждать, что M70 в исходной комплектации устроит любого меломана как основное мультимедийное устройство в доме, но человек, которого заботит компьютерный звук, наверняка подключит к ноутбуку соответствующего качества акустические системы. Возможность такая, естественно, предусмотрена. Встроенного микрофона нет.
Что же до мультимедий вообще, то в M70 - как и в некоторых других ноутбуках от Samsung - реализована система AVS Now, позволяющая работать с аудио-, видео-, фотоматериалами и даже смотреть эфирное ТВ, не загружая основную ОС. С ТВ у меня не сложилось (у M70 нет внутренней антенны, а подключать внешнюю я не стал, поскольку ее нет у меня), а все остальное вполне работает. Интересно, что ранние версии AVS Now работали под Linux, тогда как в M70 реализована версия для XP Embedded, на загрузку которой уходит 10 секунд. По идее, это должно экономить заряд батареи (у Linux-версии выигрыш был неочевиден), но насколько эффективна в этом смысле новая AVS, мы проверить не смогли.
Честно говоря, полезность подобных решений вызывает некие сомнения. Возможно, бывают в жизни ситуации, когда душа так жаждет послушать .wma группы «Любэ», что ждать больше 12 секунд нет никакой возможности, но я в них пока не попадал. Крупные элементы интерфейса AVS и пульт ДУ облегчают использование ноутбука в качестве медиаустройства, но разбазаривать таким образом заложенный в M70 потенциал - преступление. На мой взгляд, Samsung реализует эту технологию в своих ноутбуках для галочки, чтобы было не хуже, чем у других (другие, в свою очередь, исходят примерно из тех же соображений). Ну получилось. Не хуже.
Осиротевшую без экрана полноразмерную клавиатуру вполне можно держать на коленях (2,2 кг), хотя она, конечно, греется - что для ноутбуков явление обычное. В общем, если приглядеться, то получается, что M70 местами все еще лэптоп, при необходимости вполне портативен и время от времени может считаться ноутбуком.
Хотя составителей словарей, полагаю, все же нужно предупредить.
Благодарим российское представительство компании Samsung за предоставленный ноутбук.
Софтерра:Заметки поселенца
Посмотрел на календарь и удивился: с того момента, как я попытался хотя бы недельку «протянуть» под Linux, прошло уже больше года, в течение которого я если и перезагружался под альтернативной ОС производства известной редмондской компании, то очень редко и ненадолго - и при первой же возможности с удовольствием возвращался обратно, в свободную и дружественную систему. Впечатлений от Linux за этот год накопилось множество - некоторыми из них хотелось бы поделиться.
Проблемы и решения
Первое открытие начинающего линуксоида состоит в следующем: любая проблема имеет решение. Это такое свойство открытого софта - если что-то не работает или работает не так, вы всегда можете немного повозиться, найти причину неполадок и в конце концов устранить их на радость себе и окружающим. При этом и диагностика, и лечение производятся не шаманскими методами, вроде «переставить программу» или «перезагрузить компьютер», а вполне научными: анализом log-файлов, чтением документации и поиском дополнительной информации. В худшем случае может понадобиться, например, написать драйвер для какой-нибудь новой железки или сделать что-нибудь еще столь же нетривиальное и требующее специальных познаний, - но, как правило, достаточно уметь пользоваться Google и обладать базовыми навыками работы с системой. Большинство проблем, с которыми может столкнуться новичок, уже обсуждались где-то в Сети, и, скорее всего, решение можно найти в форумах или конференциях - главное, правильно сформулировать поисковый запрос.
Обычно на сайте программы ведется учет и контроль обнаруженных багов (с помощью системы, аналогичной bugzilla, или через почтовый список рассылки) - там можно убедиться, что разработчики в курсе существующих проблем, и найти возможные способы их решения. Стоит также проверить, используете ли вы самую свежую версию, - ошибки исправляются достаточно оперативно, и порой изменение последней цифры в номере релиза оказывает существенное влияние на его стабильность. Если же вдруг вы стали первооткрывателем неисправности, не поленитесь и сообщите о ней, отправив как можно более подробное описание всех ваших злоключений (с указанием версий, особенностей настройки, выдаваемых ошибок и т. д.), - скорее всего, помощь придет (быть может, даже быстро), а за информацию о глюке сообщество скажет вам огромное спасибо.
Мы пойдем другим путем
Философия работы с компьютером в Unix/Linux и Windows принципиально разная. С точки зрения Unix-системы, программ должно быть много, и каждая должна заниматься своим делом, а сложная функциональность достигается за счет их взаимодействия: одни приложения могут использовать другие, передавать друг другу информацию и вообще жить бурной внутрисистемной жизнью. Более того: пользователь, по мнению Unix, представляет собой лишь еще один процесс, не лучше и не хуже какой-нибудь утилиты или демона. Соответственно отдельные софтинки должны уметь общаться в первую очередь с себе подобными - то есть обладать интерфейсами, которые поддаются автоматической обработке.
В Windows все наоборот: программы готовы взаимодействовать с человеком (с помощью GUI), но не со своими собратьями. В результате отсутствия разделения труда приложения обрастают гроздьями функций, размер дистрибутивов растет как на дрожжах, а новые возможности бывают далеко не всегда нужны большинству пользователей. Конечно, «монолитные» программы есть и под Linux, но общая концепция системы все-таки другая, что чувствуется в большинстве открытых разработок.
Впрочем, это не значит, что весь свободный софт жутко недружелюбен. Проблема пользовательского интерфейса решается в рамках Unix way легко и изящно: многие GUI-приложения просто являются надстройками (frontend) над консольными утилитами (backend). Например, под Linux существует несколько систем синхронизации с «Палмами» (kpilot, jpilot и т. д.), но все они являются frontend’ами над разработкой pilot-links, осуществляющей взаимодействие с КПК. Аналогичным образомработают CD-рекордеры K3b и xcdroast, а также множество других GUI-программ. Подобный подход дает серьезные преимущества: не теряя в удобстве работы по сравнению с «монолитами», мы приобретаем гибкость модульной архитектуры.
Разговор с компьютером
Наличие множества программ с доступом из командной строки создает своеобразную языковую среду, в которой очень любят работать юниксоиды. Из нескольких тысяч «слов» можно составлять «предложения», выполняющие довольно нетривиальные действия. Можно изобретать новые «слова», используя скриптовые языки (Shell, Perl, Python и др.), что позволяет расширять возможности самовыражения и упрощать работу с системой. При этом компьютер выступает в качестве очень прилежного ученика-помощника, которому достаточно один раз объяснить, как выполнять то или иное действие, и можно быть уверенным, что он все поймет и запомнит (если, конечно, вы правильно объясняли).
Меняется само отношение к работе с компьютером: оно становится более творческим, смещаясь от периодического прочесывания Интернета в поисках новой «классной программы для…» к решению конкретных задач теми средствами, которые предоставляет система. Конечно, это не значит, что софт искать совсем не приходится или что нужно все писать самому, - но зачастую такой подход оказывается быстрым и эффективным. К тому же он позволяет реализовывать весьма специфические вещи, которые практически невозможно найти в сторонних разработках. Подчеркнуть собственную индивидуальность всегда приятно, а интересная и необычная функция, сделанная своими руками, - это вам не логотип на экране мобильника, купленный за доллар у оператора.
Мы наш, мы новый? ..
При использовании свободного софта меняются не только привычки - меняется мировоззрение. Работая в среде, созданной энтузиастами, поневоле сам становишься одним из них. Найдя интересную разработку, задумываешься не только о том, как ее использовать для решения своих задач, но и о том, как можно помочь ее авторам и другим пользователям - например, реализовать нужную функцию, сообщить об ошибке или ответить на вопрос в форуме. Когда понимаешь, что ситуация под твоим контролем, что твой браузер не станет проверять, насколько лицензионно чиста твоя система, а медиаплейер не будет без твоего ведома сообщать «куда надо», какую музыку ты любишь, что нужная программа не исчезнет с лица земли только потому, что разработчик ее забросил, а исходники выложить не захотел, - начинаешь понимать, что свободный софт - это не просто громкие слова.
Практические занятия
Есть каталог с фотографиями. Требуется повернуть каждое изображение в соответствии с положением камеры при съемке (некоторые цифровые фотоаппараты записывают информацию об ориентации снимка в EXIF-данные JPEG-файлов), а также изменить размер на 800х600.
Для работы с EXIF нам потребуется пакет jhead, а для изменения размера изображений - функция convert из набора инструментов ImageMagick. Заклинание для решения всех наших проблем выглядит следующим образом:
mkdir output; for FILE in *.jpg; do jhead -autorot “$FILE“; convert “$FILE“ -resize 800x600 “output/$FILE“; done
Несмотря на то что эта длинная команда пишется в одну строчку, она представляет собой полноценную мини-программу. В ней есть даже цикл (участок между do и done), перебирающий все jpg-файлы в текущем каталоге (их имена записываются в переменную $FILE). Авторы jhead уже позаботились об автоматическом повороте картинок (достаточно указать ключ -autorot), а команда convert умеет не только преобразовывать практически любые типы графических файлов в любые другие, но и обладает недюжинными познаниями в области обработки изображений, так что изменить размер снимка для нее - пара пустяков.
Оповестить пользователя звуковым сигналом о том, что появилась связь с Интернетом.
while [ -z “`ping -c 1 computerra.ru - grep 1\ received`“ ]; do sleep 1; done; aplay “`locate redalert.wav`“
В переводе на русский язык, эта строчка означает приблизительно следующее: если до сервера computerra.ru достучаться не удалось, нужно подождать одну секунду и повторить попытку; затем найти файл redalert.wav и проиграть его. При этом используются многие хитрости языка bash: обратные кавычки, перенаправление потоков ввода-вывода и неявный вызов команды test с помощью квадратных скобок, но подробный разбор синтаксиса остается за рамками данной статьи.
Война миров
Статья «Заметки поселенца» описывает опыт перехода на Linux отдельно взятого пользователя, еще при жизни под Windows уличенного в пагубном пристрастии к клавиатурным интерфейсам и командной строке. Дабы несколько приблизить эту публикацию к реальной жизни, мы решили рассказать и о другом взгляде на вещи. - И.Щ.
Спорить о преимуществах и недостатках операционных систем - занятие неблагодарное, особенно если речь идет о Linux и Windows. Несмотря на все аргументы сторон, последнее слово остается за сухими цифрами статистики - а цифры эти далеко не на стороне свободной ОС. И дело здесь не в том (или не только в том), что у Windows есть какие-то явные и неоспоримые преимущества, а в том, что находятся люди - очень много людей - которых устраивает именно эта система. Есть ли основания предполагать, что эта ситуация изменится в какую-либо сторону в ближайшие годы?
Когда речь заходит о сравнении Linux и Windows, одни говорят, что Windows более дружественна к пользователю, другие утверждают, что и Linux не менее дружественна. Так что же, Windows - это некая «массовая», доступная операционная система, в то время как любой «профессионал» неизбежно должен оценить достоинства Linux? Впечатление это хоть и имеет под собой основания, по сути своей ошибочно. Есть немало профессиональных программистов, которые предпочитают именно Windows, и даже готовы долго и со знанием дела ругать «свободную ОС» и доказывать ее нежизнеспособность. С другой стороны, Linux сейчас становится все более «дружественной», и освоение многих ее дистрибутивов не представляет особой сложности даже для человека, неискушенного в программировании.
Так в чем же дело? Почему защитники Windows так любят говорить о простоте и доступности этой ОС, а сторонники Linux всегда готовы упомянуть о перспективах, открывающихся при использовании командной строки и языка bash? Есть бородатый анекдот, в котором разные операционки сравнивают с самолетами. Пересказывать его здесь я не стану, а вот метафорой воспользуюсь. Windows похожа на комфортабельный, надежный авиалайнер, в котором пользователь является пассажиром. А что же Linux? Linux не менее (или «почти не менее») комфортабельный и надежный авиалайнер, вот только пассажир в нем может при желании сесть в кресло пилота. Это главное отличие. Кто-то, быть может, скажет, что это бесспорный плюс. И будет не совсем прав.
Продолжим наше сравнение. Когда самолет попадает в воздушную яму, у пассажира есть только одна возможность - перекреститься и прочитать молитву, не слишком надеясь, что ему это поможет, но будучи твердо уверенным, что и вреда не принесет. Пилот же не может позволить себе такой роскоши. Он должен что-то предпринять, и результаты его действий могут быть катастрофическими. Человеку, как известно, свойственно ошибаться, а еще человек не любит, когда его ошибки приводят к неприятным для него последствиям. И, по-видимому, из-за этого большинство людей летает на самолетах именно в качестве пассажиров.
Так вот: компьютер для большинства пользователей - всего-навсего инструмент. Инструмент красивый, сложный и удобный, но никак не творческая мастерская. И если он действует по принципу «черного ящика», тем лучше. Хорошо, конечно, когда инструмент можно улучшать по своему усмотрению и чинить при необходимости. Вот только это еще и лишняя головная боль. Стиральную машину тоже можно починить самостоятельно, но почему-то большинство из нас предпочтет вызвать мастера.
А что же программисты? Они-то как раз и есть мастера, разве не так? Так, да не совсем. Даже для программистов компьютер нередко остается только инструментом - инструментом, которым они владеют лучше других людей. Разумеется, чем чаще человек использует какой-то инструмент, чем больше набивает руку, тем больше шанс, что он захочет как-то изменить его, подогнать под себя. Но так бывает не со всеми, и зависит это не столько от инструмента, сколько от самого человека.
Главная черта Linux, которая далеко не всем по душе, - присущая этой ОС идея незавершенности, сквозящее всюду приглашение к сотрудничеству. Если Windows встречает пользователя яркой, рекламно-броской и совершенно непроницаемой оболочкой, то Linux целиком состоит из приоткрытых дверей, люков и форточек, откуда непрерывно доносится гул и равномерное постукивание. И попавший сюда человек либо вскоре сбежит и вернется к глянцевой тишине Windows, либо - рано или поздно - его одолеет любопытство, и он начнет в эти двери заглядывать, превращаясь из простого пользователя в разработчика. Windows не самое лучшее, но простое и, что важнее всего, готовое решение. Linux - дорога для тех, кого оно не устраивает.
ТЕХНОЛОГИИ:Не лает, не кусает: Криптографические решения для всех и для каждого
Практическое применение криптографии долгое время оставалось уделом спецслужб и тщательно скрывалось от посторонних глаз. К сожалению или к счастью, развитие информационных технологий существенно расширило возможности шифрования данных, заодно сделав криптоинструменты доступными всем желающим. И таковых нашлось немало: практически любой компании есть что скрывать от конкурента. А затем и частные лица вдруг поняли, что их приватность ежедневно и ежечасно находится под угрозой. В немалой степени усугублению этой разновидности паранойи способствовал Интернет - на радость разработчикам средств информзащиты.
Подстегиваемая растущими техническими возможностями и жадным спросом, криптография начала развиваться темпами, впечатляющими и озадачивающими даже компьютерщиков с стажем. В результате обилие шифрософта не позволяет не то что составить полный каталог имеющихся программ, но даже однозначно классифицировать приложения.
Способы шифрования данных следует разделить по их программной реализации. Начнем с того, что кое-какие криптоинструменты есть даже в операционках. Так, в Windows XP используется специальная файловая система EFS, благодаря которой можно хранить защищенные данные в томах NTFS 5.0. В этом случае используется прозрачное шифрование, то есть с такими файлами можно работать, как и с обычными: открывать, изменять и т. д. Шифрование/дешифрование будет происходить незаметно, в фоновом режиме. При шифровании файлов (Свойства папки или файла › Общие › Другие › Шифровать содержимое для защиты данных) Windows создает сертификат и связанную с ним пару ключей. Сертификат представляет собой цифровой документ для проверки подлинности и защищенной передачи данных в открытых сетях. Кстати, если не сохранить сертификаты и ключи или не создать учетную запись агента восстановления, при переустановке ОС защищенные данные будут безвозвратно потеряны.
Встроенную криптозащиту предоставляют и многие программные комплексы, например MS Office или Lotus Notes. В «офисных» программах можно ставить пароль как на открытие, так и на редактирование файла. Впрочем, автоматизированный подбор пароля за приемлемое время для доступа к документам Word или Excel вполне возможен. Поэтому для усиления защиты во многих программах предусмотрено подключение внешних модулей шифрования от независимых разработчиков. Чуть ниже мы поговорим о таких модулях подробнее.
Наконец, для шифрования данных (электронной корреспонденции, файлов, дисков и пр.) можно использовать и специализированные комплексы, которые обычно поставляются в виде набора утилит, обеспечивающего полную защиту рабочего места (как правило, гибкая политика лицензирования позволяет установить и отдельные компоненты комплексов, которые необходимы в конкретной ситуации).
Сделать защиту данных более надежной позволяют аппаратные средства. В первую очередь это носители ключей, сертификатов и прочих конфиденциальных данных. Теоретически таким «хранителем» может стать тривиальная дискета, но на практике обычно используются токены (USB-ключи) и смарт-карты (изготовлением последних занимаются специализированные фирмы - Aladdin, Rainbow, «Актив», Eutron). На сегодняшний день «железные» ключи поддерживаются практически всеми популярными средствами шифрования, а некоторые программы вообще не могут работать без аппаратных средств защиты.
Так что перед пользователем, радеющим о неприкосновенности своих данных, стоит нелегкий выбор подходящего к случаю ПО. Но перед тем, как погружаться в нюансы, давайте поговорим о самом неприятном.
Алгоритмы
Казалось бы, самый очевидный подход - разделить софт по лежащим в его основе алгоритмам шифрования. Но и здесь не все гладко, потому что криптоалгоритмов накопилось великое множество, которое, в свою очередь, тоже нужно классифицировать. Да и сами алгоритмы бывают симметричные, асимметричные и тайнописные. В первом случае принцип действия алгоритма не является ни для кого тайной, а секрет составляет лишь специальный информационный блок - ключ. С его помощью данные можно как зашифровать, так и расшифровать. В асимметричном алгоритме используют пару ключей: открытый и закрытый. Первый служит для шифрования данных и не представляет собой секрета, так как не пригоден для дешифрации. Тем же, кому положен доступ к данным, владелец передает другой - закрытый ключ. Кстати, эти ключи еще и отличаются длиной в битах. Думаю, не стоит уточнять, что чем ключ «длиннее», тем надежнее шифр.
Есть еще тайнопись - самый древний и, увы, ненадежный принцип шифрования, которым в детстве забавлялись многие читатели, изобретая собственные алгоритмы. Классика жанра - использование в качестве ключа букв алфавита в обратном порядке, когда в шифруемом тексте "а" заменяется на "я", "б" - на "ю" и т. д.
В более серьезных сферах применения криптографии тайнопись уже практически не используется, так как сильно уступает двум первым вариантам. Достаточно сказать, что сама необходимость сохранения алгоритма в тайне делает этот метод крайне ненадежным.
Слабые места
Независимо от типа и назначения данных для шифрования можно дать ряд общих рекомендаций по выбору криптоутилиты. Во-первых, в основе ее работы должен лежать зарекомендовавший себя алгоритм. В качестве «наградного знака» можно рассматривать, например, признание алгоритма госстандартом в какой-нибудь из стран. Если же автор софта - небольшая малоизвестная компания, то к ее заявлению о собственной уникальной методике следует отнестись критически. Ну и длина ключа, если используется симметричное шифрование, должна составлять хотя бы 128 бит. С этого «порогового» значения расшифровка данных без ключа при использовании современных средств не может быть выполнена за приемлемое для злоумышленника время.
Следует также остерегаться вариантов, при которых ключ представляет собой пользовательский пароль или создается генераторами «случайных» чисел[Возможно, кого-то это удивит, но значения, возвращаемые функцией random и ее аналогами в различных языках программирования, на самом деле являются не произвольным набором чисел, а определенной последовательностью]. Хорошее решение - генерация ключа на основе случайных движений мышью или нажатий клавиш на клавиатуре, когда измеряется время между каждыми соседними нажатиями/движениями (в миллисекундах), и если результат измерения четный, то очередному биту ключа присваивается нулевое значение, иначе - единица. Если длина ключа достаточно велика, барабанить пальцами по клавиатуре придется больше минуты. Полученные ключи необходимо спрятать, для чего используются различные носители - от дискет до токенов[Такой механизм создания ключа используется, к примеру, программой-клиентом популярной системы WebMoney].
В том, что защититься на 100% невозможно, убеждать, думаю, никого не нужно, и криптографические методы - не исключение. Производители софта для шифрования данных приводят потрясающие воображение цифры тестов - на расшифровку такого-то кода взломщику, работающему по восемь часов в день, понадобится столько-то тысяч лет и т. п. Однако здесь речь идет о том, что потенциальные похитители данных будут решать задачу в лоб, то есть заниматься перебором, чего на практике, конечно же, не происходит. Не стоит забывать, что даже в приложении, построенном на основе отлично зарекомендовавшего себя алгоритма, низкая надежность может проявиться на других уровнях. Работа криптософта - сложный процесс, в котором задействованы сразу несколько технологий: кодирование, ЭЦП, хэш-функции и др. Неудовлетворительные меры защиты хотя бы по одной из этих технологий ослабляют надежность системы в целом. Также далеко не во всех программах тщательно проработано удаление исходной информации для шифрования: сброс аппаратных буферов и кэш-памяти, очистка виртуальной памяти, временных файлов и т. д. В идеале файл подкачки вообще не должен использоваться, но в этом случае резко повышаются системные требования ПО, а разработчики не хотят терять часть (и немалую) клиентов среди владельцев маломощных компьютеров.
Во многих программах не учитывается влияние «окружающей среды», которая может критически повлиять на безопасность. В частности, нередко считается, что доступ к компьютеру, на котором установлен криптософт, закрыт для посторонних. Между тем это почти всегда не соответствует истине. Выход в данном случае - программная поддержка аппаратных ключей, снабженных собственной защитой (например, смарт-карт с PIN-кодом). Ведь на самом компьютере могут находиться вредоносные программы, включая кейлоггеры, и если злоумышленник узнает пароль, вводимый пользователем для шифрования данных, он может легко получить доступ и к конфиденциальной информации.