SlideShare a Scribd company logo
1 of 42
Системное программное обеспечение
Лекция 3
Тема 1. Системное программное обеспечение
План лекции:
 Процесс разработки программы. Трансляция.
Компиляция
 Компилятор языка Free Pascal в среде Lazarus
 Этапы компиляции программ на языке Free Pascal
 Системное программирование в Windows
 Системное программирование в Linux
 Win API и DLL
Этапы разработки программы
 Первый этап?
Этапы разработки программы
 Первый этап?
 Подсказка: Аль-Хорезми
Этапы разработки программы
 Составление алгоритма решения задачи.
Алгоритм — это описание последовательности
действий, которые необходимо выполнить для
решения поставленной задачи.
Этапы разработки программы
 Составление алгоритма решения задачи.
 Второй этап?
Этапы разработки программы
 Составление алгоритма решения задачи.
 Написание текста программы. Текст программы
пишут на каком-либо языке программирования
(Free Pascal) и вводят его в компьютер с помощью
текстового редактора (редактор кода среды
Lazarus).
Этапы разработки программы
 Составление алгоритма решения задачи.
 Написание текста программы.
 Третий этап?
Этапы разработки программы
 Составление алгоритма решения задачи.
 Написание текста программы.
 Отладка программы. Отладка программы —
это процесс устранения ошибок из текста
программы.
Этапы разработки программы
 Составление алгоритма решения задачи.
 Написание текста программы.
 Отладка программы.
 Четвертый этап?
Этапы разработки программы
 Составление алгоритма решения задачи.
 Написание текста программы.
 Отладка программы.
 Тестирование программы. Тестирование
программы — процесс выявления ошибок в ее
работе.
Процессы отладки и тестирования сопровождаются
неоднократным запуском программы на
выполнение.
Этапы разработки программы
 Что необходимо произвести для запуска
программы на исполнение?
?
Этапы разработки программы
перевод в двоичный
машинный код
Трансляция
 Процесс перевода текста программы в машинный
код называют трансляцией.
Трансляция
 Процесс перевода текста программы в машинный
код называют трансляцией.
Трансляторы
Интерпретаторы Компиляторы
Интерпретаторы
 трансляторы, которые переводят каждый
оператор программы в машинный код и по мере
перевода операторы выполняются процессором.
 Примеры: реализации языка Basic
Компиляторы
 переводят всю программу целиком, и если этот
перевод прошел без ошибок, то полученный
двоичный код можно запускать на выполнение.
 Примеры: FPC - Free Pascal Compiler
свободно распространяемый компилятор языка
Паскаль с открытыми исходными кодами,
распространяется на условиях GNU General Public
License (GNU GPL).
Режимы компиляции FPC
 TP — режим совместимости с Turbo Pascal
 FPC — собственный диалект
 DELPHI — режим совместимости с Delphi
 OBJFPC — совмещает объектно-ориентированные
возможности Delphi и собственные расширения
языка.
Пример задания режима компиляции:
{$mode objfpc}{$H+}
{$H+} – директива компиляции, определяющая что тип
string будет обработан как AnsiString
Этапы компиляции программы на языке Free
Pascal. 1 этап
 Компилятор анализирует, какие внешние библиотеки
нужно подключить, разбирает текст программы на
составляющие элементы, проверяет синтаксические
ошибки и в случае их отсутствия формирует объектный код
(в Windows — файл с расширением .obj, в Linux — файл с
расширением .o).
 В библиотеках языка Pascal хранится объектный (двоичный) код
стандартных (таких, как sin(x), cos(x) и др.) функций и процедур
языка.
 Получаемый на этом этапе двоичный файл (объектный
код) не включает в себя объектные коды подключаемых
библиотек.
Этапы компиляции программы на языке Free
Pascal. 2 этап
 На втором этапе компоновщик подключает к объектному
коду программы объектные коды библиотек и генерирует
исполняемый код программы. Этот этап называется
компоновкой, или сборкой, программы. Полученный на
этом этапе исполняемый код можно запускать на
выполнение.
Среда Lazarus
 Lazarus это бесплатный инструмент разработки с
