Услуги админа   |  О пректе   |   Статьи   |   Конкурс   |   Just for fun
  Главная  
|  Услуги админа  
|  Безопасность  
|  Resque  
|  ALT Linux  
|  Ubuntu  
|  Debian  
|  Fedora  
|  Gentoo  
|  openSUSE  
|  Mandriva  
|  CentOS  
|  Slackware  
|  FreeBSD  
 
Расскажите о нас сейчас
Каталог
Услуги админа
Безопасность
Resque
ALT Linux
Ubuntu
Debian
Fedora
Arch Linux
Gentoo
Sabayon Linux
openSUSE
SUSE
Mandriva
CentOS
Slackware
Games
FreeBSD
PC-BSD
Solaris
Сервер для офиса
ASPLinux
DeLi Linux
Vixta.org
myLinux
Linux XP
Проект Операционные Системы
Публикации
Just for fun
Статьи конкурса
Путь к свету. Часть 1 Путь к свету. Часть 1
Путь к свету. Часть 2 Путь к свету. Часть 2
Почему Linux? Потому! Почему Linux? Потому!
Четыре мифа про Линукс Четыре мифа про Линукс
Linux Forever! или "Вы ещё вывариваете?" Linux Forever! или "Вы ещё вывариваете?"
Преимущества Linux Преимущества Linux
Почему я выбираю Linux Почему я выбираю Linux
Преимущества Linux 2 Преимущества Linux 2
Почему я выбираю Linux. Часть2 Почему я выбираю Linux. Часть2
Творчество или закрытость? Творчество или закрытость?
Linux и Windows: битва за десктопы Linux и Windows: битва за десктопы
За что я люблю Linux За что я люблю Linux
Почему я выбрал свободу? Почему я выбрал свободу?
LINUXомания! LINUXомания!
Мой переход с Windows на Linux Мой переход с Windows на Linux
Смысл свободы ПО Смысл свободы ПО
Linux простой и понятный Linux простой и понятный
Программы Linux и Windows Программы Linux и Windows
Freedom Freedom
Почему Линукс? Почему Линукс?
Почему переходят с Windows на Linux? Почему переходят с Windows на Linux?
Кто сказал, что Пингвин не летает? Кто сказал, что Пингвин не летает?
Путь программиста Часть 1 Путь программиста Часть 1
Путь программиста Часть 2 Путь программиста Часть 2
Путь программиста Часть 3 Путь программиста Часть 3
Путь программиста Часть 4 Путь программиста Часть 4
Путь программиста Часть 5 Путь программиста Часть 5
Путь программиста Часть 6 Путь программиста Часть 6
Путь программиста Часть 7 Путь программиста Часть 7
Популярные дистрибутивы

Ubuntu Linux 11.10 Oneiric
Скачать Ubuntu Linux 11.10 Oneiric

Путь программиста Часть 4

Автор : Князев Алексей

