Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Языки программирования и утилиты

Система Linux предоставляет все возможные средства для программирования, включая все стандартные библиотеки, средства программирования, компиляторы и отладчики, которые можно встретить в других версиях системы UNIX.

Поддерживаются такие стандарты, как POSIX.1, что позволяет перенести программы, разработанные для системы Linux, на другие системы. Профессиональные программисты в системе Linux и администраторы систем используют Linux для того, чтобы разрабатывать программное обеспечение на домашних компьютерах, и затем переносят эти программы на другие компьютеры. Это не только значительно экономит время и затраты, но и позволяет разрабатывать программное обеспечение в комфортных домашних условиях (так поступает один из авторов этой книги, разрабатывая и тестируя на своем домашнем компьютере приложения для X Window System; потом эти приложения могут быть откомпилированы на рабочих станциях). Студенты, специализирующиеся по теории программирования (Computer Science), могут учиться программировать в системе UNIX и изучать другие особенности системы, например -- архитектуру ядра.

В системе Linux программист имеет доступ к полному набору библиотек и утилит, а также к полным исходным текстам ядра системы и библиотек.

В мире UNIX программное обеспечение часто пишется на языках C и C++. Стандартным компилятором для языков C и C++ в системе Linux является GNU gcc -- современный развитый компилятор, поддерживающий средства C++, включая AT&T 3.0, а также Objective-C (еще один объектно-ориентированный вариант языка C).

В дополнение к компилятору языков C и C++, в систему Linux перенесены многие другие компиляторы и интерпретаторы для языков Smalltalk, FORTRAN, Java, Pascal, LISP, Scheme и Ada (если вы получаете удовольствие, программируя на языке Ada, вас не будут останавливать). Кроме них, имеются различные ассемблеры для программирования защищенного режима процессора 80306. Популярностью среди UNIX-хакеров пользуются системы Perl (язык скриптов, созданный для того, чтобы затмить все другие языки скриптов) и язык Tcl с графическим расширением Tk (система обработки команд типа программной оболочки, имеющая средства создания простых приложений для X Window System).

Мощный отладчик gdb может пошаговым образом передвигаться по строчкам исходного текста программы и анализировать дамп для выявления причин аварийного завершения работы программы. Утилита gprof производит статистический анализ быстродействия пользовательских программ, сообщая, какая часть программы требует на исполнение наибольшего времени. Как указывалось выше, текстовый редактор emacs дает возможность редактировать и компилировать в интерактивном режиме тексты программ, написанных на нескольких языках программирования. Среди других утилит укажем на GNU make и imake, с помощью которых производится компилирование объемных приложений, и на RCS -- систему защиты исходного текста и контроля за его изменением.

Наконец, Linux поддерживает динамически подключаемые (dynamically linked) библиотеки общего пользования (shared libraries) (DLL). Их использование приводит к заметному уменьшению размера откомпилированных файлов. Таким образом, используемая разными программами процедура из библиотеки подключается в процессе выполнения программы. Динамически подключаемые библиотеки позволяют программисту переопределять отдельные функции, подставляя вместо них собственные. Например, если вы написали собственную версию библиотечной процедуры malloc(), то редактор связей (linker) будет ее использовать вместо библиотечной.