Computer Science
8.43K subscribers
1 photo
15 links
По всем вопросам: @altmainf

Уважаемый менеджер: @altaiface
Download Telegram
Делегирование домена 

Делегированием домена — передача корневым сервером зоны права размещения домена на определенном NS-сервере

Для примера, корневые сервера делегируют зону .COM на серверы, которые будут за нее отвечать, а серверы зоны .COM делегируют домен MYDOMAIN.COM на NS-сервера хостинг-провайдера или на какие-либо другие. 

Само делегирование означает, что на корневом сервере для домена присутствуют записи IN NS, указывающие на NS-сервер, на котором размещена информация по домену. 

Делегирование предполагает наличие только записей IN NS и никаких других. Поэтому домену второго уровня нельзя прописать, к примеру, запись CNAME.
Типы SSL-сертификатов

 1. Сертификаты с расширенной проверкой (EV SSL)
Самый высокорейтинговый и наиболее дорогой тип SSL-сертификатов. Используется для популярных веб-сайтов, которые собирают данные и используют онлайн-платежи. 

 2. Сертификаты, подтверждающие организацию (OV SSL)
Этот тип SSL-сертификатов имеет такой же уровень доверия, что и сертификаты с расширенной проверкой

 3. Сертификаты, подтверждающие домен (DV SSL)
Процесс проверки для получения SSL-сертификата этого типа минимален. Используются для блогов или информационных веб-сайтов

 4. Wildcard-сертификаты
сертификаты с подстановочными символами позволяют защитить базовый домен и неограниченное количество поддоменов с помощью одного сертификата.

 5. Мультидоменные сертификаты (MDC)
Можно использовать для защиты нескольких доменных и поддоменных имен, включая сочетания полностью уникальных доменов и поддоменов с разными доменами верхнего уровня (TLD), за исключением локальных / внутренних доменов.

 6. Сертификаты унифицированных коммуникаций (UCC)
Считаются мультидоменными SSL-сертификатами. Изначально были разработаны для защиты серверов Microsoft Exchange и Live Communications.
Контроллеры жестких дисков

Контроллер жестких дисков представляет собой сложнейшее устройство - микрокомпьютер, со своим процессором, ОЗУ и ПЗУ, схемами и системой ввода/вывода и т.п.. Однако, в большинстве случаев, производители размещают их в одном или двух микро-чипах.

Он занимается множеством операций преобразования потока данных. Так как длинна дорожек неравна, данные на различные дорожки необходимо записывать неравномерно. Это становится проблемой, по сравнению с гибкими дисками, для носителей с высокой плотностью записи. Простые контроллеры, как правило, записывают одно и тоже количество информации на каждую дорожку, независимо от ее длинны. Для этого контроллер упаковывает данные более плотно, начиная с определенной по счету дорожки.

Многие производители создают устройства, которые записывают различный объем информации на внутренние и внешние дорожки за счет размещения на них разного числа секторов. Это возможно, благодаря аппаратному скрытию от программ и пользователя физических характеристик устройства на уровне его контроллера и/или интерфейса
Основные различия между IPv4 и IPv6:

1. Адресная разрядность:
• IPv4 использует 32-битные адреса и поддерживает около 4,3 миллиарда уникальных адресов.
• IPv6 использует 128-битные адреса и обеспечивает гораздо большее количество уникальных адресов, практически неограниченное количество.

2. Формат адреса:
• IPv4 адреса записываются в десятичной системе, разделенные точками, например, 192.168.1.1.
• IPv6 адреса записываются в шестнадцатеричной системе, разделенные двоеточиями, например, 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

3. Поддержка и распространение:
• IPv4 широко используется в настоящее время, но из-за ограниченного количества адресов возникает проблема исчерпания адресов.
• IPv6 разработан для решения проблемы исчерпания адресов IPv4 и постепенно внедряется в сети.

