Выбрать книгу по жанру
Фантастика и фэнтези
- Боевая фантастика
- Героическая фантастика
- Городское фэнтези
- Готический роман
- Детективная фантастика
- Ироническая фантастика
- Ироническое фэнтези
- Историческое фэнтези
- Киберпанк
- Космическая фантастика
- Космоопера
- ЛитРПГ
- Мистика
- Научная фантастика
- Ненаучная фантастика
- Попаданцы
- Постапокалипсис
- Сказочная фантастика
- Социально-философская фантастика
- Стимпанк
- Технофэнтези
- Ужасы и мистика
- Фантастика: прочее
- Фэнтези
- Эпическая фантастика
- Юмористическая фантастика
- Юмористическое фэнтези
- Альтернативная история
Детективы и триллеры
- Боевики
- Дамский детективный роман
- Иронические детективы
- Исторические детективы
- Классические детективы
- Криминальные детективы
- Крутой детектив
- Маньяки
- Медицинский триллер
- Политические детективы
- Полицейские детективы
- Прочие Детективы
- Триллеры
- Шпионские детективы
Проза
- Афоризмы
- Военная проза
- Историческая проза
- Классическая проза
- Контркультура
- Магический реализм
- Новелла
- Повесть
- Проза прочее
- Рассказ
- Роман
- Русская классическая проза
- Семейный роман/Семейная сага
- Сентиментальная проза
- Советская классическая проза
- Современная проза
- Эпистолярная проза
- Эссе, очерк, этюд, набросок
- Феерия
Любовные романы
- Исторические любовные романы
- Короткие любовные романы
- Любовно-фантастические романы
- Остросюжетные любовные романы
- Порно
- Прочие любовные романы
- Слеш
- Современные любовные романы
- Эротика
- Фемслеш
Приключения
- Вестерны
- Исторические приключения
- Морские приключения
- Приключения про индейцев
- Природа и животные
- Прочие приключения
- Путешествия и география
Детские
- Детская образовательная литература
- Детская проза
- Детская фантастика
- Детские остросюжетные
- Детские приключения
- Детские стихи
- Детский фольклор
- Книга-игра
- Прочая детская литература
- Сказки
Поэзия и драматургия
- Басни
- Верлибры
- Визуальная поэзия
- В стихах
- Драматургия
- Лирика
- Палиндромы
- Песенная поэзия
- Поэзия
- Экспериментальная поэзия
- Эпическая поэзия
Старинная литература
- Античная литература
- Древневосточная литература
- Древнерусская литература
- Европейская старинная литература
- Мифы. Легенды. Эпос
- Прочая старинная литература
Научно-образовательная
- Альтернативная медицина
- Астрономия и космос
- Биология
- Биофизика
- Биохимия
- Ботаника
- Ветеринария
- Военная история
- Геология и география
- Государство и право
- Детская психология
- Зоология
- Иностранные языки
- История
- Культурология
- Литературоведение
- Математика
- Медицина
- Обществознание
- Органическая химия
- Педагогика
- Политика
- Прочая научная литература
- Психология
- Психотерапия и консультирование
- Религиоведение
- Рефераты
- Секс и семейная психология
- Технические науки
- Учебники
- Физика
- Физическая химия
- Философия
- Химия
- Шпаргалки
- Экология
- Юриспруденция
- Языкознание
- Аналитическая химия
Компьютеры и интернет
- Базы данных
- Интернет
- Компьютерное «железо»
- ОС и сети
- Программирование
- Программное обеспечение
- Прочая компьютерная литература
Справочная литература
Документальная литература
- Биографии и мемуары
- Военная документалистика
- Искусство и Дизайн
- Критика
- Научпоп
- Прочая документальная литература
- Публицистика
Религия и духовность
- Астрология
- Индуизм
- Православие
- Протестантизм
- Прочая религиозная литература
- Религия
- Самосовершенствование
- Христианство
- Эзотерика
- Язычество
- Хиромантия
Юмор
Дом и семья
- Домашние животные
- Здоровье и красота
- Кулинария
- Прочее домоводство
- Развлечения
- Сад и огород
- Сделай сам
- Спорт
- Хобби и ремесла
- Эротика и секс
Деловая литература
- Банковское дело
- Внешнеэкономическая деятельность
- Деловая литература
- Делопроизводство
- Корпоративная культура
- Личные финансы
- Малый бизнес
- Маркетинг, PR, реклама
- О бизнесе популярно
- Поиск работы, карьера
- Торговля
- Управление, подбор персонала
- Ценные бумаги, инвестиции
- Экономика
Жанр не определен
Техника
Прочее
Драматургия
Фольклор
Военное дело
Внутреннее устройство Linux - Уорд Брайан - Страница 108
• JavaScript. Этот язык применяется в браузерах в основном для работы с динамическим содержимым. Наиболее искушенные программисты остерегаются использовать его как средство для создания автономных сценариев из-за его многочисленных недостатков, но этого практически невозможно избежать в веб-программировании. В своей системе вы сможете отыскать его реализацию с именем Node.js и исполняемым файлом node.
• Emacs Lisp. Разновидность языка программирования Lisp, которая используется в текстовом редакторе Emacs.
• Matlab, Octave. Matlab является платным языком программирования и библиотекой для матричных и математических вычислений. Существует очень похожий на него бесплатный проект Octave.
• R. Популярный бесплатный язык для статистического анализа. Дополнительную информацию можно получить на сайте http://www.r-project.org/ и в книге Нормана Матлофа (Norman Matloff) The Art of R Programming («Искусство программирования на языке R», No Starch Press, 2011).
• Mathematica. Еще один коммерческий математический язык программирования с библиотеками.
• m4. Это язык обработки макроопределений, который обычно находится только в утилите GNU autotools.
• Tcl (Tool command language, инструментальный командный язык). Это простой язык сценариев, обычно ассоциируемый с инструментарием графического интерфейса пользователя Tk и утилитой автоматизации Expect. Хотя язык Tcl уже не столь широко распространен, как раньше, не пренебрегайте его возможностями. Многие бывалые разработчики предпочитают использовать язык Tk, в особенности за его внедренные возможности. Подробности можно узнать на сайте http://www.tcl.tk/.
15.6. Java
Язык Java является транслируемым, подобно языку C, с более простым синтаксисом и мощной поддержкой объектно-ориентированного программирования. В системах Unix у него несколько специальных применений. Так, он часто используется как среда для веб-приложений, а также популярен для специальных программ. Например, приложения для платформы Android обычно написаны на языке Java. Хотя он и не часто встречается в типичном рабочем столе Linux, вы должны знать, как он работает, по меньшей мере в автономных приложениях.
Есть два вида компиляторов Java: собственные компиляторы, создающие машинный код для вашей системы (подобно компилятору С), и компиляторы байт-кода для его использования в интерпретаторе байт-кода (иногда называемом виртуальной машиной, которая отличается от виртуальной машины, предлагаемой гипервизором, как описано в главе 17). В Linux вы практически всегда будете встречать байт-код.
Имена файлов байт-кода Java заканчиваются на .class. Среда времени исполнения Java (JRE, Java runtime environment) содержит все команды, которые необходимы вам для запуска байт-кода. Чтобы выполнить байт-код, используйте такую команду:
$ java file.class
Можно также встретить файлы байт-кода, которые оканчиваются на .jar; это подборки заархивированных файлов .class. Чтобы запустить файл .jar, используйте следующий синтаксис:
$ java -jar file.jar
Иногда вам потребуется указать в переменной окружения JAVA_HOME путь к среде Java. Если вам сильно не повезет, то придется использовать переменную CLASSPATH, чтобы включить все каталоги, которые содержат ожидаемые командой классы. Этот список каталогов приводится с разделителем-двоеточием, подобно обычной переменной PATH для исполняемых файлов.
Если вам необходимо скомпилировать файл .java в байт-код, потребуется набор для Java-разработки (JDK, Java Development Kit). Запустить компилятор javac из набора JDK для создания файлов .class можно так:
$ javac file.java
В набор JDK входит также команда jar, которая позволяет собирать файлы .jar. Она работает подобно команде tar.
15.7. Заглядывая вперед: компиляция программных пакетов
Мир компиляторов и языков сценариев велик и постоянно расширяется. Пока пишутся эти строки, набирают популярность новые транслируемые языки, такие как Go (golang) и Swift.
Инфраструктура компиляции LLVM (http://llvm.org/) существенно облегчила разработку компиляторов. Если вам интересно узнать о разработке и реализации компиляторов, в этом вам помогут две хорошие книги: Compilers: Principles, Techniques and Tools («Компиляторы: принципы, методы и инструменты») Альфреда В. Эхоу (Alfred V. Aho) (2-е издание, Addison-Wesley, 2006) и Modern Compiler Design («Разработка современного компилятора») Дика Грюна (Dick Grune) и др. (2-е издание, Springer, 2012). О разработке с помощью языков сценариев лучше узнавать из онлайн-ресурсов, поскольку реализации весьма различаются.
Теперь, когда вы знакомы с основами инструментов программирования в системе, вы готовы узнать, что они могут делать. Следующая глава полностью посвящена тому, как в Linux создавать пакеты программного обеспечения на основе исходного кода.
16. Введение в программное обеспечение для компиляции кода на языке C
Большинство общедоступных пакетов сторонних разработчиков ПО для Unix поставляется в виде исходного кода, который можно скомпоновать и установить. Одной из причин для этого является наличие такого числа различных версий и архитектур Unix (и самой Linux), что было бы затруднительно создать двоичные пакеты для всех возможных комбинаций платформ. Еще одна важная причина состоит в том, что широкое распространение исходного кода в Unix-сообществе воодушевляет пользователей на исправление ошибок в ПО и внесение новых функций, наполняя смыслом термин «открытый исходный код».
Практически все, что вы видите в системе Linux, можно получить как исходный код: начиная с ядра и библиотеки C и заканчивая браузерами. Возможно даже обновить и дополнить систему в целом, (пере)установив части системы из исходного кода. Однако вам, вероятно, не следует обновлять свой компьютер, устанавливая все из исходного кода, если только вы не получаете удовольствие от этого процесса или у вас нет какой-либо другой причины.
Linux обычно обеспечивает простые способы обновления важнейших частей системы, таких как команды в каталоге /bin, а одним чрезвычайно важным свойством систем является то, что они обычно очень быстро устраняют проблемы в защите. Однако не ожидайте, что ваша версия обеспечит вас всем необходимым без вашего участия. Вот несколько причин, по которым может потребоваться самостоятельно установить определенные пакеты:
• чтобы контролировать параметры конфигурации;
• чтобы установить ПО туда, куда вам необходимо. Вы можете даже установить несколько разных версий одного пакета;
• чтобы управлять версией, которую вы устанавливаете. В дистрибутивах системы не всегда присутствует самая последняя версия всех пакетов, в особенности относящихся к дополнительному ПО (такому как библиотеки Python);
• чтобы лучше понимать, как работает пакет.
16.1. Системы для сборки программного обеспечения
В Linux есть различные среды программирования, начиная от традиционного языка C и заканчивая такими интерпретируемыми языками сценариев, как Python. У каждой из них есть по меньшей мере одна собственная система для сборки и установки пакетов в дополнение к тем инструментам, которые предлагает система Linux.
В этой главе мы рассмотрим компиляцию и установку исходного кода на языке C с помощью лишь одной их таких систем — сценариев конфигурирования, создаваемых пакетом GNU Autotools. Эта система считается стабильной, и многие основные утилиты Linux используют ее. Поскольку она основана на таких существующих инструментах, как команда make, вы сможете применить свои знания для других систем сборки, увидев ее в действии.
Установка пакета из исходного кода на языке C обычно включает следующие шаги.
- Предыдущая
- 108/114
- Следующая