открытым кодом.
 IDE Lazarus представляет собой среду с
графическим интерфейсом для быстрой разработки
программ, аналогичную Delphi, и базируется на
оригинальной кроссплатформенной библиотеке
визуальных компонентов LCL (Lazarus Component
Library), совместимых с VCL Delphi.
 Lazarus это стабильная богатая возможностями среда
разработки для создания самостоятельных
графических и консольных приложений.
Официальный сайт Lazarus. Версии
Версии Lazarus в сети колледжа
 lazarus-1.2.6-fpc-2.6.4-win32.exe – версия для
Windows 32 и 64 bit
 LazarusPortable_1.0.8.0_Development_Test_1.paf.e
xe – портируемая версия, проверена для Windows 32
bit
Системное программирование в Windows
 Абстракция от оборудования и низкоуровневых
протоколов вводится в ядра операционных систем в
виде библиотек API (Application Program Interface). Эта
абстракция доступна программисту в виде библиотек
API. Это самый низкий уровень, который доступен для
прикладного программирования.
 Функции и процедуры Windows API, являются
набором программных интерфейсов приложений
доступных в операционных системах Microsoft
Windows. Все Windows-приложения
взаимодействуют с WinAPI вне зависимости от того,
на каком языке они написаны.
Библиотеки над Win API
Библиотеки и среды программирования, частично или
полностью скрывающие от программиста особенности
Windows API, и предоставляющие ту или иную часть его
возможностей в более удобном виде:
Active Template Library (ATL)
Windows Template Library (WTL),
Microsoft Foundation Classes (MFC),
.Net/WinForms/WPF
OWL и VCL.
Кросс-платформенные библиотеки, такие как Qt, Tk
Системное программирование в Linux
 Программирование для UNIX изначально
зарождалось именно как системное. Исторически
системы UNIX не включали значительного количества
высокоуровневых концепций.
 В системном программировании для Linux можно
выделить три основных краеугольных камня:
системные вызовы, библиотеку C и компилятор C.
 API в Linux обеспечивает переносимость
приложений между различными архитектурами Linux.
Классификация WinAPI. 8 категорий
 Основные сервисы (Base Services)
 Дополнительные сервисы (Advanced Services)
 Интерфейс взаимодействия с графическими
устройствами (Graphics Device Interface, или,
сокращенно, GDI)
 Пользовательский интерфейс (User Interface, UI)
 Стандартная библиотека диалогов (Common Dialog
Box Library)
 Стандартная библиотека элементов управления
(Common Control Library)
 Оболочка Windows (Windows Shell)
 Сетевые сервисы (Network Services)
Основные сервисы (Base Services)
 предоставляют доступ к основным ресурсам системы
Windows, таким, как файловые системы, устройства,
процессы и потоки, обработка ошибок. Эти функции
располагаются в файлах kernel32.dll, advapi32.dll.
Дополнительные сервисы (Advanced
Services)
 предоставляют доступ к надстройкам над kernel-
библиотеками, включая такие элементы, как реестр
Windows, перезагрузка и завершение работы
системы, запуск/создание/остановка сервисов
Windows, управление учетными записями
пользователей. Эти функции располагаются в
advapi32.dll.
Интерфейс взаимодействия с графическими
устройствами (Graphics Device Interface)
 предоставляет набор функциональных возможностей
вывода графического содержимого на мониторы,
принтеры и другие устройства вывода. Функции
располагаются в файле gdi32.exe.
Пользовательский интерфейс (User
Interface, UI)
 предоставляет набор функций создания и управления
окнами и наиболее простых элементов управления,
таких, как кнопки и полосы прокрутки; получение
данных с мыши и клавиатуры и прочие функции,
связанные с графическим интерфейсом пользователя
(GUI). Этот модуль расположен в файле user32.dll,
однако, начиная с Windows XP, эти функции
объединены с библиотекой стандартных элементов
управления (Common Control Library) и
располагаются в файле comctl32.dll.
Стандартная библиотека диалогов
(Common Dialog Box Library)
 предоставляет стандартные диалоговые окна для