4. Безопасность и другие функции:
• IPv6 включает в себя встроенные функции безопасности, такие как IPsec, что делает его более безопасным и защищенным по сравнению с IPv4.
• IPv6 также поддерживает более эффективную маршрутизацию и улучшенную поддержку качества обслуживания (QoS).
Что такое прерывания?

Прерывание — одна из базовых концепций вычислительной техники, которая заключается в том, что при наступлении какого-либо события происходит передача управления специальной процедуре, называемой обработчиком прерываний.

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

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

Они бывают асинхронные, синхронные и программные.
В зависимости от источника возникновения сигнала прерывания делятся на:

1) асинхронные, или внешние — события, которые исходят от внешних аппаратных устройств (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание: устройства сообщают, что они требуют внимания со стороны ОС;

2) синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции;

3) программные — инициируются исполнением специальной инструкции в коде программы. Программные прерывания, как правило, используются для обращения к функциям встроенного программного обеспечения, драйверов и операционной системы.
Главная загрузочная запись (MBR)

Нулевой сектор физического жёсткого диска содержит так называемую главную загрузочную запись (MBR — Master Boot Record). При начальной загрузке компьютера с жёсткого диска BIOS считывает этот сектор в оперативную память и передаёт управление содержащемуся в нём коду начального загрузчика.

MBR логически можно разделить на три области: код начального загрузчика, таблицу разделов и сигнатуру — слово со значением AA55h, занимающее последние два байта MBR. BIOS проверяет сигнатуру, чтобы убедиться в корректности MBR; если сигнатура не равна указанному значению, загрузка не выполнения и выдаётся сообщение об ошибке. 

Начальный загрузчик, находящийся в MBR, в общем случае определяет, какой из разделов диска является активным, загружает в память первый сектор этого раздела и передаёт ему управление.
Таблица разделов

Таблица разделов — часть главной загрузочной записи (MBR), состоящая из четырёх записей по 16 байт. Каждая запись описывает один из разделов жёсткого диска. Первая запись находится по смещению 1BEh от начала сектора, содержащего MBR, каждая последующая запись вплотную примыкает к предыдущей.

Для создания на диске более 4 разделов используются расширенные разделы, позволяющие создать неограниченное количество логических дисков внутри себя.

Адреса начала и конца раздела задаются в формате CHS, используемом традиционными функциями дискового сервиса BIOS, из-за чего номер цилиндра разорван на две части: старшие два бита хранятся в двух старших битах слова, отведённого под номера цилиндра и сектора; за ними следуют шесть бит номера сектора, а младшие восемь бит номера цилиндра занимают весь младший байт слова. Если задать корректный адрес с помощью формата CHS невозможно, все три байта полей начала и конца раздела должны содержать FFh
Что такое 3FA?

Трехфакторная аутентификация (3FA) — это тип аутентификации, который подтверждает личность пользователя с использованием трех различных факторов аутентификации:

Фактор знаний — что-то, что вы знаете (например, пароль, PIN-код, секретный вопрос)
⁃ Фактор владения — то, что у вас есть (например, смартфон с приложением для проверки подлинности, SIM-карту, ключ безопасности).
⁃ Фактор принадлежности — то, чем вы являетесь (например биометрические данные пользователя, например, сканирование отпечатков пальцев, распознавание лица, распознавание голоса).

Трехфакторная аутентификация требует от пользователя демонстрации всех трех факторов аутентификации для успешного завершения аутентификации и получения доступа к своей учетной записи.
Что лучше для представления графа — матрица или список?

Лучше использовать матрицы, если:
 ⁃ число вершин графа невелико;
 ⁃ число рёбер графа относительно большое;
 ⁃ в алгоритме часто требуется проверять, соединены ли между собой две вершины;
 ⁃ в алгоритме используются фундаментальные понятия теории графов, например, связность графа.

