RSS    

   Реферат: Администрирование локальных сетей

WeightName[ext]              относительный вес шрифта (жирность). Для векторных шрифтов может обозначать темность или светлось (параметр ext)

Slant[ext]                             напрвление шрифта (roman, italic, oblique, …) для векторных шрифтов параметр задает наклов в угловых единицах.

SetwithName                      ширина юнита (сжатый или растянутый)

AddStyleName[ext]          название для уникальной идентификации шрифта (serife, cursive, …) В векторных шрифтах определят степень поворота или зеркальность шрифта.

PixelSize[ext]                     высота шрифта в пикселях. Для векторных шрифтов параметр указывает дополнительную растяжку по горизонтали.

PointSize[ext]                     размер кубика в поинтах.

ResolutionX                        Разрешение (горизонтальное и вертикальное) шрифта в

ResolutionY                        пикселях на инч. Если не указано сервер выбирает сам в зависимости от разрешения дистплея.

                                               

Spacing                                расстояние между юнитами в шрифте. (М – фиксированное,

Р – пропорциональное)

AverageWidth                    Cредняя ширина шрифта

CharacterSetRegistry      имя закрепленное X консорциумом за CharacterSetEncoding

CharacterSetEncoding    определяет кодировку

Файл font.dir

Этот файл находится в каталогах файлов фонтов, он создается либо при инсталяции системы либо после выполнения команды mkfontdir для растровых или stmkdirs  для векторных шрифтов. Он содержит в первой строчке количество шрифтов в директории а в последующих XLFD названия шрифтов.

Файл font.alias

Этот файл так же как и font.dir содержится в каталогах шрифтов и служит для лиасинга

длинных имен шрифтов в короткие которые затем легче использовать. После правки этого файла обязательно нужно выполнять команду

            xset fp rehash

а также рестартовывать по сигналу SIGUSR1 фонт сервер.

Администрирование растровых шрифтов.

Для добавления растрового шрифта в систему нужно выполнить следующие действия:

·     Если шрифт не в .pcf формате сконвеертировать его с помощью программы bdftopcf

·     Скомпрессировать шрифт утилитой compress

·     Скопировать в нужную директорию

·     Запустить mkfontdir для модификации fonts.dir файла.

·     Если директория со шрифтами используется только Х сервером то выполнить xset fp rehash , если она используется еще и фонт сервером то рестартовывать по сигналу SIGUSR1 фонт сервер.

Для удаления растрового шрифта из системы Х11 необходимо:

·     Удалить фонт файл.

·     Запустить mkfontdir для модификации fonts.dir файла.

·     Если директория со шрифтами используется только Х сервером то выполнить xset fp rehash , если она используется еще и фонт сервером то рестартовывать по сигналу SIGUSR1 фонт сервер.

Для создания fonts.dir файла достаточно запустить mkfontdir указав ей в качестве аргумента директорию со шрифтами.

Компилирование .BDF шрифтов в .PCF шрифты.

 

Растровые шрифты в системе Х11 могут быть представлены в нескольких формах:

·     .pcf         Переносимый бинарный формат описания шрифта

·     .pcf.Z     компрессированный .pcf

·     .bdf         текстовый формат

·     .bdf.Z     компрессированный .bdf

·     .bcf         компрессированный .bdf

·     .snf         не переносимый бинарный формат шрифта  (использовался до X11R5)

·     .snf.Z      компрессированный .snf (использовался до X11R5)

·     .scf          компрессированный .snf (использовался до X11R5)

·    

Предпочтительным форматом для Х сервера является компрессированый .pcf.

Для конвертации .bdf в .pcf с одновременной компрессией можно воспользоваться командой:

bdftopcf font_file.bdf | compress > font_file.pcf.Z


4.   Программирование на HP-UX

Для создания выполняемых програм, нужно скомпилировать исходный код где содержиться главная програма.

                Расмотрим пример компиляции.

$ cc –Aa myprog.c

                Процес компиляции покадет все сообщения (статус,предупреждения, ошибки) на стандартный поток вывода ошибок (stderr). После этого компилятор создаст файл a.out который уже можно запускать. Аналогично можно скомпиларовать Фортрановскую прогамму командой f77. Если програма состоит из несколько файлов, то омпиляция будет выглядет следующем образом:

$ cc –Aa main.c myfunc.c

main.c:

myfunc.c:

после этого можно будет запускать a.out.

Можно сказать что процес компиляции похожий как на рисунке:


На самом деле процесс компиляции намноого сложнее. Этот процес компиляции занимает несколько этапов.

