Я постараюсь помочь:
1 )Механизм протокола SSL — это именно тот механизм, который управляет протоколом SSL (, также известным как HTTPS ). Этот движок предоставляется модом _ssl, но он не включен по умолчанию, так как это потребует дополнительных ресурсов. Он настолько сильно отличается от протокола HTTP, что ему потребовалось собственное обозначение HTTPS
.2 )Открытие порта 443 и включение SSLEngine происходит только из-за того, что сопровождающие вашей операционной системы упаковывают эту конфигурацию в пакет mod _ssl. При сборке и установке Apache непосредственно из исходного кода поведение по умолчанию соответствует описанию в документации.
3 )Файл ssl.conf предоставляется сопровождающими вашего дистрибутива, ни Apache, ни документация Apache ничего о нем не знают, поэтому они просто документируют значения по умолчанию. Я не уверен, что это за содержимое для вашей системы, но, скорее всего, вы должны включить его в каждый из ваших виртуальных хостов, поскольку в документации Apache указано, что SSLEngine следует использовать внутри конфигурации виртуального хоста. Его нужно включить в каждом виртуальном хосте, чтобы не потреблять ресурсы там, где он не нужен.
4 )Если у вас так работает, то, скорее всего, это очередное удобство, предоставляемое вашей операционной системой. Apache понятия не имеет, как каждая операционная система будет настраивать Apache в своих пакетах, поэтому они описывают только самое основное поведение по умолчанию. Вы можете просмотреть все файлы конфигурации Apache, предоставленные вашим дистрибутивом, и посмотреть, как каждый из них влияет на поведение Apache, таким образом вы можете многому научиться.
What I specifically want know here is irrespective of the underlying hardwares it is on how Linux kernel manages to work on all different pcs
Прежде всего, ядро может работать на любом ПК, если оно скомпилировано для этой конкретной архитектуры. С вашими компьютерами общего назначения архитектура, как правило, одна и та же (x86 _64/amd64 ), но она меняется, когда вы имеете дело со встроенными устройствами.
За исключением компиляции, само ядро не зависит от аппаратного обеспечения. Дарю тебе устройство -дерево !
Ядро linux заботится о -недоступном для обнаружения оборудовании через дерево устройств -. Это сообщает ядру информацию о процессоре, памяти, шинах, устройствах, подключенных через I2C, SPI и т. д. Вместо того, чтобы жестко -запрограммировать компоновку устройства, ее можно изменить с помощью дерева устройств -. Это все действительно волшебно, когда вы это понимаете. Дерево устройств -также сообщает ядру, какой драйвер следует использовать для конкретного устройства, через параметр compatible
.
Дерево устройств -может храниться самыми разными способами в зависимости от того, как было скомпилировано ядро, но обычно иерархию можно увидеть в /proc/device-tree
или /sys/firmware/devicetree/base
.
Для таких вещей, как USB-устройства, обо всем позаботится драйвер USB. В ядре есть базовый код для управления такими вещами, как клавиатура и мышь. У некоторых поставщиков есть специальные драйверы, которые затем поставляются с устройством.
Для драйверов ядро Linux использует так называемые модули ядра . Все модули можно найти в разделе /lib/modules
. Существует два типа модулей: :загружаемые модули и встроенные -модули.Вы можете просмотреть все загруженные модули с помощью команды lsmod
. Когда ядро находит определенное устройство в дереве устройств -или даже когда вы подключаете устройство к периферийному устройству, оно проверяет, есть ли модуль, который оно может загрузить для этого устройства, и этот модуль становится драйвером для этого устройства..
Преимущество загружаемых модулей заключается в том, что они уменьшают размер образа ядра. Модули можно компилировать отдельно. Встроенные -модули компилируются в ядро, что увеличивает фактический размер образа. Вы также можете компилировать и загружать модули в ядро во время его работы, но это совсем другая тема.
Вы попадаете в (пакет поддержки плат BSP ), когда поставщик поставляет ядро и набор специальных модулей для своего оборудования (, включая процессор и подключенное оборудование ). Иногда поставщики вносят изменения в существующие модули или поставляют пользовательские модули с ядром. Некоторые поставщики вносят изменения в само ядро, и весь этот пользовательский пакет становится BSP. Это часто происходит во встроенном мире.
HAL (Уровень аппаратной абстракции )может быть синонимом BSP. Я не видел, чтобы он так часто использовался в мире Linux, но когда вы попадаете в микроконтроллеры, он используется довольно часто. По сути, HAL — это набор библиотек, используемых для доступа к оборудованию, что значительно упрощает взаимодействие с оборудованием. Например, с чипом Wi-Fi он даст вам базовые процедуры для подключения к точке доступа, сканирования сети, создания точки доступа и т. д. В этом смысле он действует как драйвер.