открытия и сохранения файлов, выбора цвета, шрифта
и т.д. Библиотека располагается в файле comdlg32.dll.
Эту категорию часто объединяют с пользовательским
интерфейсом.
Стандартная библиотека элементов
управления (Common Control Library)
 позволяет приложениям использовать
дополнительные элементы управления операционной
системы Windows, включая такие элементы, как
панели статуса, панели состояния, панели
инструментов и вкладки. Библиотека располагается в
файле comctl32.dll. Эту категорию также часто
объединяют с пользовательским интерфейсом.
Оболочка Windows (Windows Shell)
 является компонентом WinAPI, который
предоставляет доступ к функциям системной
оболочки, также позволяя изменять и улучшать их.
Компонент располагается в файлах shell32.api,
shlwapi.dll.
Сетевые сервисы (Network Services)
 предоставляют доступ к различным сетевым
возможностям операционной системы. Их
подкомпоненты включают NetBIOS, Winsock,
NetDDE, RPC и многие другие.
Win API и DLL
 Все Windows API функции располагаются в файлах
динамических библиотек (*.dll), которые находятся в
системных папках ОС (как правило, папка System32).
 Каждая программа должна самостоятельно заботится
о том, чтобы подключить эти библиотеки. DLL могут
подключаться к программе статически и
динамически.
Win API и DLL
 При статическом подключении программа
«освобождает» DLL только при завершении.
Win API и DLL
 При динамическом подключении освобождение DLL
может произойти в любой момент.
 Если после освобождения DLL оказывается, что её
больше не использует ни одна программа, она
выгружается из памяти.
Win API и DLL
 Стандартные библиотеки используются самой
системой, они всегда находятся в памяти.
 Вопрос: как подключаются стандартные библиотеки?
Win API и DLL
 Т.к. стандартные библиотеки используются самой
системой и всегда находятся в памяти, то
использование динамического подключения
бессмысленно и используется статическое
подключение.
Спасибо за внимание!
Вопросы?

More Related Content

What's hot

эволюция языков программирования
эволюция языков программированияэволюция языков программирования
эволюция языков программирования
Andrey Radionov
 
презентация языки программирования
презентация языки программированияпрезентация языки программирования
презентация языки программирования
nhfkzkz
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2
Michael Karpov
 
Ayan9r1 po(1)
Ayan9r1 po(1)Ayan9r1 po(1)
Ayan9r1 po(1)
Ayan_R
 
Candidates for-php-developers-tests
Candidates for-php-developers-testsCandidates for-php-developers-tests
Candidates for-php-developers-tests
guest5fa21c
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6
Technopark
 
языки программирования
языки программированияязыки программирования
языки программирования
anastastish
 

What's hot (19)

Custom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEACustom Language Plugin for JetBrains IDEA
Custom Language Plugin for JetBrains IDEA
 
эволюция языков программирования
эволюция языков программированияэволюция языков программирования
эволюция языков программирования
 
DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
 
языки программирования
языки программированияязыки программирования
языки программирования
 
Аннотации в java
Аннотации в javaАннотации в java
Аннотации в java
 
лек5 6
лек5 6лек5 6
лек5 6
 
презентация языки программирования
презентация языки программированияпрезентация языки программирования
презентация языки программирования
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2
 
Programming Concepts
Programming ConceptsProgramming Concepts
Programming Concepts
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
Ayan9r1 po(1)
Ayan9r1 po(1)Ayan9r1 po(1)
Ayan9r1 po(1)
 
Candidates for-php-developers-tests
Candidates for-php-developers-testsCandidates for-php-developers-tests
Candidates for-php-developers-tests
 
Lec 15
Lec 15Lec 15
Lec 15
 
Pascal+
Pascal+Pascal+
Pascal+
 
6
66
6
 
лек11 4
лек11 4лек11 4
лек11 4
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6
 
Как компилируется программа на С++?
Как компилируется программа на С++?Как компилируется программа на С++?
Как компилируется программа на С++?
 
языки программирования
языки программированияязыки программирования
языки программирования
 

Similar to лекция 3

Scripting languages
Scripting languagesScripting languages
Scripting languages
Lev Panov
 
