ДЛЯ НАЧАЛА: ЖИВЫЕ

- Knoppix -
Линукс за пять минут
- Puppy Linux -
Хороший друг


ДЛЯ ДЕЛА: ПРОФИ

- Debian -
Он такой один
- Linux Mint -
С родинкой на щеке!
- CentOS -
Копейка рубль бережёт!
- Fedora -
По следам Red Hat
- Ubuntu Linux -
Мы одной крови!
- Mageia -
Красота и удобства
- openSUSE -
Настоящее немецкое качество
- Slackware -
Линукс из кубиков
- ALT Linux -
Что русскому хорошо





ДЛЯ ДЕЛА: РОЛЛЫ

- ArchLinux -
Гениальное - просто!
- PCLinuxOS -
Просто линукс
- Aptosid -
Почувствуй силу!


ДЛЯ ДЕЛА: СОБЕРИ САМ

- Gentoo -
Каждому своё
- LinuxFromScratch -
Линукс с нуля


ДЛЯ ДЕЛА: ЛЁГКИЕ

- DeLiCate -
Старость в радость!
- SLAX -
Тысяча и один модуль


ЗАЩИТА

- OpenWall -
Не стучите, закрыто!
- Kali -
Вам, хакеры!


ПРИЛОЖЕНИЯ

- Planet CCRMA -
Работа со звуком
- VegaStrike -
Каждому по планете!


ЭКСПЕРИМЕНТ

- коЛинуксы -
Не выходя из Виндоус
- GoboLinux -
Очевидно и вероятно
- ReactOS -
Освободите Виндоус!


РОДНЯ

- BSD-семейство -
На плечах гигантов
- OpenIndiana -
До звёзд рукой подать


АРХИВ (2003-2016)
ФОРУМ




НАШИ ПРОЕКТЫ

MATRIX GL
ПОЛЕЗНЫЕ СОВЕТЫ
ПИНГВИН В КАРМАНЕ
ЗАКЛАДКИ
СТАТЬИ
КОНТАКТЫ


ПОМОЧЬ






Личный архив ЕЗ

7.03.2006 Начало начал

За те восемь-десять лет, которые Linux находится в поле зрения широкой публики, на сетевых форумах об этой операционной системе было сказано немало и хорошего, и плохого, и справедливого, и не очень. На форумах время бежит быстрей, так что пока программисты завершают очередной миллион строк кода, в миллионе дискуссий спорщики всех мастей сломают друг о друга десять миллионов копий. Но рано или поздно каждому из тех, кто так или иначе причастен к свободной ОС, кто имеет к ней хотя бы отдалённое отношение, так вот рано или поздно каждому приходилось отвечать на вопрос: чем же таким отличается Linux от других популярных операционных систем, что делает её уникальной? Открытые исходники? Да. Необычный интерфейс пользователя? Несомненно. Особые принципы внутреннего устройства? Да, пожалуй. Стабильность, защищённость, функциональность, насыщенность программным обеспечением, возможность свободного распространения, дружелюбность (или недружелюбность) и так далее, и так далее - сколько пользователей, столько и мнений. Но рискну утверждать, что одна из важнейших чёрточек Linux так и остаётся неназванной, хотя вня всяких сомнений, о ней знает большинство. Угадаете? Врождённая лёгкость разработки программ. Linux - словно фантастический конструктор для взрослых, заполучив который можно по прилагающимся чертежам быстро построить несколько готовых схем, в которых сразу же изменить что пожелаете, а то и вовсе возвести свою систему с нуля. И результат будет отнюдь не игрушечный, пригодный к серьёзной работе. По сравнению с Линуксом, Microsoft Windows или Mac OS X - намертво запаянные модели, добавить в которые что-то новое, что-то от себя, а тем более разобрать на запчасти несравненно сложней. Здесь же всё просто как дважды два. Заполучив любой дистрибутив Линукс (ну, хорошо, почти любой - за очень редким исключением), откройте консоль, создайте текстовый файлик hello.c следующего содержания

main(){printf("Hello,world!n");}

и введите пару "магических" команд

gcc hello.c -o hello

./hello

И ваша первая, вами собственноручно написанная программа для Линукса уже работает! Волшебно, не правда ли? Не нужно бежать в магазин за компактом с варезной копией последнего компилятора, не нужно тратить время на долгие инсталляции многосотмегабайтных пакетов, не нужно искать "кряк", не нужно вообще ничего - с вашим дистрибутивом Linux вы уже получили всё что вам необходимо для разработки ваших собственных программ и модификации существующих, включая и ядро операционной системы.

