В Linux много типов оболочек. Наиболее важное различие между ними - используемый командный язык. Например, CShell (csh) использует командный язык, чем-то напоминающий язык программирования Си. Классический Баурновский shell (BourneShell) использует иной командный язык. Обычно выбор оболочки обусловлен выбором соответствующего командного языка. Выбранная оболочка в какой-то мере определяет рабочую среду. Наиболее популярная оболочка - это GNUBourneAgainShell (bash), т.е. вариант Bourneshell, включающий много современных свойств и возможностей, таких как управление работами, командную историю, дописывание имен команд и имен файлов, Emacs-подобный интерфейс редактирования командной строки и мощное расширение стандартной оболочки (Bourneshell). [33]
Другая популярная оболочка - tcsh, версия CShell с более современными функциями по сравнению с bash. Другие оболочки: zsh - небольшая баурно-подобная оболочка; ksh - оболочка Корна; ash - оболочка BSD.
Linux дает уникальную возможность кроить систему под наши личные нужды.
Linux обеспечивает полную Unix-среду программирования, включая все стандартные библиотеки, программный инструментарий, компиляторы, отладчики, которые встречаются и в других Unix-системах. В мире Unix большинство приложений и системных программ делаются на Си или Си++. Стандартным компилятором для Си и Си++ в Linux служит GNUgcc, который является современным компилятором, поддерживающим много опций. Он способен компилировать Си так же, как Objective-C, другие объектно-ориентированные диалекты Си. [23]
Кроме Си и Си++ многие другие компиляторы и интерпретаторы были перенесены в Linux, такие как Smalltalk, FORTRAN, Pascal, LISP, Scheme и Ada, Perl и shell-подобный командный язык, включающий поддержку разработки простейших приложений в “XWindow”.
В Linux был перенесен продвинутый отладчик gdb, позволяющий пошагово выполнять программы в поисках ошибок или анализировать крах программ с помощью дампов памяти. Gprof - утилита профилирования, показывающая, где программа при выполнении тратит больше времени. Текстовый редактор Emacs позволяет осуществлять интерактивное редактирование. Другие инструменты, включая GNUmake и imake используются для управления компиляцией больших программ; RCS - система для защиты и сопровождения исходных текстов.
Linux содержит динамические библиотеки (DLL), которые позволяют экономить место, поскольку они вызываются только во время выполнения. Эти библиотеки позволяют также прикладному программисту переопределять функции, включая свои коды.
Linux идеален для создания Unix-приложений. Поддерживаются различные стандарты вроде POSIX.1, позволяющие легко переносить программы, написанные для Linux, на другие системы. Можно использовать Linux для обучения программированию в Unix и изучения таких аспектов, как архитектура ядра.
1.4 Система “XWindow”
Система “XWindow” (или кратко просто Х) - стандартный графический интерфейс для Unix-машин. Это мощная среда, поддерживающая много приложений. Используя “XWindow”, пользователь может одновременно иметь на экране несколько окон, при этом каждое имеет независимый login. Часто используется мышь, хотя она необязательна. Было написано много специфических Х-приложений, таких как игры, графические утилиты, инструментарий для программирования и документирования и т.д. С Linux и X компьютер - замечательная рабочая станция. Используя протоколы TCP/IP, можно смотреть X-приложения, выполняемые на других машинах.
Система “XWindow” была первоначально создана в MIT и свободно распространялась. Существует много и коммерческих приложений, расширяющих возможности “XWindow”. Для Linux есть система “XWindow”, известная как XFree, свободно распространяется для Unix-систем типа Linux. XFree поддерживает широкий спектр видео устройств, включая VGA, SuperVGA, HDMI, различные видео адаптеры с ускорителями. Это полный комплект “XWindow”, содержащий сам сервер, много прикладных программ и утилит, программные библиотеки и документацию.
Стандартные Х-приложения включают xterm (эмулятор терминала, используемый в большинстве текстовых приложений в XWindow); xdm (X-менеджер, обслуживающий login); xclock (представление простых часов); xman (X-ориентированное руководство по Linux) и т.д. Трудно перечислить все приложения X, доступные в Linux, но базовый комплект XFree включает “стандартные” приложения, содержащиеся в исходной версии MIT. Но доступно и многое другое, теоретически, все написанное для “XWindow” можно прямо компилировать и для Linux.[37]
Интерфейс “XWindow” в большой степени контролируется менеджером окон (Windowmanager). Эта программа отвечает за размещение окон, изменение их размеров, размещение иконок, перемещение окон, вид оконных рамок и т.д. Стандартный дистрибутив XFree включает twm, классический оконный менеджер MIT, но также имеются и более современные менеджеры, такие как OpenLookVirtualWindowManager (olvwm). Среди пользователей Linux популярен fvwm. Это небольшой менеджер окон, требующий в два с лишним раза меньше памяти, чем twm. Он обеспечивает трехмерное представление обрамления окон и виртуальный рабочий стол (desktop) - если пользователь подвигает мышь к краю экрана, все изображение смещается, будто дисплей имеет большие размеры, чем на самом деле. Fvwm более традиционен и позволяет реализовать все функции доступа как с клавиатуры, так и от мыши. Многие дистрибутивы Linux содержат fvwm, как стандартный менеджер окон.
Дистрибутив XFree86 содержит программные библиотеки и включает файлы для тех программистов, кто желает создавать приложения в X. Поддерживаются различные множества widget (графических представлений), такие как Athena, OpenLook и Xaw3D. Включены все стадартные фонты, битмэпы и документация. Поддерживается также PEX (программный интерфейс для трехмерной графики).
Многие пользующиеся Х используют и имеющиеся в Motif наборы widget. Несколько компаний продают одно- и многопользовательские лицензии бинарников Motif в Linux. Поскольку Motif сам по себе сравнительно дорог, немногие владельцы Linux имеют Motif. Тем не менее, бинарники, статически связанные с библиотечными программами Motif, могут свободно распространяться.
Главные ограничения использования “XWindow” происходят от требований к аппаратуре. Для более комфортного режима необходимо не менее 8 Мбайт. Желательно иметь и более производительный процессор , но прежде всего необходима память. Для действительно хорошего результата лучше иметь карту с акселератором (как, например, S3-chipset). На Linux с XFree был достигнут рейтинг выполнения, превосходящий 200000 xstones.
Существуют различные утилиты для связи с миром MS-DOS. Наиболее известен LinuxMS-DOSEmulator, позволяющий выполнять многие MS-DOS программы прямо на Linux. Несмотря на то, что Linux и MS-DOS абсолютно различные операционные системы, среда защищенного режима позволяет некоторым задачам вести себя так, как это делают прикладные программы MS-DOS.
Эмулятор MS-DOS прежде всего предназначается для тех, кому MS-DOS нужен только для выполнения нескольких приложений, но в основном используется Linux. Эмулятор, это не полное повторение MS-DOS. Разумеется, если эмулятор не удовлетворяет пользовательский потребностям, можно использовать MS-DOS непосредственно, как и Linux, на одной и той же машине. При использовании загрузчика LILO можно во время загрузки указать, какую загрузить операционную систему. Linux может сосуществовать с другими операционными системами, с той же OS/2 и Windows. [18]
Linux обеспечивает “гладкий” интерфейс для обмена файлами между Linux и MS-DOS. Можно “примонтировать” раздел MS-DOS или гибкий диск под Linux и иметь прямой доступ к файлам MS-DOS, как и к "родным".
Обмен данными с Windows возможен только в одну сторону: Linux читает файлы Windows, а последняя – файлы Linux прочитать не может.
В Linux огромное количество всевозможных приложений, что и следует ожидать от такой “разносторонней” операционной системы. Основная ориентация Linux была на персональные Unix-вычисления, но она быстро меняется. Все больше его используют в бизнесе и обучении, все больше появляется на рынке всевозможных коммерческих приложений.
В Linux доступно несколько реляционных баз, включая Postgres, Ingres, и Mbase. Это полномасштабные профессиональные системы управления базами данных типа клиент-сервер, похожие на имеющиеся на других платформах Unix. Имеется также коммерческая база - rdb.
Прикладные научные пакеты включают FELT (FiniteElementAnalysisTool); gnuplot (анализ данных и черчение); Octave (пакет символических вычислений, похожий на MATLAB); xspread ( калькулятор типа spreadsheet); xfractint (X-вариант популярного рекурсивного генератора Fractint); xlispstat (пакет статистики) и многое другое. Другие приложения содержат Spice (проектирование и анализ цепей) и Khoros (аналого-цифровая обработка сигналов и визуализация).
Разумеется, есть еще много приложений, которые перенесены на Linux. Linux обеспечивает полный программный Unix-интерфейс, удобный в качестве исходной базы для любых приложений в любой научной области.
Как и другие операционные системы, Linux не стоит в стороне от компьютерных игр. Это и классические текстовые “подземельные” игры, вроде Nethack и Moria; игры типа MUDs (Multi-UserDungeons, которые позволяют взаимодействовать многим пользователям), а также большое число игр в X, таких как xtetris, netrek и Xboard.
Для меломанов Linux поддерживает различные саунд-карты, вроде CDplayer (программа, которая может управлять драйвером CD-ROM, как традиционным CD-плейером), MIDI последовательности и саунд-редакторы цифровой записи и многое другое.[9]
Linux поддерживает два базовых сетевых протокола Unix: TCP/IP и UUCP. TCP/IP (TransmissionControlProtocol/InternetProtocol) есть множество сетевых парадигм, позволяющих системам по всему миру связываться по единой сети, известной как Internet. С помощью Linux, TCP/IP и подключения к сети можно общаться с пользователями и машинами всего Internet через электронную почту, новости USENET, передачу файлов FTP и т.п. В Internet много машин под Linux.
Большинство сетей TCP/IP используют Ethernet, как физическое транспортное средство. Linux поддерживает многие популярные карты Ethernet и интерфейсы. Однако, поскольку не у всех есть дома плата Ethernet, Linux также поддерживает SLIP (SerialLineInternetProtocol), позволяющий связываться с Internet через модем. Для использования SLIP необходимо иметь доступ к SLIP-серверу, машине связанной с сетью и, обеспечивающей вход в Internet. Многие фирмы и университеты предоставляют SLIP-сервис. Если Linux имеет Ethernet и модем, можно сконфигурировать систему как SLIP-сервер для других хостов.