Отправляет email-рассылки с помощью сервиса Sendsay

Программирование и др.

  Все выпуски  

Программирование в Linux с нуля - Выпуск 1


Информационный Канал Subscribe.Ru

Программирование в Linux с нуля. Выпуск 1.


Здравствуйте, уважаемые подписчики! Рад наконец-то начать излагать материал, но сначала хочу поблагодарить всех, кто откликнулся на мои просьбы. Если все так и дальше пойдет, то вскоре вы сможете посетить сайт, посвященный проекту.

Перед тем, как начинать программировать, хочу разобраться с некоторыми терминами и заблуждениями, что прокрались в мир Linux-программирования. Этому и посвящен сегодняшний выпуск рассылки.

1. GNU, GPL, Linux, Unix, Free Software, Open Source и т. п.

Все эти термины настолько перепутались в умах пользователей Linux, что мало кто понимает, что в точности они означают. Давайте раз и навсегда расставим все точки над 'i'.

GNU - это не "бамажка", вроде лицензии и не организация. GNU - это идея, принцип, по которому разрабатывается, реализуется и распространяется некоторая часть интеллектуальной собственности (программы, документация, книги и т. п.). Про такую интеллектуальную собственность обычно говорят 'GNU-интеллектуальная собственность', например 'GNU-программа', 'GNU-документация'. В двух словах этот принцип звучит так: "GNU-интеллектуальная собственность - есть народное достояние, полностью доступное для пользования или изменения. Присвоение такой интеллектуальной собственности, равно как и ограничение на распространение или изменение ее, является нарушением идеи GNU". Не уверен, что моя формулировка достаточно точная, поэтому советую почитать про GNU на http://www.gnu.org.

Само слово GNU читается по-русски 'гну' (как антилопа-гну); это рекурсивная аббревиатура 'GNU is Not Unix' (GNU - это не Unix). Здесь сразу же затрагивается Unix. Unix - это операционная система, у которой Linux унаследовала философию организации и стандарты разработки программного обеспечения. Однако Unix - это коммерческий продукт с большим числом ограничений и запретов на изменение и распространение. Сама расшифровка GNU как бы говорит, что GNU-интеллектуальная собственность не терпит ограничений на пользование, распространение или изменение.

Идея GNU родилась много лет назад в голове Ричарда Столлмана. Чтобы продвигать эту идею был создан Фонд Свободно распространяемого Программного обеспечения FSF (Free Software Foundation) - некоммерческая организация, поддерживающая GNU. В рамках FSF с участием опытных юристов была составлена публичная лицензия GNU, называемая GNU GPL или просто GPL (General Public License).

Про то, как фонд FSF годами нуждался в GNU-операционной системе и о попытках создать ее рассказывать здесь не буду - это интересная, но долгая история, которую можно прочитать на http://www.gnu.org.

Далее на арену выходит Линус Торвальдс с ядром своей операционной системы, которое он назвал 'Linux'. Не долго думая, Линус ставит на это ядро "штамп" GNU GPL. С тех пор и по сей день ядро Linux любой может изменить и пользоваться своими изменениями, а еще лучше - "пустить по рукам". Возникает вопрос: что же такое ядро операционной системы? В дальнейшем мы будем подробно изучать ядро Linux, однако сейчас принимайте ядро как ту часть операционной системы, что главенствует над всеми программами, и не видна пользователю, мимо которой не проходит ни одна программа и ни одно действие. Эдакий виртуальный процессор. Таким образом операционную систему можно разделить на ядро и программное обеспечение (окружение). И вот момент истины: если мы имеем в виду ядро Linux, то говорим просто 'Linux', если разумеем операционную систему с ядром Linux и GNU-программами, то говорим 'GNU/Linux', если же операционная система состоит из ядра Linux и не только GNU-программ, то говорим 'ОС Linux'. Но эти точности в большинстве случаев ни к чему, поэтому обычно GNU/Linux или ОС Linux называют просто 'Linux', а когда речь идет об ядре, то говорят 'ядро Linux'.

Другое популярное словосочетание 'Open Source'. Заблуждение состоит в отождествлении Open Source (открытый исходный код) и GNU. Принцип Open Source состоит в том, чтобы не скрывать то, как была написана программа, то есть распространять вместе с програмой ее исходный код. Но это еще не Free Software, отвечающее требованиям GNU GPL. Скажем так: GNU поддерживает идею Open Source как неотъемлемую часть GNU-программного обеспечения. А вот понятие 'Free Software' (свободно распространяемое програмное обеспечение) - это и есть GNU-программное обеспечение. Слово 'free' здесь выступает в роли свободный, а не бесплатный. Но бесплатность не является необходимым условием GNU-программ. Вы можете даже продать свою GNU-программу, если только она не перестанет быть народной собственностью вместе со своими исходниками.

Языки С и С++

Заблуждение по поводу этих двух языков настолько велико, что крепко засело в умы даже многих опытных программистов. Дело в том, что многие думают, что C++ - расширение языка C. Мало того, кто-то еще ведет споры по этому поводу. Неужели так сложно понять, что Бьярн Страуструп, создавая ДРУГОЙ язык просто не стал изобретать велосипед и воспользовался красивым синтаксисом языка C. Кроме синтаксиса в этих языках нет ничего общего по одной простой причине: они поддерживают разные методологии программирования - структурно-императивную и объектно-ориентированную. Нельзя РАСШИРИТЬ язык до другой методологии. С и C++ - разные языки.


В следующем выпуске 03.01.2005 мы начнем писать программу, которая ... перебирает пароли. Заодно научимся компилировать собирать и запускать собственные программы.

В этом году мы больше не увидимся, поэтому поздравляю всех своих подписчиков с наступающим Новым Годом. Желаю вам крепкого здоровья, счастья, удачи, бодрости и оптимизма. Спасибо, что вы есть!

Жду ваших отзывов и комментариев на nnivanov@mail.ru
Всегда ваш, Николай.


Linux-товарный знак Линуса Торвальдса. Unix - товарный знак Bell AT&T Laboratories. Прочие встречающиеся здесь и в дальнейших выпусках рассылки названия могут являться зарегистрированными знаками тех или иных фирм.
Рассылки Subscribe.Ru
*nix project - новости из мира unix-систем! (ежедневная)

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.linuxp
Отписаться

В избранное