Коротко о среде разработки Plan 9

Диалект С системы Plan 9 главным образом состоит из существенно упрощенного препроцессора и нескольких расширений языка C. Расширения коротко описаны в man-странице 2c(1) и более детально в документе «Как использовать компилятор Plan 9 C» (How to Use the Plan 9 C Compiler, /sys/doc/comp.ps).

Также в Plan 9 есть переносимая среда под названием АРЕ, ANSI/POSIX Environment, которая включает отдельные файлы, библиотеки и команды, соответствующие, насколько это возможно, более точно спецификациям ANSI С и базового POSIX.

Наибольшие различия вы, вероятно, встретите как раз на этом уровне библиотек. В Plan 9 есть различные библиотеки для многих стандартных функций. И, очевидно, многие вещи, как например, организация сети — сделаны полностью по-другому.

APE более точно соответствует среде ANSI/POSIX, чем многие современные Unix системы. Но, предпочтительной средой разработки все еще остается исконная среда Plan 9, которая обеспечивает доступ к исконным библиотекам. Их компиляция выполняется намного быстрее, в результате исполняемые файлы также получаются более быстрые. Почти весь C код в системе, как распространено (единственными исключениями являются gs и troff), написан на диалекте Plan 9 C.

Что касается других языков, то успешно портированы Perl, Python, Scheme, noweb, Haskell, newsqueak и MosML, но они не входят в дистрибутив системы, так что смотрите ссылки в конце документа. Оболочка rc(1) — великолепна, со многими улучшениями Bourne Shell, которые делают ее подходящей для программирования. В системе также присутствуют awk, acid, troff, hoc, bc, dc, gs, mp, которые также считаются языками программирования.

Утилита mk(1) широко используется в Plan 9, она описана в подробностях в документе «Поддержка файлов в Plan 9 с помощью mk» (Maintaining Files on Plan 9 with Mk, /sys/doc/mk.ps). Ее функция аналогична make (которую также обеспечивает APE), но она проще, следовательно, более мощная. Документ «Mk-файлы Plan 9» (Plan 9 Mkfiles, /sys/doc/mkfiles.ps) содержит некоторые примеры использования mk и mk-файлов.

Общей средой разработки является редактор Acme, своего рода комбинация оболочки, оконной системы, среды разработки (кстати, в Acme также можно прослушивать компакт-диски). Acme описан в man-странице acme(1) и документе «Acme: пользовательский интерфейс для программистов» (Acme: A User Interface for Programmers, /sys/doc/acme/acme.ps). Название этого документа отчасти вводит в заблуждение — он полезен также и для массы задач не из области программирования.

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

Самая короткая C программа для 8c/8l:

Самая короткая C программа для APE:

перед ее компиляцией с помощью cc, выполните команду

Эта команда запускает POSIX оболочку со средой, которая включает POSIX команды: ar89, c89, cc, basename, dirname, expr, false, grep, kill, make, rmdir, sed, sh, stty, true, uname и yacc.

Порты

Эндрю Почински (Andrew Pochinsky) частично портировал SXM (смотрите по адресу: http://www.malgil.com/sxm/).

Дэвид Гордон Хоугэн (David Gordon Hogan) портировал GCC 3.0. Всего есть 3 tar-ball файла:

  1. /n/sources/extra/gnubin.tgz
  2. /n/sources/extra/ape.tgz
  3. http://cm.bell-labs.com/cm/cs/who/dhog/gnusrc.tgz

Первые два архива доступны на странице дополнительного ПО Plan 9: http://plan9.bell-labs.com/plan9dist/.

Мэтт Синекл (Matt Senecal) портировал виртуальную машину CVM (http://java.sun.com/products/cdc/cvm). На данный момент портированы только наиболее трудные части HPI (потоки, замки и JNI).

Недавно был портирован Kaffe — популярный Java интерпретатор/JIT-компилятор. Порт работает (слишком громко сказано) лишь на платформе Intel 386. JIT версия не полностью функциональна.

Ссылки

Copyright © 2003 Перевод Андрей С. Кухар. Последняя модификация 21.08.2003