Списки инцидентности целесообразнее использовать когда:
 ⁃ число вершин графа велико;
 ⁃ число рёбер графа относительно невелико;
 ⁃ граф формируется по какой-либо модели;
 ⁃ во время действия алгоритма часто требуется модифицировать граф;
 ⁃ в алгоритме часто используются локальные свойства вершин, например, например, окрестности вершин.

Таким образом, матрицы чаще используют в теоретических исследованиях графа, а списки — в прикладных целях.
Числовое программное управление

Числовое программное управление - область техники, связанная с применением цифровых вычислительных устройств для управления производственными процессами.

Структурно в состав ЧПУ входят:
- пульт оператора, позволяющий вводить управляющую программу, задавать режимы работы; выполнить операцию вручную.

- дисплей — для визуального контроля режимов работы и редактируемой управляющей программы/данных.

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

ПЗУ — память, предназначенная для долговременного хранения системных программ и констант; информация из ПЗУ может только считываться.

ОЗУ — память, предназначенная для временного хранения управляющих программ и системных программ, используемых в данный момент.
Виртуализация — технология, которая позволяет создавать и использовать виртуальные версии ресурсов, таких как серверы, сети и рабочие станции. Это достигается с помощью ПО, известного как гипервизор.

Гипервизор — это слой ПО, который позволяет запускать несколько операционных систем на одном физическом сервере как отдельные виртуальные машины (ВМ). Гипервизоры бывают двух типов:

Гипервизор типа 1 (или "bare-metal"): Эти гипервизоры устанавливаются непосредственно на аппаратное обеспечение. Примеры включают VMware ESXi, Microsoft Hyper-V и Xen.

Гипервизор типа 2 (или "hosted"): Эти гипервизоры работают на операционной системе хоста, как обычное приложение. Примеры включают VMware Workstation и Oracle VirtualBox.
Что такое хвостовая рекурсия?

Хвостовая рекурсия - это способ рекурсивной функции, в котором вызов функции является последней операцией в теле функции.

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

Пример хвостовой рекурсии в языках программирования, поддерживающих оптимизацию хвостовой рекурсии, таких как Scheme или Clojure, может быть таким:
(define (factorial-iter n acc)
(if (<= n 1)
acc
(factorial-iter (- n 1) (* acc n))))

(define (factorial n)
(factorial-iter n 1))
Сегментная адресация памяти

Сегментация - это деление памяти на сегменты.

Это механизм адресации, обеспечивающий существование нескольких независимых адресных пространств как в пределах одной задачи, так и в системе в целом для защиты задач от взаимного влияния.

С точки зрения разработчиков ПО, сегментация дает удобный способ совместного использования информации несколькими процессами. Конкретный сегмент может использоваться совместно с другими без нарушения требований его защиты.

Сегментация также предполагает естественное разделение программных строк и данных и отделение модуля от модуля.
Звукообработка — это процесс изменения звуковых сигналов для достижения определенных звуковых эффектов или улучшения качества звука.

Несколько основных принципов звукообработки:

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

Компрессия: Этот процесс уменьшает разницу между самыми тихими и самыми громкими частями аудиосигнала. Он используется для контроля уровней громкости и создания более уравновешенного звучания.

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

Дилэй: Эффект, задерживающий звуковой сигнал, создавая эхо или отклик. Может использоваться для создания эффектов пространства или для усиления звучания.

Фильтрация: Применение фильтров для усиления или ослабления определенных частот сигнала.

Стереообработка: Работа со стерео-изображением, включающая панорамирование (размещение звука между левым и правым каналами), создание пространственных эффектов и другие техники для улучшения пространственного восприятия звука.
Человеко-машинный интерфейс

Человеко-машинный интерфейс(ЧМИ) — широкое понятие, охватывающее инженерные решения, обеспечивающие взаимодействие человека-оператора с управляемыми им машинами.

Создание систем человеко-машинного интерфейса тесно увязано с понятиями эргономика и юзабилити.

Проектирование ЧМИ включает в себя:

- создание рабочего места: кресла, стола, или пульта управления, размещение приборов и органов управления и освещение рабочего места.

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

