По умолчанию все размеры при программировании графики измеряются в пикселях. Однако размер самого пикселя на различных мониторах может быть различным, поэтому и размеры изображения могут быть для одной и той же программы разными.
Можно устанавливать свои единицы измерения, присвоив соответствующее значение свойству PageUnit объекта Graphics, например:
Visual Basic .Net:
Dim g As Graphics
g = Me.CreateGraphics
g.PageUnit = GraphicsUnit.Inch
Visual C#:
Graphics g;
g = this.CreateGraphics();
g.PageUnit = GraphicsUnit.Inch;
В этом случае размеры всех фигур будут одинаковыми на всех дисплеях всех машин, на которых запускается программа (в данном случае они будут измеряться в дюймах). Однако и толщина линий также будет измеряться в дюймах, т.е., например, инструкция
Visual Basic .Net:
Dim redpen As Pen
redpen = New Pen(Color.Red, 3)
Visual C#:
Pen redpen;
redpen = new Pen(Color.Red, 3);
создаёт перо толщиной в 3 дюйма. Если толщину линий необходимо выражать в пикселях, то это значение необходимо разделить на количество пикселей на дюйм по горизонтали и вертикали. Это количество вычисляется с помощью свойств DpiX и DpiY объекта Graphics. Данные свойства доступны только для чтения. Например, для того, чтобы создать перо, рисующее линию толщиной в три пикселя, когда единицей измерения является дюйм, необходимо выполнить оператор:
Visual Basic .Net:
Dim pen1 = New Pen(Color.Red, 3 * (1 / g.DpiX))
Visual C#:
Pen pen1 = new Pen(Color.Red, 3 * (1 / g.DpiX));
Ядро (Kernel) Linux — постоянно находящаяся в оперативной памяти часть ОС. Ядро функционально минимизировано: в нем полностью отсутствуют пользовательские функции. В их качестве выступают многочисленные утилиты, образующие вместе с ядром полноценную ОС.
Основные функции ядра:
— обработка прерываний от устройств;
— исполнение запросов системных процессов и пользовательских приложений;
— распределение виртуальной памяти;
— создание и уничтожение процессов;
— обеспечение многозадачности (как псевдо-, так и реальной);
— содержит драйверы устройств;
— обслуживает файловую систему.
Общая структура ОС Linux представлена ниже.
Приложения
Файловая
система
Подсистема
ввода-вывода
Драйверы
устройств
Подсистема
управления
процессами
Ядро
(Kernel)
Аппаратные средства
Системные вызовы
Определенные операции, например, операции ввода-вывода или порождение других процессов, недоступны пользовательским приложениям. Для их реализации необходимо обращаться к сервисам ядра. Подобные обращения называются системными вызовами.
При загрузке ОС Linux файл ядра считывается с нулевого адреса в оперативную память. Сам файл ядра находится в каталоге /boot и обычно называется vmlinuz-x.y.z-дополнительное_описание.
Номер версии ядра обозначаетется как x.y.z.w. Первые два числа характеризуют версию ядра, третье — номер выпуска, четвертое — номер исправления. Первое число равно 2 с 1996г. Второе число до выхода версии 2.6 означало стабильность ядра, если y четное, и нестабильность ядра, если y нечетное. В настоящее время разработчики отказались от подобного толкования второго числа. Текущая версия ядра — 2.6.z.w. Переход к версии 2.7 произойдет только при внесении некоторого принципиального изменения в ядро.
Для указания на внесенные изменения используется третье число (номер выпуска ядра). Ядро с очередным номером выпуска считается нестабильным. Если разработчики решат выпустить исправленные версии ядра некоторого выпуска, то это будет отражено четвертым числом.