28-05-2008 15:21
На самом деле Linux это не операционная система. Нет... Погодите... Дайте я скажу по-другому: Linux - это больше, чем операционная система... или меньше... или нет...:)
Вы можете подумать, что я запутался, но это не так. Вы наверняка знаете, что множество "мудрецов" предсказывало смерть UNIX-а, начиная с того момента, как он был создан. Bill Gates и его компания Microsoft считают (по крайней мере в последнее время), что будущее за его платформой и, чтобы достичь этого, стремится к тому чтобы "отправить на пенсию" UNIX, либо претендовать на то, что их продукт лучше чем UNIX (а может быть даже претендует на то и на другое одновременно). Претензия на то, что Windows NT "will be a better Unix than Unix" (будет более UNIX-овая, чем даже UNIX? Не понял эту идиому, -- юмора не хватает.) говорит о еще большей жизнестойкости идеи UNIX-а, чем нежели преимущества от новой версии Windows.
Так почему UNIX не умер? Ведь целая куча гениев от компьютерной сохи, и не меньшее количество таких же критиков вне компьютерной области, охотятся на него, предсказывая его кончину (только день пока что еще не ясен). Так ведь? Да не так.
UNIX (и в частности его конкретная реализация - Linux) вовсе не лучший во всем. Это не так просто понять. Он не быстрейший. Он не блещет различными функциями для бизнеса, науки или математики. Итак, последний риторический вопрос, -- почему же он до сих пор жив? Да потому, что несмотря на столетия прогресса науки и инжиниринга, десятилетия электроники и миниатюризации, -- если у вас есть доска и гвозди, то вам все еще нужен молоток, чтобы сколотить что-то полезное. Я не знаю цифрового молотка лучшей ценности, чем UNIX.
Linux - это инструмент. Я считаю, что это лучшая метафора, которую я мог подобрать. Linux -- это универсальный, многоцелевой компьютерный инструмент (multitool). Конечно же я не могу сказать, что я придумал эту метафору (я слышал о ней уже несколько лет назад), просто я намереваюсь подтвердить истину этого высказывания.
UNIX и "UNIX-овский подход" к решению задач, привел к появлению инструментов, которые позволят решать задачи наилегчайшим возможным способом на различных платформах. Например, может ли ваша операционная система сделать вот такое?
$ perl -e 's/http:\/\/www.reknown.org\/playbyplay\//http:\/\/www.play.org\//gi' -p -i.bak *.html
Прежде всего я тут же соглашусь, что эта командная строка выглядит устрашающе. Но что же она делает? Предположим, что вы поддерживаете большой и сложный web-сайт, с большим количеством ссылок на другой web-сайт, текущие URL начинаются так:
http://www.reknown.org/playbyplay
И вот вы решаете, что все, что находится в playbyplay должно быть перемещено на ваш личный сервер. Вот сюда:
http://www.play.org/
У вас свыше 100 ссылок на старые адреса, рассыпанные более чем по 30 html-файлам! Что же делать? Итак, Вы набираете ту команду, которая будет находить и заменять каждое упоминание о "старом" базовом URL, на новое, во всех файлах в текущем каталоге. И все это будет сделано разом, одной командой. Причем, процесс выполнения этой команды оставит после своей работы неизмененный файлы, с такими же именами, но с новым расширением ".bak". Попробуйте сделать такое с помощью Notepad или MS Office!
Но погодите! Есть еще кое-что. Поместите эту команду в командный файл (shell script) movelink, который будет выглядеть так:
#!/bin/bash cd $1 perl -e 's/http:\/\/www.reknown.org\/playbyplay\//http:\/\/www.play.org\//gi' -p -i.bak *.html
Теперь можно обработать любой каталог в вашей системе, введя имя каталога, как первый аргумент movelink:
$ movelink /var/www
Выгодно? Удобно? Но погодите, это еще не все! Предположим, что вы желаете обработать целиком весь web-сайт. Предположим, что web-сайт начинается с каталога /var/www. Вы можете решить эту задачу, с помощью следующей команды:
$ find /var/www -type d -exec movelink {} \;
Здесь надо заметить, что Perl это не Linux, и даже не UNIX. Однако Perl это очень хорошо, это Unix-like, это по-UNIX-овски :) Надеюсь вы поняли, что ядро Linux и весь GNU (и не только GNU) инструментарий, который работает с ним, зиждется на основе нескольких десятилетий опыта программистов, по решению повторяющихся, реальных, не "высосанных из пальца" задач. Именно поэтому, когда я слышу, что кто-то там, за стенкой, лупит по клавиатуре, нажимая одни и те же клавиши снова и снова (Стрелка Вверх, Удалить, Удалить, Стрелка Вверх, Удалить, Удалить, и т.д.), то сразу же считаю своим долгом предложить свою помощь. С помощью vi, sed, awk или Perl я способен выполнить одной командой то, что этот человек будет делать, гремя по клавиатуре, "до синих веников". В конце-то концов, вы же сидите за компьютером. Ради всего святого, пусть же он делает повторяющуюся работу за вас!
UNIX не умрет потому, что он предоставляет богатейший набор инструментов, а также способ комбинировать их таким образом, чтобы вы имели возможность создать другие, более мощные инструменты.
Для некоторых людей Linux это просто ядро, котрое обеспечивает основное множество сервисов и API. Для нас же, Linux (и UNIX) это философия программирования, да и вообще, взаимодействия с компьютером. Инсталлированный Linux, это компьютерный эквивалент того, как если бы вы "разом" получили в свое распоряжение и лес, и металл, и автомастерскую, до предела набитую прекрасными, сияющими, лучшими инструментами, какие вы только можете купить. И самое примечательное в этом то, что вам ничего не надо покупать, -- все бесплатно.
<< Признательности | Multi Tool Linux | Определение понятия Свобода (Free) >>