Одной из наиболее сложных задач является создание эффективного ЧМИ рабочих мест сложных машин с множеством органов управления, например пилотов самолёта и космических кораблей.

В промышленных условиях ЧМИ чаще всего реализуется с использованием типовых средств: операторских панелей, компьютеров и типового программного обеспечения.
Автоматизированная система управления

Сокращённо АСУ — комплекс аппаратных и программных средств, а также персонала, предназначенный для управления различными процессами в рамках технологического процесса, производства, предприятия.

Важнейшая задача АСУ — повышение эффективности управления объектом на основе роста производительности труда и совершенствования методов планирования процесса управления.

Таким образом, можно выделить ряд целей:
- Предоставление лицу, принимающему решение (ЛПР), релевантных данных для принятия решений.- Ускорение выполнения отдельных операций по сбору и обработке данных.
- Снижение количества решений, которые должно принимать ЛПР.- Повышение уровня контроля и исполнительской дисциплины.
- Повышение оперативности управления.- Снижение затрат ЛПР на выполнение вспомогательных процессов.
- Повышение степени обоснованности принимаемых решений.
Примеры нормализации баз данных

1. CRM-системы (Управление взаимоотношениями с клиентами):
• Исходные данные: таблица Клиенты с полями Имя, Фамилия, Телефон, Адрес, Заказы.
• Нормализация: разделение на таблицы Клиенты (с полями Имя, Фамилия, Телефон, Адрес) и Заказы (с полями ID_клиента, Дата_заказа, Сумма_заказа), чтобы избежать дублирования информации о клиенте при каждом новом заказе.

2. Интернет-магазины:
• Исходные данные: таблица Товары с полями Название, Описание, Цена, Категория, Производитель.
• Нормализация: создание отдельных таблиц Категории (с полями ID_категории, Название_категории) и Производители (с полями ID_производителя, Название_производителя), что позволяет уменьшить избыточность и упростить обновление информации о категориях и производителях.

3. Библиотечные системы:
• Исходные данные: таблица Книги с полями Название, Автор, Жанр, Год_издания, Издательство.
• Нормализация: разделение на таблицы Книги (с полями Название, Год_издания), Авторы (с полями ID_автора, Имя_автора), Жанры (с полями ID_жанра, Название_жанра) и Издательства (с полями ID_издательства, Название_издательства), что облегчает поиск и управление данными.

4. Учет рабочего времени:
• Исходные данные: таблица Табель с полями Сотрудник, Дата, Часы_работы, Проект.
• Нормализация: создание таблиц Сотрудники (с полями ID_сотрудника, Имя, Фамилия), Проекты (с полями ID_проекта, Название_проекта) и Табель (с полями ID_сотрудника, Дата, Часы_работы, ID_проекта), что позволяет точно отслеживать время, затраченное на разные проекты.
LOLCODE — это уникальный язык программирования, основанный на интернет-меме "LOLcats". Программы на LOLCODE выглядят как текст на "языке" LOLcats.

Пример простой программы на LOLCODE, которая выводит "Hello World!":

HAI 1.2
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE

HAI 1.2начало программы, указывающее версию языка.
CAN HAS STDIO?импорт стандартной библиотеки ввода-вывода.
VISIBLE "HAI WORLD!"вывод строки "HAI WORLD!" на экран.
KTHXBYEзавершение программы.

Текст на "языке" LOLcats обычно выглядит как забавные и искаженные фразы, часто сопровождаемые изображениями кошек.

I CAN HAS CHEEZBURGER?
OH HAI! U CAN HAS CHEEZBURGER!

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

Основные методы процедурной графики:

1. Фракталы:
Геометрические фигуры, которые повторяются на разных масштабах. Они используются для создания природных объектов, таких как горы, деревья и облака. Примером фрактала является множество Мандельброта.