Перечислю достоинства Unix/Linux систем, сделавшие меня их приверженцем.

    Относительное постоянство очень удачной и очень простой архитектуры. Если вы научились администрировать или работать в Unix тридцать лет назад, то вы сможете сделать это и сейчас. Ваши знания не устарели. Например, книги, выпущенные 15-20 лет назад, описывающие работу с Unix, кажутся мне очень ценными. Конечно, если речь не идет о чем-то совершенно новом. Эта особенность позволяет пытливому человеку изучать систему вглубь, постоянно расширяя свои знания и не боясь того, что за два года перед выходом на пенсию будут выпущена совершенно новая, с точки зрения интерфейсов программирования, система, и ваши знания, накопленные десятилетиями кропотливого труда бессонными ночами, никому не понадобятся и молодые будут снисходительно улыбаться глядя в вашу сторону. Вы даже не сможете написать мемуары или прочитать лекции, потому что вы и знакомая вам до мелочей система морально устарела.

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

    Исключительно простая работа с внешними устройствами, которая удивит не только программиста, но и простого пользователя. Может ли пользователь Windows создать ISO образ CD-ROM простым копированием из файла устройства cdrom, или воспроизвести мелодию направлением звукового *.wav файла на файл устройства звуковой карты?

    Необыкновенные сетевые возможности Unix, на основе простых и быстрых протоколов. Разговор об этих возможностях бесконечен – Unix действительно сетевая операционная система. Приведу простой пример. Сидя за одной машиной я могу работать с другой. Именно работать без ограничений, так как будто я просто воткнул свою клавиатуру, мышь и монитор в другой компьютер. Причем когда такая работа происходит в локальной сети, это происходит с такой скоростью, что пользователи не обращают внимание на то, с какой машиной они работают и выключают чужую машину по ошибке. Торможение происходит при работе с модемным подключением через Internet. Хотя это не мешает мне работать из дома с машиной моего директора, стоящей в его кабинете, не смотря на то, что работа происходит через дополнительное соединение – общий сервер предприятия, т.к. IP-адрес директорской машины не маршрутизируется в Internet и недоступен из сети моего домашнего компьютера. А можете ли вы, пользуясь Windows, сидя за одной машиной запустить программу на другой и вывести ее окно на третьей?

    Полная управляемость загрузкой и настройкой операционной системы. Понятно, что это не для простого пользователя. Для него достаточна, также как и в Windows, настройка своего собственного рабочего стола. Зато опытный администратор может посмотреть, исправить, переписать или просто заменить процесс загрузки. Все очень просто – загрузка описывается скриптами, т.е. программами на языке командного интерпретатора. Файл autoexec.bat, известный пользователям DOS и морально устаревших версий Windows (технологии 3.1 и 95), является только дополнительным, далеко не полным, скриптом загрузки. Скрипты загрузки Unix/Linux систем составляют тысячи строчек кода. Кроме того, Linux можно пересобрать с абсолютного нуля. Например, известно, что специальная сборка Linux для сервера Apache (www – сервер) занимает всего 5МБт. Единомышленники, увлекающиеся самостоятельной сборкой Linux объединяются в Internet в рамках проекта Linux from scratch (LFS).

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

    Нельзя не сказать о том, что производительность Unix не зависит от количества установленных программ (пакетов), если, конечно эти программы не являются запущенными сервисами системы. Сколько программ можно установить под Windows, чтобы она не начала тормозить или не обвалилась вообще? Десять, двадцать или может быть пятьдесят? А как насчет тысячи или пяти тысяч? У меня дома стоит 912 пакетов, а у моего брата 1708. Производительность Unix зависит только от количества запущенных программ и сервисов.

    Вирусы. Этого я натерпелся в полном достатке. В недалеком прошлом это были потери целых архивов и даже перепрошивка flash-памяти. Что самое главное, так это то, что установка дорогостоящего вирусного сканера, тормозящего работу системы и не позволяющего работать некоторым программам, ничего не дает. Вирусы по прежнему бесчинствуют в вашей Windows системе. Особенно, если она постоянно висит в Internet. В Linux/Unix системах этой проблемы практически не существует. Причины, на мой взгляд две, и они взаимосвязаны. Во-первых, вирусов под Unix/Linux практически нет. Писать вирусы под эти системы очень неблагодарное занятие, т.к. жизнь у них будет очень недолгая. Более благодарным будет написание троянского коня, но и он наделает беды только в рабочем каталоге того пользователя который его запустил. Панацеей против этого является два логина с разными привилегиями для каждого пользователя. Во-вторых, система безопасности Unix/Linux пробиваема только через ошибки системы, которые закрываются очень быстро после обнаружения. Информация об этом не скрывается и доступна через Internet. Главным вирусом в системах Unix/Linux является чайник, работающий под логином суперпользователя. Запускать систему под таким логином недопустимо даже для опытного администратора. Администратор Unix администрирует систему через подмену прав на исполнение команды, требующей особых привилегий. Все это приводит к тому, что разрушение Unix системы вирусом крайне редкое явление в мировой практике. Правда, исключительная надежность Unix систем, согласно мировой статистике, привела к некоторой психологической проблеме. Администраторы Unix систем настолько верят в ее защищенность, что при администрировании не уделяют этой проблеме никакого внимания (простые пароли, множество доступных сетевых сервисов). В результате, система становится открытой для любого сетевого хакера. Поэтому, несмотря на более высокую надежность Unix по сравнению с Windows, количество взломов этих систем практически одинакого. Это широко обсуждается в Internet. А комментарии к этому очень просты – у Unix администратора гораздо больше возможностей защитить машину от взломов и вирусов, нужно просто ими воспользоваться. Попробую предугадать вопрос - “А зачем тогда нужны антивирусные программы для Unix/Linux платформы, так активно предлагаемые различными производителями?”. Очень просто. Эти программы нужны для того, чтобы проанализировать содержимое файлов, пришедших из Internet, перед тем, как они будут отправлены на рабочие станции, работающие под Windows. Вирусы работающие и написанные для Unix/Linux практически не известны (мне не попадалось ни одного).

    GNU compiler collection или просто напросто gcc. Уникальное семейство компиляторов, понимающий ассемблер, Си, Си++, fortran-77, java и ada. Создаваемый этим компилятором исполняемый код уникален по быстродействию. Но это лучше проверить вам самостоятельно. Может вы владеете средствами оптимизации всех уровней лучше меня, и вам удастся создать на вашем любимом компиляторе под Windows более быстрый код. Наличие такого компилятора под GNU лицензией не приводит к попыткам написания с нуля более лучшего компилятора. Разработчики просто десятилетиями улучшают свой родной gcc. Среды быстрой разработки под Linux/Unix системами различны, но все они используют gcc для компиляции проекта. Поэтому нет серьезных проблем переносимости проектов из одной интегрированной среды разработки в другую. Вы когда-нибудь пробовали перенести проект из Visual Studio в C++ Builder, или наоборот? Вообще, совместимость средств разработки под Linux/Unix поражает. Хотя ничего удивительного в этом нет. В Unix придерживаются стандартов, в том числе и на объектные файлы. Кстати драйвер устройства, если он не откомпилирован вами в ядро, тоже объектный файл. И вам не нужно никаких Driver Development Kit для создания драйвера, просто потому, что интерфейсы к ядру открыты также, как и исходные коды самого ядра. Я например, просто открываю vim (мощный консольный блокнот), пишу драйвер для своей железки, компилирую его с помощью gcc и вставляю его в работающее ядро, не перегружая систему. И кстати, совсем необязательно писать программу для взаимодействия с драйвером. Вы можете просто, стандартными средствами командного интерпретатора, посылать и брать данные из файла устройства, связанного с вашим драйвером (другими словами, копировать данные на и из устройства).

    Открытость кода и лицензии GNU/GPL привели к уникальному способу создания пользовательских приложений. Приведу простой пример. Вы решили написать среду разработки. Все, что вы должны сделать, т.к. это набросать кнопочек, окошечек и рюшечек, так, как это кажется вам наиболее удобным для разработчика, а далее вызвать уже готовые программы-утилиты для компиляции, линковки, отладки, управления версиями проекта и т.д. При этом, налицо разделение труда. Удачные и действительно полезные утилиты не только выживают, но и постоянно улучшаются, избавляясь от ошибок. Поэтому нет смысла писать заново свой компилятор или отладчик, если ваша цель – написание среды разработки. Хотя никто вам этого не запретит. Но, гораздо чаще, программисты подключаются в команду по улучшению уже существующих утилит. Вообще, надежные, и десятилетиями отлаженные утилиты, выполняющие какое-то очень простую функцию, – это огромная сила Unix. Начинающему даже не всегда понятно, зачем и кому нужна такая простая по функциональности утилита. Их мощность проявляется в скриптах и при конвейеризации (стандартный выход одной утилиты подсоединяется к стандартному входу другой). Приведу пример того, как простую, на первый взгляд функцию можно разбить на еще более простые, что даст возможность раздельной разработки, раздельного устранения ошибок, и в дальнейшем раздельного использования этих функций в совершенно невероятных комбинациях. Вспомните, что называется архиватором в DOS/Windows системах. Это программа, выполняющая три функции. Сначала, все переданные в нею файлы она объединяет в один. Именно этот процесс называется архивацией. Далее, полученный файл компрессируется, используя тот или иной алгоритм компрессии. И наконец, по специальному запросу, скомпрессированный файл разбивается на тома заданного размера. Также, можно написать пользовательский интерфейс с кнопочками и рюшечками, которые просто вызовут эти утилиты в нужной последовательности. Именно в этом идеологическая особенность Unix программ. Если программа выполняет две функции, то она должна быть разбита на две программы. Тогда, во-первых, ее можно будет проще написать. Во-вторых, проще отладить и устранить ошибки. В-третьих, в дальнейшем, мы сможем использовать каждый из компонентов нашей программы в других целях. И наконец, если кто-то захочет ее улучшить ему будет проще разобраться в исходном коде короткой программы. Такой подход в построении программ прошел проверку десятилетиями и, на мой взгляд, позволяет, во-первых, значительно уменьшить размер системы на жестком диске, во-вторых, добиться меньшего количества ошибок в пользовательских программах, и наконец, написание навороченных и многофункциональных интерфейсов, например для записи CD, становится на уровень курсовой работы студентов технических вузов, т.к., наверное, в любой системе существует множество утилит с огромным количеством ключей, которые что-то там сжимают, пережимают, фильтруют, создают и пишут ISO образы. По крайней мере, все это есть в тех дистрибутивах, с которыми я знакомился.

    Поддержка формата PDF реализована в Unix/Linux системах на уровне драйвера печати. Для меня непонятно как здесь увязан вопрос с лицензиями, но это работает не только в Linux, но и в профессиональных Unix системах. В результате, вы, используя любой редактор, создающий все что угодно, можете сохранить это в PDF просто направив печать в PDF файл. И при этом, вы будете уверены, что это прочтется на любой платформе без искажений форматирования. В прошлых Linux пакетах здесь были глюки с картинками и русским текстом. Сегодня все это работает безотказно.

 

Home   |   Trademarks
Copyleft © 2005-2017 Сообщество пользователей "LINUXiso".
Последнее обновление сайта: 06-06-2017 09:07