1)    Для каждого исходного файла запускаеться компилятор который создает обьектный файл (если исходные коды написаны на разных языках програмирования, то для каждого запускаеться тот  соотвествующий компилятор)

2)    После компиляция (этап создания) обьектных файлов запускаеться линковщик (HP-UX linker (ld))

На картинке можете увидеть более детальный процес компиляции:


Для более детального просмтотра этапов прохождения компиляции, можно посмотреть задав опцию v (verbose)

$ cc -Aa -v main.c  myfunc.c

cc: CCOPTS is not set.

main.c:

/opt/langtools/lbin/cpp.ansi main.c /var/tmp/ctmAAAa16327 -D__hp9000s700 -D__hp9000s800 -D__hppa -D__hpux -D__unix -D_PA_RISC1_1

cc: Entering Preprocessor.

/opt/ansic/lbin/ccom /var/tmp/ctmAAAa16327 main.o -Oq00,al,ag,cn,Lm,sz,Ic,vo,lc,mf,Po,es,rs,sp,in,vc,pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,lu,dp,fs,bp,wp! -Aa

myfunc.c:

/opt/langtools/lbin/cpp.ansi myfunc.c /var/tmp/ctmAAAa16327 -D__hp9000s700 -D__hp9000s800 -D__hppa -D__hpux -D__unix -D_PA_RISC1_1

cc: Entering Preprocessor.

/opt/ansic/lbin/ccom /var/tmp/ctmAAAa16327 myfunc.o -Oq00,al,ag,cn,Lm,sz,Ic,vo,lc,mf,Po,es,rs,sp,in,vc,pi,fa,pe,Rr,Fl,pv,pa,nf,cp,lx,st,ap,Pg,ug,lu,dp,fs,bp,wp! -Aa

cc: LPATH is /usr/lib/pa1.1:/usr/lib:/opt/langtools/lib:

/usr/ccs/bin/ld /opt/langtools/lib/crt0.o -u main main.o myfunc.o -lc

cc: Entering Link editor.

Из этого примера можно посмотреть такие этапы

cpp.ansi это С препроцесор после этого запускаеться /lib/ccom – эта програма(компилятор) уже создает файлы. Последний этап это этап создания исполняемого кода, это  Линкер, которые связывает все обьекты .

Что такое Обьектный файл ?

Обьектный файл содержет машиные инструкции а данные с которых линкеровщик создает исполняемую програму. Каждий обьектный файл содержит НАЗВАНИЕ (symbol name) и ссылку на это название.

Названия делятся на 3 категории:

1)    Локальные обьявления (local definition) – это коды или данные которые могут использоваться только в том обьектном файле где они обьявленые.

2)    Глобальные обьявления (global definition) – это обьявления прорцедур,функций,данных котоые могут быть доступны из других обьектных файлов

3)    Внешние ссылки (extern references) – это обьявления которые глобальный инаходяться в других обьектных файлах.

Для просмотра обявлений успользуеться програма nm.

Этап линкирования.

Линкирование это последний этап создания запускания файлов, он в включает в a.out файл все ссылки обьявлений и их реализации , которые встречаються в програме. Если например есть сылка а нет реализаци то линкировщик скажет что не находит внешнего обявления и выдаст следюющее:

$ cc main.c

/bin/ld: Unsatisfied symbol:

                my_func (code)

Работа с библиотеками

Очень полезным средсвом для хранения сылски реализаций внешних обьявлений есть библиотеки. Стандартная библиотека libc которая содержит «основные» функции для C,Fortran

Библиотеки называються libname.sfx

Name – название библиотеки, которая идентефецирует библиотеку

Sfx -  если .а – архив, .sl – общедоступная библиотека.

Для того что б указать  компилятору библиотеку то указываеться через опцию –l. Например

--lm (подключает стандартну математическую библиотеку libm.a).

По умолчанию подключаються библиотеки libcl,libisamstub,libc.

По умолчанию библиотеки ищатся по путям /lib,/usr/lib,lib/libp. Можно задать пути где искать:

1)    Переменой коружения LPATH

2)    Опция линкера -L

Также для каждой програмы входит обьектный файл /lib/crt0.o В этом файле содержаться таочки входа в програму,простомтр аргументов и прочее.

Можна прочитать о фунциях которые есть в стандартных библиотеках исполюзую man-page

Вызовы (функции) описываються следующим образом

Name(nL)

Name – название

N – 2-системные вызовы, 3-другие библиотеки

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.