Антон Шумихин - Архитектура ОС
Антон Шумихин - Архитектура ОСАнтон Шумихин - Архитектура ОС
Антон Шумихин - Архитектура ОС
GAiN@ESD
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
JSC “Arcadia Inc”
 
Объектно-ориентированное программирование
Объектно-ориентированное программированиеОбъектно-ориентированное программирование
Объектно-ориентированное программирование
Светлана Семенова
 
Урок 5. Операционная система Windows
Урок 5. Операционная система WindowsУрок 5. Операционная система Windows
Урок 5. Операционная система Windows
ANSevrukova
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
KewpaN
 

Similar to лекция 3 (20)

Linux
LinuxLinux
Linux
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 
лек11 1
лек11 1лек11 1
лек11 1
 
Архитектура ROS
Архитектура ROSАрхитектура ROS
Архитектура ROS
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
2IDE~1.PPT
2IDE~1.PPT2IDE~1.PPT
2IDE~1.PPT
 
Антон Шумихин - Архитектура ОС
Антон Шумихин - Архитектура ОСАнтон Шумихин - Архитектура ОС
Антон Шумихин - Архитектура ОС
 
Lecture 11 1
Lecture 11 1Lecture 11 1
Lecture 11 1
 
Lecture 11 1
Lecture 11 1Lecture 11 1
Lecture 11 1
 
Что должен уметь Linux программист
Что должен уметь Linux программистЧто должен уметь Linux программист
Что должен уметь Linux программист
 
Programming history. Algorithm
Programming history. AlgorithmProgramming history. Algorithm
Programming history. Algorithm
 
Операционные системы и среды
Операционные системы и средыОперационные системы и среды
Операционные системы и среды
 
лек13 6
лек13 6лек13 6
лек13 6
 
Описание VivaVisualCode
Описание VivaVisualCodeОписание VivaVisualCode
Описание VivaVisualCode
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
 
Интегрированная среда разработки для функционального языка Refal
Интегрированная среда разработки для функционального языка RefalИнтегрированная среда разработки для функционального языка Refal
Интегрированная среда разработки для функционального языка Refal
 
Объектно-ориентированное программирование
Объектно-ориентированное программированиеОбъектно-ориентированное программирование
Объектно-ориентированное программирование
 
Progopedia - OSDN
Progopedia - OSDNProgopedia - OSDN
Progopedia - OSDN
 
Урок 5. Операционная система Windows
Урок 5. Операционная система WindowsУрок 5. Операционная система Windows
Урок 5. Операционная система Windows
 
10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft10 компонентные и офисные приложения на платформе microsoft
10 компонентные и офисные приложения на платформе microsoft
 