2. Шум Перлина:
Метод генерации псевдослучайных значений, который используется для создания текстур и поверхностей. Он часто применяется для моделирования природных явлений, таких как земля, вода и огонь.


3. L-системы:
(Системы Линдемаера) — это формальные грамматики, используемые для моделирования роста растений и других органических структур. Они позволяют создавать сложные и реалистичные модели деревьев, кустарников и других растений.


4. Процедурные текстуры:
Создаются с использованием математических функций и алгоритмов. Они могут быть использованы для создания разнообразных поверхностей, таких как дерево, камень, металл и ткань.


5. Процедурная анимация:
Использует алгоритмы для автоматического создания движений и деформаций объектов. Это позволяет создавать реалистичные анимации без необходимости ручного управления каждым кадром.


Пример кода на Python для генерации шума Перлина:
import numpy as np
import matplotlib.pyplot as plt

def perlin_noise(size, scale):
def f(t):
return 6*t**5 - 15*t**4 + 10*t**3

def lerp(a, b, t):
return a + t * (b - a)

def gradient(h, x, y):
vectors = np.array([[0,1], [0,-1], [1,0], [-1,0]])
g = vectors[h % 4]
return g[:, :, 0] * x + g[:, :, 1] * y

lin = np.linspace(0, scale, size, endpoint=False)
x, y = np.meshgrid(lin, lin)
p = np.arange(256, dtype=int)
np.random.shuffle(p)
p = np.stack([p, p]).flatten()
xi = x.astype(int)
yi = y.astype(int)
xf = x - xi
yf = y - yi
u = f(xf)
v = f(yf)
n00 = gradient(p[p[xi]+yi], xf, yf)
n01 = gradient(p[p[xi]+yi+1], xf, yf-1)
n11 = gradient(p[p[xi+1]+yi+1], xf-1, yf-1)
n10 = gradient(p[p[xi+1]+yi], xf-1, yf)
x1 = lerp(n00, n10, u)
x2 = lerp(n01, n11, u)
return lerp(x1, x2, v)

size = 512
scale = 10
noise = perlin_noise(size, scale)
plt.imshow(noise, cmap='gray')
plt.colorbar()
plt.show()


Этот код генерирует изображение шума Перлина размером 512x512 пикселей и отображает его с помощью библиотеки Matplotlib.
Доменные имена — уникальные адреса, используемые для идентификации веб-сайтов в интернете. Служат для упрощения доступа к ресурсам, так как запомнить доменное имя гораздо проще, чем числовой IP-адрес. Доменные имена состоят из нескольких частей, разделенных точками, иерархически организованных от правого к левому.

Основные компоненты доменного имени:

Корневой домен:
Самая правая часть доменного имени, обычно обозначается точкой ("."). В большинстве случаев пользователи не видят корневой домен, так как он подразумевается автоматически.

Домен верхнего уровня (TLD):
Часть доменного имени, следующая сразу за корневым доменом. Примеры TLD включают .com, .org, .net, .ru и многие другие. Существуют также новые TLD, такие как .tech, .store и т.д.

Домен второго уровня:
Это часть доменного имени, расположенная слева от TLD. Например, в доменном имени example.com, "example" является доменом второго уровня.

Поддомены:
Это части доменного имени, расположенные слева от домена второго уровня. Например, в доменном имени blog.example.com, "blog" является поддоменом.

Пример структуры доменного имени:

www.example.com
│ │ │
│ │ └ Домен второго уровня
│ └ Поддомен
└ Префикс (необязательный)

Регистрация доменных имен осуществляется через аккредитованных регистраторов доменов. Процесс регистрации включает выбор доступного доменного имени и его оплату на определенный период времени (обычно от одного года и более).

DNS (Domain Name System) — система, которая переводит доменные имена в IP-адреса, необходимые для маршрутизации запросов в интернете. Когда пользователь вводит доменное имя в браузере, DNS-серверы выполняют поиск соответствующего IP-адреса и направляют запрос к нужному серверу.