Межсайтовый скриптинг и как он работает?
XSS — распространенный тип веб-атаки, заключающийся во внедрении на страницу сайта или приложения вредоносного кода. Когда пользователь открывает пораженную страницу, внедренный скрипт взаимодействует с удаленным сервером злоумышленника.
Один из механизмов обеспечения безопасности в интернете — правило ограничения домена. Оно означает, что вредоносный код на одном сайте не сможет навредить другому сайту или его пользователям из-за ограничения доступа на другом домене.
Но это в идеале, а на практике у веб-приложений и сайтов есть множество уязвимостей.
Воспользовавшись ими, злоумышленник может взломать ресурс и внедрить на него вредоносный скрипт. При этом он будет восприниматься как часть родного кода, написанного разработчиком. Таким образом, ресурс, на котором размещается вредоносный скрипт, становится соучастником атаки.
XSS — распространенный тип веб-атаки, заключающийся во внедрении на страницу сайта или приложения вредоносного кода. Когда пользователь открывает пораженную страницу, внедренный скрипт взаимодействует с удаленным сервером злоумышленника.
Один из механизмов обеспечения безопасности в интернете — правило ограничения домена. Оно означает, что вредоносный код на одном сайте не сможет навредить другому сайту или его пользователям из-за ограничения доступа на другом домене.
Но это в идеале, а на практике у веб-приложений и сайтов есть множество уязвимостей.
Воспользовавшись ими, злоумышленник может взломать ресурс и внедрить на него вредоносный скрипт. При этом он будет восприниматься как часть родного кода, написанного разработчиком. Таким образом, ресурс, на котором размещается вредоносный скрипт, становится соучастником атаки.
Internet Key Exchange или IKE
Internet Key Exchange (IKE) — безопасный протокол управления ключами, используемый для того, чтобы создать безопасный канал аутентификации связи между двумя устройствами.
Функции IKE:
⁃ Согласование и управление IKE параметрами IPsec
⁃ Аутентификация защищенного обмена ключами
⁃ Обеспечивает аутентификацию взаимного равноправного узла с помощью общих секретов и открытых ключей
⁃ Обеспечивает защиту идентификации.
⁃ Применяет методы Diffie-Hellman и является необязательным в IPsec.
Есть две версии стандартов: IKE и IKE 2. Преимущества второй версии над первой в том, что она уменьшает задержку установки SA IPSec, увеличивает скорость установления соединения и улучшает надежность, так как все сообщения являются запросами или ответами.
Internet Key Exchange (IKE) — безопасный протокол управления ключами, используемый для того, чтобы создать безопасный канал аутентификации связи между двумя устройствами.
Функции IKE:
⁃ Согласование и управление IKE параметрами IPsec
⁃ Аутентификация защищенного обмена ключами
⁃ Обеспечивает аутентификацию взаимного равноправного узла с помощью общих секретов и открытых ключей
⁃ Обеспечивает защиту идентификации.
⁃ Применяет методы Diffie-Hellman и является необязательным в IPsec.
Есть две версии стандартов: IKE и IKE 2. Преимущества второй версии над первой в том, что она уменьшает задержку установки SA IPSec, увеличивает скорость установления соединения и улучшает надежность, так как все сообщения являются запросами или ответами.
Язык структурированных запросов
SQL или Structured Query Language — это язык программирования, предназначенный для управления данными в СУБД (система управления базами данных).
Используется в любой программе и на любом сайте, где идет работа с базами данных. SQL — связующее звено, которое обеспечивает взаимодействие приложения или сайта с базой данных и информацией, которая там хранится.
С помощью SQL можно:
⁃ создавать таблицы данных;
⁃ получать, изменять и хранить данные;
⁃ выполнять вычисления;
⁃ обеспечивать защиту данных;
⁃ администрировать сервер СУБД.
SQL или Structured Query Language — это язык программирования, предназначенный для управления данными в СУБД (система управления базами данных).
Используется в любой программе и на любом сайте, где идет работа с базами данных. SQL — связующее звено, которое обеспечивает взаимодействие приложения или сайта с базой данных и информацией, которая там хранится.
С помощью SQL можно:
⁃ создавать таблицы данных;
⁃ получать, изменять и хранить данные;
⁃ выполнять вычисления;
⁃ обеспечивать защиту данных;
⁃ администрировать сервер СУБД.
SQL-инъекция
SQL-инъекция — атаки, позволяющие злоумышленнику запускать любой SQL-код в базе данных и производить различные несанкционированные действия над базой данных. Они могут затрагивать как сами данные, так и структуру базы.
Одной из важнейших задач при обеспечении устойчивости приложения к SQL-инъекциям является поиск фрагментов кода, которые могут быть уязвимы к данному виду атак. Многие разработчики используют для этих целей различные инструменты, производящие taint-анализ.
Помимо инъекций, есть другие уязвимости, вызванные плохой обработкой входных данных. Всегда нужно проверять не только содержимое, но и размеры данных извне, которые вы пропускаете в свою систему.
SQL-инъекция — атаки, позволяющие злоумышленнику запускать любой SQL-код в базе данных и производить различные несанкционированные действия над базой данных. Они могут затрагивать как сами данные, так и структуру базы.
Одной из важнейших задач при обеспечении устойчивости приложения к SQL-инъекциям является поиск фрагментов кода, которые могут быть уязвимы к данному виду атак. Многие разработчики используют для этих целей различные инструменты, производящие taint-анализ.
Помимо инъекций, есть другие уязвимости, вызванные плохой обработкой входных данных. Всегда нужно проверять не только содержимое, но и размеры данных извне, которые вы пропускаете в свою систему.
Taint-анализ — что это?
Taint-анализ — это технология, позволяющая отслеживать распространение непроверенных внешних данных по программе во время её работы.
Попадание таких данных в некоторые ключевые точки может приводить к возникновению различных уязвимостей, среди которых SQL injection, cross-site scripting (XSS), path traversal и тд. Эти уязвимости могут быть использованы злоумышленником для нарушения корректной работы системы, получения конфиденциальных данных или проведения прочих несанкционированных операций.
С точки зрения taint-анализа, приложение уязвимо в случае, если заражённые данные могут попасть в некоторые ключевые точки приложения. Их называют приёмниками заражения (taint sink). Каждой потенциальной уязвимости соответствуют свои приёмники. Например, для SQL injection приёмником может являться точка передачи строки запроса в объект SQL команды.
Taint-анализ — это технология, позволяющая отслеживать распространение непроверенных внешних данных по программе во время её работы.
Попадание таких данных в некоторые ключевые точки может приводить к возникновению различных уязвимостей, среди которых SQL injection, cross-site scripting (XSS), path traversal и тд. Эти уязвимости могут быть использованы злоумышленником для нарушения корректной работы системы, получения конфиденциальных данных или проведения прочих несанкционированных операций.
С точки зрения taint-анализа, приложение уязвимо в случае, если заражённые данные могут попасть в некоторые ключевые точки приложения. Их называют приёмниками заражения (taint sink). Каждой потенциальной уязвимости соответствуют свои приёмники. Например, для SQL injection приёмником может являться точка передачи строки запроса в объект SQL команды.
Виды XSS-уязвимостей
⁃ Хранимые: возникают, когда злоумышленнику удается получить доступ к серверу и сохранить на нем вредоносный код. Такой сохраненный скрипт будет активироваться каждый раз, когда пользователь заходит на зараженную страницу.
⁃ Отраженные: наиболее распространенный сегодня тип XSS-атак. Их смысл в том, что злоумышленник прячет вредоносный код в заранее подготовленной ссылке, которую потом передает пользователям. Когда пользователь переходит по ней, серверные скрипты исполняют ее код без обработки и возвращают его в виде ответа. Браузер пользователя исполняет зараженный скрипт, а злоумышленник получает cookies жертвы.
⁃ DOM-модель: суть уязвимости — в использовании Document Object Model (программный интерфейс, дающий программам доступ к контенту HTML-, XHTML- и XML-документов и возможность этим содержанием управлять). Главная особенность — сама страница сайта или веб-приложения не меняется, но меняется ее отображение в браузере пользователя из-за вредоносных модификаций DOM.
⁃ Хранимые: возникают, когда злоумышленнику удается получить доступ к серверу и сохранить на нем вредоносный код. Такой сохраненный скрипт будет активироваться каждый раз, когда пользователь заходит на зараженную страницу.
⁃ Отраженные: наиболее распространенный сегодня тип XSS-атак. Их смысл в том, что злоумышленник прячет вредоносный код в заранее подготовленной ссылке, которую потом передает пользователям. Когда пользователь переходит по ней, серверные скрипты исполняют ее код без обработки и возвращают его в виде ответа. Браузер пользователя исполняет зараженный скрипт, а злоумышленник получает cookies жертвы.
⁃ DOM-модель: суть уязвимости — в использовании Document Object Model (программный интерфейс, дающий программам доступ к контенту HTML-, XHTML- и XML-документов и возможность этим содержанием управлять). Главная особенность — сама страница сайта или веб-приложения не меняется, но меняется ее отображение в браузере пользователя из-за вредоносных модификаций DOM.
Взаимодействие между IKE и IPSec
IPsec может установить VPN следующим способом:
1. Internet Key Exchange (IKE) протокол IPsec поддерживает автоматическое генерацию и согласование ключей и ассоциаций безопасности с помощью IKE протоколом. Использование IKE при согласовании VPN между двумя конечными точками обеспечивает более безопасность, чем при обмене ключами вручную.
2. Обмен ключами вручную — IPsec поддерживает использование и обмен ключами вручную (пример: телефон или электронная почта) для установления VPN на обеих сторонах.
IPsec может установить VPN следующим способом:
1. Internet Key Exchange (IKE) протокол IPsec поддерживает автоматическое генерацию и согласование ключей и ассоциаций безопасности с помощью IKE протоколом. Использование IKE при согласовании VPN между двумя конечными точками обеспечивает более безопасность, чем при обмене ключами вручную.
2. Обмен ключами вручную — IPsec поддерживает использование и обмен ключами вручную (пример: телефон или электронная почта) для установления VPN на обеих сторонах.
Какой язык лучше всего подходит для анализа данных?
Аналитик данных сейчас одна из самых востребованных профессий. Существует очень много языков программирования, которые можно использовать в этой области, самые популярные из них:
1. Python
Универсальный язык, широко используемый в сообществе специалистов по науке о данных и аналитике. Его легко выучить, а низкий входной барьер также делает его идеальным первым языком для тех, кто плохо знаком с областью науки о данных и аналитики.
2. Язык R
Язык R был выпущен Фондом R для статистических вычислений. Его широкое распространение как специалистами по обработке данных, так и аналитиками объясняется тем, что у него есть пакет практически для всех мыслимых количественных и статистических приложений. К ним относятся филогенетика, нейронные сети, нелинейная регрессия, расширенное построение графиков и т.д
3. Julia
Хоть это и довольно молодой язык и в нем меньше готовых «рецептов», он уже стал фаворитом в сообществе аналитиков данных. Julia предлагает своим разработчикам простоту, динамическую типизацию и возможности создания сценариев.
Аналитик данных сейчас одна из самых востребованных профессий. Существует очень много языков программирования, которые можно использовать в этой области, самые популярные из них:
1. Python
Универсальный язык, широко используемый в сообществе специалистов по науке о данных и аналитике. Его легко выучить, а низкий входной барьер также делает его идеальным первым языком для тех, кто плохо знаком с областью науки о данных и аналитики.
2. Язык R
Язык R был выпущен Фондом R для статистических вычислений. Его широкое распространение как специалистами по обработке данных, так и аналитиками объясняется тем, что у него есть пакет практически для всех мыслимых количественных и статистических приложений. К ним относятся филогенетика, нейронные сети, нелинейная регрессия, расширенное построение графиков и т.д
3. Julia
Хоть это и довольно молодой язык и в нем меньше готовых «рецептов», он уже стал фаворитом в сообществе аналитиков данных. Julia предлагает своим разработчикам простоту, динамическую типизацию и возможности создания сценариев.
Нормальная форма Бойса-Кодда
Между 3 и 4 нормальной формой есть еще и промежуточная нормальная форма — нормальная форма Бойса-Кодда (BCNF) (иногда называют «Усиленная третья нормальная форма»). Промежуточной или усиленной третьей нормальной формой ее называют потому, что ситуации, в которых могут предъявляться требования BCNF, возникают не всегда.
Требования нормальной формы Бойса-Кодда:
⁃ Таблица должна находиться в третьей нормальной форме. Здесь все как обычно, т.е. как и у всех остальных нормальных форм, первое требование заключается в том, чтобы таблица находилась в предыдущей нормальной форме, в данном случае в третьей нормальной форме;
⁃ Ключевые атрибуты составного ключа не должны зависеть от неключевых атрибутов.
Главное правило: Часть составного первичного ключа не должна зависеть от неключевого столбца.
Между 3 и 4 нормальной формой есть еще и промежуточная нормальная форма — нормальная форма Бойса-Кодда (BCNF) (иногда называют «Усиленная третья нормальная форма»). Промежуточной или усиленной третьей нормальной формой ее называют потому, что ситуации, в которых могут предъявляться требования BCNF, возникают не всегда.
Требования нормальной формы Бойса-Кодда:
⁃ Таблица должна находиться в третьей нормальной форме. Здесь все как обычно, т.е. как и у всех остальных нормальных форм, первое требование заключается в том, чтобы таблица находилась в предыдущей нормальной форме, в данном случае в третьей нормальной форме;
⁃ Ключевые атрибуты составного ключа не должны зависеть от неключевых атрибутов.
Главное правило: Часть составного первичного ключа не должна зависеть от неключевого столбца.
Инфраструктура открытых ключей
PKI предоставляет способ проверки идентификации удаленного сайта с помощью цифрового сертификата.
Она предоставляет инфраструктуру для управления цифровыми сертификатами и состоит из:
⁃ Орган регистрации (RA) — проверяет подлинности предприятий, авторизует их запросы сертификатов и создает уникальные асимметричные пары ключей.
⁃ Орган сертификации (CA) — выпускает соответствующие цифровые сертификаты для запрашивающих предприятий.
⁃ Список отзыва сертификатов (CRL) — определяет действительные сертификаты. Каждый объект, обладающий аутентификацией открытого ключа CA, может проверить сертификаты, выданные этим CA.
PKI предоставляет способ проверки идентификации удаленного сайта с помощью цифрового сертификата.
Она предоставляет инфраструктуру для управления цифровыми сертификатами и состоит из:
⁃ Орган регистрации (RA) — проверяет подлинности предприятий, авторизует их запросы сертификатов и создает уникальные асимметричные пары ключей.
⁃ Орган сертификации (CA) — выпускает соответствующие цифровые сертификаты для запрашивающих предприятий.
⁃ Список отзыва сертификатов (CRL) — определяет действительные сертификаты. Каждый объект, обладающий аутентификацией открытого ключа CA, может проверить сертификаты, выданные этим CA.
Активные и пассивные XSS-уязвимости
XSS-уязвимости различаются по степени активности:
Активные уязвимости — это такие уязвимости, которые действуют сами независимо от активности пользователя. То есть, как только пользователь попадает на зараженную страницу, вредоносный скрипт запускается автоматически. Например, такие уязвимости встраиваются в базы данных или исполняемые файлы на сервере, в формы ввода (с помощью автоматических обработчиков событий) и т.д.
В то время как в пассивных для активации вредоносного кода пользователь должен совершить какое-то действие: ввести запрос, кликнуть ссылку. Чтобы это произошло, злоумышленник должен как-то его заставить, спровоцировать или замотивировать. Здесь в ход идут методы социальной инженерии — например, фишинг.
XSS-уязвимости различаются по степени активности:
Активные уязвимости — это такие уязвимости, которые действуют сами независимо от активности пользователя. То есть, как только пользователь попадает на зараженную страницу, вредоносный скрипт запускается автоматически. Например, такие уязвимости встраиваются в базы данных или исполняемые файлы на сервере, в формы ввода (с помощью автоматических обработчиков событий) и т.д.
В то время как в пассивных для активации вредоносного кода пользователь должен совершить какое-то действие: ввести запрос, кликнуть ссылку. Чтобы это произошло, злоумышленник должен как-то его заставить, спровоцировать или замотивировать. Здесь в ход идут методы социальной инженерии — например, фишинг.
Расширения безопасности DNS
Для понимания протокола DNSSEC (расширения безопасности системы доменных имен) важно иметь общее представление о DNS.
Протокол DNSSEC позволяет повысить надёжность проверки подлинности в DNS при помощи цифровых подписей, основанных на криптографии открытого ключа. При использовании DNSSEC не запросы и ответы DNS подписываются криптографически, а сами данные DNS подписываются владельцем этих данных.
Применение DNSSEC позволяет обеспечить две важные функции в DNS:
⁃ Проверка подлинности источника данных позволяет резолверу криптографически проверить, действительно ли полученные данные поступили из той зоны, откуда, как он считает, они произошли.
⁃ Проверка целостности данных позволяет резолверу проверить, не были ли эти данные изменены при передаче, после того как владелец зоны подписал их закрытым ключом этой зоны.
Для понимания протокола DNSSEC (расширения безопасности системы доменных имен) важно иметь общее представление о DNS.
Протокол DNSSEC позволяет повысить надёжность проверки подлинности в DNS при помощи цифровых подписей, основанных на криптографии открытого ключа. При использовании DNSSEC не запросы и ответы DNS подписываются криптографически, а сами данные DNS подписываются владельцем этих данных.
Применение DNSSEC позволяет обеспечить две важные функции в DNS:
⁃ Проверка подлинности источника данных позволяет резолверу криптографически проверить, действительно ли полученные данные поступили из той зоны, откуда, как он считает, они произошли.
⁃ Проверка целостности данных позволяет резолверу проверить, не были ли эти данные изменены при передаче, после того как владелец зоны подписал их закрытым ключом этой зоны.
Exploratory data analysis (EDA)
Исследовательский анализ данных (EDA) предназначен для того, чтобы увидеть, что данные могут сказать нам помимо формального моделирования, и тем самым противопоставить традиционную проверку гипотез.
EDA отличается от анализа исходных данных (IDA), тк фокусируется более узко на проверке предположений, необходимых для подбора модели и проверки гипотез, а также на обработке пропущенных значений и выполнении преобразований переменных по мере необходимости. EDA включает в себя IDA.
Цели EDA:
⁃ максимальное «проникновение» в данные,
⁃ выявление основных структур,
⁃ выбор наиболее важных переменных,
⁃ обнаружение отклонений и аномалий,
⁃ проверка основных гипотез,
⁃ разработка начальных моделей.
Исследовательский анализ данных (EDA) предназначен для того, чтобы увидеть, что данные могут сказать нам помимо формального моделирования, и тем самым противопоставить традиционную проверку гипотез.
EDA отличается от анализа исходных данных (IDA), тк фокусируется более узко на проверке предположений, необходимых для подбора модели и проверки гипотез, а также на обработке пропущенных значений и выполнении преобразований переменных по мере необходимости. EDA включает в себя IDA.
Цели EDA:
⁃ максимальное «проникновение» в данные,
⁃ выявление основных структур,
⁃ выбор наиболее важных переменных,
⁃ обнаружение отклонений и аномалий,
⁃ проверка основных гипотез,
⁃ разработка начальных моделей.
Глобальная таблица дескрипторов (GDT)
GDT — это структура данных, используемая семейством процессоров x86 для ссылки на дескрипторы сегментов.
Это особая часть основной памяти, используемая в защищенном режиме . В этом режиме, в отличие от реального режима , вы не можете получить доступ к какой-либо части памяти по своему желанию. Управление памятью в защищенном режиме сложнее, но дает много преимуществ, включая защиту адресного пространства каждой программы.
В защищенном режиме адреса сегментов, содержащиеся в регистрах сегментов CS, DS, ES и SS, по-прежнему имеют 16 бит, но больше не представляют собой физические местоположения. Регистры сегментов содержат «селекторы», часть из которых служит индексом в GDT, где описываются сегменты памяти.
Обращаясь к этой таблице, процессор принимает к сведению базовый адрес сегмента. Наконец, окончательный адрес определяется путем добавления смещения, заданного в форме указателя FAR, к найденному адресу.
GDT — это структура данных, используемая семейством процессоров x86 для ссылки на дескрипторы сегментов.
Это особая часть основной памяти, используемая в защищенном режиме . В этом режиме, в отличие от реального режима , вы не можете получить доступ к какой-либо части памяти по своему желанию. Управление памятью в защищенном режиме сложнее, но дает много преимуществ, включая защиту адресного пространства каждой программы.
В защищенном режиме адреса сегментов, содержащиеся в регистрах сегментов CS, DS, ES и SS, по-прежнему имеют 16 бит, но больше не представляют собой физические местоположения. Регистры сегментов содержат «селекторы», часть из которых служит индексом в GDT, где описываются сегменты памяти.
Обращаясь к этой таблице, процессор принимает к сведению базовый адрес сегмента. Наконец, окончательный адрес определяется путем добавления смещения, заданного в форме указателя FAR, к найденному адресу.
Что такое регистры?
Регистры — маленькие ячейки памяти, расположенные на процессоре, в которые помещаются инструкции из памяти для дальнейшего их выполнения.
Их роль заключается в хранении каких либо данных, начиная от указателей и индексов, заканчивая аналогом обычных переменных, хранящих данные функции.
Все они условно подразделяются на несколько основных групп:
1. Регистры общего назначения: AX, BX, CX, DX
2. Регистры указатели: SP, BP, IP
3. Индексные регистры: SI, DI
4. Сегменты регистры: CS, DS, SS, ES, GS, FS
5. Регистры управления: FLAGS
Регистры — маленькие ячейки памяти, расположенные на процессоре, в которые помещаются инструкции из памяти для дальнейшего их выполнения.
Их роль заключается в хранении каких либо данных, начиная от указателей и индексов, заканчивая аналогом обычных переменных, хранящих данные функции.
Все они условно подразделяются на несколько основных групп:
1. Регистры общего назначения: AX, BX, CX, DX
2. Регистры указатели: SP, BP, IP
3. Индексные регистры: SI, DI
4. Сегменты регистры: CS, DS, SS, ES, GS, FS
5. Регистры управления: FLAGS
Режим long mode
В x86-64 архитектуре компьютера, длинный режим — это режим, в котором 64-битная операционная система может получить доступ к 64-битным инструкциям и регистры .
64-битные программы выполняются в подрежиме, называемом 64-битным режимом, тогда как 32-битные программы и 16-битные программы защищенного режима выполняются в подрежиме, называемом режимом совместимости.
Режим совместимости позволяет запускать 32- и 16-разрядные приложения под управлением 64-разрядной операционной системы. К сожалению, старые 16-разрядные программы, работающие в виртуальном реальном режиме (например, DOS), не поддерживаются, а значит, их выполнение невозможно.
В x86-64 архитектуре компьютера, длинный режим — это режим, в котором 64-битная операционная система может получить доступ к 64-битным инструкциям и регистры .
64-битные программы выполняются в подрежиме, называемом 64-битным режимом, тогда как 32-битные программы и 16-битные программы защищенного режима выполняются в подрежиме, называемом режимом совместимости.
Режим совместимости позволяет запускать 32- и 16-разрядные приложения под управлением 64-разрядной операционной системы. К сожалению, старые 16-разрядные программы, работающие в виртуальном реальном режиме (например, DOS), не поддерживаются, а значит, их выполнение невозможно.
Что такое флэш-память?
Флэш-память представляет собой тип энергонезависимой памяти, которая стирает данные в единицах, называемых блоками, и перезаписывает данные на уровне байтов.
Флэш-память используется в корпоративных центрах обработки данных, серверах, системах хранения данных и сетевых технологиях, а также в широком спектре бытовых устройств, включая USB-накопители, также известные как карты памяти, SD-карты, мобильные телефоны, цифровые камеры, планшетные компьютеры.
Например, твердотельные накопители на основе флэш-памяти NAND часто используются для повышения производительности приложений с интенсивным вводом-выводом. Флэш-память NOR часто используется для хранения управляющего кода, такого как базовая система ввода-вывода (BIOS), в ПК.
Флэш-память также используется для вычислений в памяти, чтобы повысить производительность и масштабируемость систем, которые управляют и анализируют большие наборы данных.
Флэш-память представляет собой тип энергонезависимой памяти, которая стирает данные в единицах, называемых блоками, и перезаписывает данные на уровне байтов.
Флэш-память используется в корпоративных центрах обработки данных, серверах, системах хранения данных и сетевых технологиях, а также в широком спектре бытовых устройств, включая USB-накопители, также известные как карты памяти, SD-карты, мобильные телефоны, цифровые камеры, планшетные компьютеры.
Например, твердотельные накопители на основе флэш-памяти NAND часто используются для повышения производительности приложений с интенсивным вводом-выводом. Флэш-память NOR часто используется для хранения управляющего кода, такого как базовая система ввода-вывода (BIOS), в ПК.
Флэш-память также используется для вычислений в памяти, чтобы повысить производительность и масштабируемость систем, которые управляют и анализируют большие наборы данных.
Режим реальных адресов (16 разрядов)
Real-address mode — режим работы процессоров архитектуры x86, при котором используется сегментная адресация памяти.
В реальном режиме виртуальный адрес ячейки памяти состоит из двух чисел:
⁃ сегментной части разрядностью 16 бит, по которой вычисляется физический адрес начала сегмента;
⁃ смещения разрядностью 16 бит ячейки памяти от начала сегмента.
Для вычисления физического или линейного адреса ячейки памяти процессор вычисляет физический адрес начала сегмента — умножает сегментную часть виртуального адреса на число 16, а затем складывает полученное число со смещением от начала сегмента:
сегментная часть × 16 + смещение
Если сегментная часть адреса не указана (в коде инструкции), процессор читает сегментную часть адреса из одного из сегментных регистров (из какого именно — зависит от кода инструкции).
Real-address mode — режим работы процессоров архитектуры x86, при котором используется сегментная адресация памяти.
В реальном режиме виртуальный адрес ячейки памяти состоит из двух чисел:
⁃ сегментной части разрядностью 16 бит, по которой вычисляется физический адрес начала сегмента;
⁃ смещения разрядностью 16 бит ячейки памяти от начала сегмента.
Для вычисления физического или линейного адреса ячейки памяти процессор вычисляет физический адрес начала сегмента — умножает сегментную часть виртуального адреса на число 16, а затем складывает полученное число со смещением от начала сегмента:
сегментная часть × 16 + смещение
Если сегментная часть адреса не указана (в коде инструкции), процессор читает сегментную часть адреса из одного из сегментных регистров (из какого именно — зависит от кода инструкции).
Вычислительные процессы
Когда мы начинаем изучать computer science, самое первое, с чем мы сталкиваемся — это понятие вычислительного процесса — абстрактное существо, которое находится в компьютерах.
Развиваясь, процессы манипулируют абстракциями другого типа, которые называются данными. Эволюция процесса направляется набором правил, называемым программой.
Их нельзя увидеть или потрогать. Они вообще сделаны не из вещества. В то же время они совершенно реальны. Они могут выполнять умственную работу, могут отвечать на вопросы. Они способны воздействовать на внешний мир, оплачивая счета в банке или управляя рукой робота на заводе.
На исправно работающем компьютере вычислительный процесс выполняет программы точно и безошибочно. Таким образом, программисты-новички должны научиться понимать и предсказывать последствия своих программ. Даже мелкие ошибки, под названием баги или глюки, могут привести к сложным и непредсказуемым последствиям.
Когда мы начинаем изучать computer science, самое первое, с чем мы сталкиваемся — это понятие вычислительного процесса — абстрактное существо, которое находится в компьютерах.
Развиваясь, процессы манипулируют абстракциями другого типа, которые называются данными. Эволюция процесса направляется набором правил, называемым программой.
Их нельзя увидеть или потрогать. Они вообще сделаны не из вещества. В то же время они совершенно реальны. Они могут выполнять умственную работу, могут отвечать на вопросы. Они способны воздействовать на внешний мир, оплачивая счета в банке или управляя рукой робота на заводе.
На исправно работающем компьютере вычислительный процесс выполняет программы точно и безошибочно. Таким образом, программисты-новички должны научиться понимать и предсказывать последствия своих программ. Даже мелкие ошибки, под названием баги или глюки, могут привести к сложным и непредсказуемым последствиям.
Режим системного управления работой процессора
Режим системного управления предназначен для выполнения некоторых действий с возможностью их полной изоляции от прикладного программного обеспечения и даже операционной системы.
Переход в этот режим возможен только аппаратно. Когда процессор находится в режиме SMM (System Management Mode), он выставляет сигнал SMIACT#.
Этот сигнал может служить для включения выделенной области физической памяти (System Management RAM), так что память SMRAM можно сделать доступной только для этого режима.
Следует отметить, что в режиме SMM не предусмотрена работа с прерываниями и особыми случаями.
При возврате из SMM процессор восстанавливает свой контекст из SMRAM. Обработчик может программно внести изменения в образ контекста процессора, тогда процессор перейдет не в то состояние, в котором произошел переход в SMM.
Режим системного управления предназначен для выполнения некоторых действий с возможностью их полной изоляции от прикладного программного обеспечения и даже операционной системы.
Переход в этот режим возможен только аппаратно. Когда процессор находится в режиме SMM (System Management Mode), он выставляет сигнал SMIACT#.
Этот сигнал может служить для включения выделенной области физической памяти (System Management RAM), так что память SMRAM можно сделать доступной только для этого режима.
Следует отметить, что в режиме SMM не предусмотрена работа с прерываниями и особыми случаями.
При возврате из SMM процессор восстанавливает свой контекст из SMRAM. Обработчик может программно внести изменения в образ контекста процессора, тогда процессор перейдет не в то состояние, в котором произошел переход в SMM.
Древнейший язык программирования
Лисп, или LISP (LISt Processing language — «язык обработки списков»)— семейство языков программирования, программы и данные в которых представляются в виде списков.
Существует альтернативная расшифровка названия LISP: Lots of Irritating Superfluous Parentheses — «Много раздражающих лишних скобок» (намёк на особенности синтаксиса языка).
Он является первым функциональным ЯП, получившим большую популярность. Создание его ядра приходится на 60-е годы предыдущего столетия – разработчиком стал ученый Дж. Маккарти.
Широкую известность Лисп получил в 70-80-е годы ХХ века. В то время он использовался в качестве базового языка для научной деятельности в сфере искусственного интеллекта.
С учетом того, что сфера ИИ всегда предполагала большие траты ресурсов, а мощности компьютеров 80-х годов, очевидно, уступали современным, создатели Lisp пытались извлечь из языка максимум эффективности.
Лисп, или LISP (LISt Processing language — «язык обработки списков»)— семейство языков программирования, программы и данные в которых представляются в виде списков.
Существует альтернативная расшифровка названия LISP: Lots of Irritating Superfluous Parentheses — «Много раздражающих лишних скобок» (намёк на особенности синтаксиса языка).
Он является первым функциональным ЯП, получившим большую популярность. Создание его ядра приходится на 60-е годы предыдущего столетия – разработчиком стал ученый Дж. Маккарти.
Широкую известность Лисп получил в 70-80-е годы ХХ века. В то время он использовался в качестве базового языка для научной деятельности в сфере искусственного интеллекта.
С учетом того, что сфера ИИ всегда предполагала большие траты ресурсов, а мощности компьютеров 80-х годов, очевидно, уступали современным, создатели Lisp пытались извлечь из языка максимум эффективности.