Компилирует и выполняет Linux

Но, конечно, так было не всегда. Текущее положение вещей вполне можно назвать светлым будущим - временем, о котором мечтало не одно поколение хакеров, строивших его своим трудом. Выполняя манипуляции, описанные абзацем выше, вы (возможно, о том не подозревая) задействовали среду разработки GCC [gcc.gnu.org] - могучий инструмент, по важности стоящий в одном ряду с ядром Linux, а по возрасту гораздо старше Ядра. История GCC уходит корнями в середину 80-ых годов, когда по-настоящему свободных средств для разработки программного обеспечения просто не существовало! В те годы должно быть уже знакомый вам американский хакер Ричард Столлмен задумал проект GNU - свободной операционной системы со свободными прикладными программами. Но представьте сами, как можно писать свободный софт без свободных же средств разработки? Тогда Столлмен и решил разработать новый компилятор для языка C. В первое время GNU C Compiler (GCC) был лишь надстройкой над другим компилятором, Pastel, бывшим тогда популярным в научной среде, но из-за ограничений последнего быстро перерос в самостоятельный проект. Совершенствование GCC оказалось делом непростым и хотя первая версия была готова уже в 1985, относительно стабильным он стал лишь несколько лет спустя.

К середине 90-ых, когда GCC уже орудовали десятки тысяч Linux-хакеров, слишком медленная эволюция компилятора, ход работ над которым контролировал всё тот же Столлмен, стала вызывать нарекания и в конце концов привела к появлению параллельного проекта. Несколько хакеров-одиночек и компания Cygnus, строившая бизнес на разработках GNU, взяли исходники GCC и начали добавлять в них экспериментальные новшества. Форк GCC получил название EGCS (Experimental/Enhanced GNU Compiler System) и получился настолько удачным, что в 1999 году разработчики оригинального компилятора приняли решение объединить проекты, учтя наработки EGCS. Говорят, с этого момента GCC несколько потерял в качестве, зато выиграл в скорости развития. А скорость была нужна - ведь к тому моменту GCC стал уже мультиплатформенным, мультиязыковым инструментом!

Как видите, сначала был GCC, а уж потом всё остальное

Действительно, GCC родился как компилятор C, но по мере взросления он вбирал в себя новые языки. Поэтому со временем его название стали расшифровывать как GNU Compiler Collection (букв. коллекция компиляторов проекта GNU) - и это справедливо, если учесть, сколько языков он поддерживает к настоящему моменту. Среди них C и C++, Fortran и Java, Pascal, Ada, Modula-3 и ряд других. Одновременно GCC учился генерировать код для разных архитектур. Сегодня с помощью одного компилятора можно вести разработку программ для 32- и 64-битных процессоров Intel и AMD, процессоров семейств Alpha и ARM, Motorola и MIPS, PowerPC и SPARC, многих, многих других. GCC служит как бы надстройкой для разноязычных, разноплатформенных компиляторов, общаясь с ними на одном внутреннем языке, что позволяет использовать одни и те же команды, уменьшить количество ошибок. Свобода и универсальность GCC сослужили ему хорошую службу. Сегодня GCC является стандартным компилятором для нескольких популярнейших операционных систем (с его помощью строятся почти все Юникс-совместимые ОС, включая и Mac OS X), и встретить его можно на компьютерах самых разных размеров и назначения - от персоналок до наладонников и обратно до суперкомпьютеров.

Конечно, одним только GCC спектр свободных средств разработки не ограничивается. Скажите спасибо тысячам безвестных хакеров, имена которых затерялись в мириадах строчек кода: Linux сегодня благоволит девелоперам и, углубившись в список доступных для установки пакетов, в любом дистрибутиве вы отыщете не один десяток инструментов для написания, компиляции и отладки кода. Но всё же, разбираясь с Python или формируя компонент XML в новомодном визуальном редакторе, продираясь сквозь дебри Perl или редактируя Java, вспоминайте иногда, на каком кирпичике основано благополуче светлого будущего, в котором нам с вами выпало счастье жить :-)

------------------------------------------------------------------------------------------------------------

Этот текст всегда доступен по адресу Linux.SU/070306.shtml


При частичной или полной перепечатке, переводе, переработке материалов сайта ссылка на Knoppix.ru обязательна.
(c) Knoppix.ru 2003 - 2016