Коротко о среде разработки 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:
#include <u.h> #include <libc.h> void main(int argc, char *argv[]) { }
Самая короткая C программа для APE:
#include <stdlib.h> void main(int argc, char *argv[]) { }
перед ее компиляцией с помощью cc, выполните команду
ape/psh
Эта команда запускает 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 файла:
- /n/sources/extra/gnubin.tgz
- /n/sources/extra/ape.tgz
- http://cm.bell-labs.com/cm/cs/who/dhog/gnusrc.tgz
- Первый файл должен быть извлечен в корне ФС Plan 9 для установки разного рода исполняемых файлов, библиотек и т.п.. Порт лишь для 386, так что все работает только на этой архитектуре.
- Второй содержит исходные тексты APE библиотек, которые работают с GCC. APE распространяется на условиях лицензии Plan 9. Файлы должны быть извлечены в каталог /sys/src/gnu/ape.
- Третий архив — набор исходных текстов для сборки GCC. Он немного в небрежном состоянии. Смотрите файл README за детальным описанием. Файлы должны быть извлечены в каталог /sys/src/gnu. GCC, Binutils и другие файлы распространяются на условиях лицензии GPL.
Первые два архива доступны на странице дополнительного ПО 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 версия не полностью функциональна.
Ссылки
- Perl в Plan 9 http://www.perldoc.com/perl5.8.0/README.plan9.html.
- Расс Кокс (Russ Cox) портировал язык MosML.
- Порт языка Python доступен для загрузки со страницы дополнительного ПО Plan 9.
- SXM — портабельная реализация языка программирования Scheme.
- Дистрибутив Kaffe, пакет содержит исходники, двоичный код и детальную информацию.
- Hugs — интерпретатор функционального языка Haskell.
- Ocaml — еще один язык функционального программирования, чей интерпретатор был портирован в среду Plan 9
Copyright © 2003 Перевод Андрей С. Кухар. Последняя модификация 21.08.2003