лекция 3

  • 2. Тема 1. Системное программное обеспечение
  • 3. План лекции:  Процесс разработки программы. Трансляция. Компиляция  Компилятор языка Free Pascal в среде Lazarus  Этапы компиляции программ на языке Free Pascal  Системное программирование в Windows  Системное программирование в Linux  Win API и DLL
  • 5. Этапы разработки программы  Первый этап?  Подсказка: Аль-Хорезми
  • 6. Этапы разработки программы  Составление алгоритма решения задачи. Алгоритм — это описание последовательности действий, которые необходимо выполнить для решения поставленной задачи.
  • 7. Этапы разработки программы  Составление алгоритма решения задачи.  Второй этап?
  • 8. Этапы разработки программы  Составление алгоритма решения задачи.  Написание текста программы. Текст программы пишут на каком-либо языке программирования (Free Pascal) и вводят его в компьютер с помощью текстового редактора (редактор кода среды Lazarus).
  • 9. Этапы разработки программы  Составление алгоритма решения задачи.  Написание текста программы.  Третий этап?
  • 10. Этапы разработки программы  Составление алгоритма решения задачи.  Написание текста программы.  Отладка программы. Отладка программы — это процесс устранения ошибок из текста программы.
  • 11. Этапы разработки программы  Составление алгоритма решения задачи.  Написание текста программы.  Отладка программы.  Четвертый этап?
  • 12. Этапы разработки программы  Составление алгоритма решения задачи.  Написание текста программы.  Отладка программы.  Тестирование программы. Тестирование программы — процесс выявления ошибок в ее работе. Процессы отладки и тестирования сопровождаются неоднократным запуском программы на выполнение.
  • 13. Этапы разработки программы  Что необходимо произвести для запуска программы на исполнение? ?
  • 14. Этапы разработки программы перевод в двоичный машинный код
  • 15. Трансляция  Процесс перевода текста программы в машинный код называют трансляцией.
  • 16. Трансляция  Процесс перевода текста программы в машинный код называют трансляцией. Трансляторы Интерпретаторы Компиляторы
  • 17. Интерпретаторы  трансляторы, которые переводят каждый оператор программы в машинный код и по мере перевода операторы выполняются процессором.  Примеры: реализации языка Basic
  • 18. Компиляторы  переводят всю программу целиком, и если этот перевод прошел без ошибок, то полученный двоичный код можно запускать на выполнение.  Примеры: FPC - Free Pascal Compiler свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами, распространяется на условиях GNU General Public License (GNU GPL).
  • 19. Режимы компиляции FPC  TP — режим совместимости с Turbo Pascal  FPC — собственный диалект  DELPHI — режим совместимости с Delphi  OBJFPC — совмещает объектно-ориентированные возможности Delphi и собственные расширения языка. Пример задания режима компиляции: {$mode objfpc}{$H+} {$H+} – директива компиляции, определяющая что тип string будет обработан как AnsiString
  • 20. Этапы компиляции программы на языке Free Pascal. 1 этап  Компилятор анализирует, какие внешние библиотеки нужно подключить, разбирает текст программы на составляющие элементы, проверяет синтаксические ошибки и в случае их отсутствия формирует объектный код (в Windows — файл с расширением .obj, в Linux — файл с расширением .o).  В библиотеках языка Pascal хранится объектный (двоичный) код стандартных (таких, как sin(x), cos(x) и др.) функций и процедур языка.  Получаемый на этом этапе двоичный файл (объектный код) не включает в себя объектные коды подключаемых библиотек.
  • 21. Этапы компиляции программы на языке Free Pascal. 2 этап  На втором этапе компоновщик подключает к объектному коду программы объектные коды библиотек и генерирует исполняемый код программы. Этот этап называется компоновкой, или сборкой, программы. Полученный на этом этапе исполняемый код можно запускать на выполнение.
  • 22. Среда Lazarus  Lazarus это бесплатный инструмент разработки с открытым кодом.  IDE Lazarus представляет собой среду с графическим интерфейсом для быстрой разработки программ, аналогичную Delphi, и базируется на оригинальной кроссплатформенной библиотеке визуальных компонентов LCL (Lazarus Component Library), совместимых с VCL Delphi.  Lazarus это стабильная богатая возможностями среда разработки для создания самостоятельных графических и консольных приложений.
  • 24. Версии Lazarus в сети колледжа  lazarus-1.2.6-fpc-2.6.4-win32.exe – версия для Windows 32 и 64 bit  LazarusPortable_1.0.8.0_Development_Test_1.paf.e xe – портируемая версия, проверена для Windows 32 bit
  • 25. Системное программирование в Windows  Абстракция от оборудования и низкоуровневых протоколов вводится в ядра операционных систем в виде библиотек API (Application Program Interface). Эта абстракция доступна программисту в виде библиотек API. Это самый низкий уровень, который доступен для прикладного программирования.  Функции и процедуры Windows API, являются набором программных интерфейсов приложений доступных в операционных системах Microsoft Windows. Все Windows-приложения взаимодействуют с WinAPI вне зависимости от того, на каком языке они написаны.
  • 26. Библиотеки над Win API Библиотеки и среды программирования, частично или полностью скрывающие от программиста особенности Windows API, и предоставляющие ту или иную часть его возможностей в более удобном виде: Active Template Library (ATL) Windows Template Library (WTL), Microsoft Foundation Classes (MFC), .Net/WinForms/WPF OWL и VCL. Кросс-платформенные библиотеки, такие как Qt, Tk
  • 27. Системное программирование в Linux  Программирование для UNIX изначально зарождалось именно как системное. Исторически системы UNIX не включали значительного количества высокоуровневых концепций.  В системном программировании для Linux можно выделить три основных краеугольных камня: системные вызовы, библиотеку C и компилятор C.  API в Linux обеспечивает переносимость приложений между различными архитектурами Linux.
  • 28. Классификация WinAPI. 8 категорий  Основные сервисы (Base Services)  Дополнительные сервисы (Advanced Services)  Интерфейс взаимодействия с графическими устройствами (Graphics Device Interface, или, сокращенно, GDI)  Пользовательский интерфейс (User Interface, UI)  Стандартная библиотека диалогов (Common Dialog Box Library)  Стандартная библиотека элементов управления (Common Control Library)  Оболочка Windows (Windows Shell)  Сетевые сервисы (Network Services)
  • 29. Основные сервисы (Base Services)  предоставляют доступ к основным ресурсам системы Windows, таким, как файловые системы, устройства, процессы и потоки, обработка ошибок. Эти функции располагаются в файлах kernel32.dll, advapi32.dll.
  • 30. Дополнительные сервисы (Advanced Services)  предоставляют доступ к надстройкам над kernel- библиотеками, включая такие элементы, как реестр Windows, перезагрузка и завершение работы системы, запуск/создание/остановка сервисов Windows, управление учетными записями пользователей. Эти функции располагаются в advapi32.dll.
  • 31. Интерфейс взаимодействия с графическими устройствами (Graphics Device Interface)  предоставляет набор функциональных возможностей вывода графического содержимого на мониторы, принтеры и другие устройства вывода. Функции располагаются в файле gdi32.exe.
  • 32. Пользовательский интерфейс (User Interface, UI)  предоставляет набор функций создания и управления окнами и наиболее простых элементов управления, таких, как кнопки и полосы прокрутки; получение данных с мыши и клавиатуры и прочие функции, связанные с графическим интерфейсом пользователя (GUI). Этот модуль расположен в файле user32.dll, однако, начиная с Windows XP, эти функции объединены с библиотекой стандартных элементов управления (Common Control Library) и располагаются в файле comctl32.dll.
  • 33. Стандартная библиотека диалогов (Common Dialog Box Library)  предоставляет стандартные диалоговые окна для открытия и сохранения файлов, выбора цвета, шрифта и т.д. Библиотека располагается в файле comdlg32.dll. Эту категорию часто объединяют с пользовательским интерфейсом.
  • 34. Стандартная библиотека элементов управления (Common Control Library)  позволяет приложениям использовать дополнительные элементы управления операционной системы Windows, включая такие элементы, как панели статуса, панели состояния, панели инструментов и вкладки. Библиотека располагается в файле comctl32.dll. Эту категорию также часто объединяют с пользовательским интерфейсом.
  • 35. Оболочка Windows (Windows Shell)  является компонентом WinAPI, который предоставляет доступ к функциям системной оболочки, также позволяя изменять и улучшать их. Компонент располагается в файлах shell32.api, shlwapi.dll.
  • 36. Сетевые сервисы (Network Services)  предоставляют доступ к различным сетевым возможностям операционной системы. Их подкомпоненты включают NetBIOS, Winsock, NetDDE, RPC и многие другие.
  • 37. Win API и DLL  Все Windows API функции располагаются в файлах динамических библиотек (*.dll), которые находятся в системных папках ОС (как правило, папка System32).  Каждая программа должна самостоятельно заботится о том, чтобы подключить эти библиотеки. DLL могут подключаться к программе статически и динамически.
  • 38. Win API и DLL  При статическом подключении программа «освобождает» DLL только при завершении.
  • 39. Win API и DLL  При динамическом подключении освобождение DLL может произойти в любой момент.  Если после освобождения DLL оказывается, что её больше не использует ни одна программа, она выгружается из памяти.
  • 40. Win API и DLL  Стандартные библиотеки используются самой системой, они всегда находятся в памяти.  Вопрос: как подключаются стандартные библиотеки?
  • 41. Win API и DLL  Т.к. стандартные библиотеки используются самой системой и всегда находятся в памяти, то использование динамического подключения бессмысленно и используется статическое подключение.