Уровень абстракции (программирование): различия между версиями

→‎Примеры: стилевые правки
(Removed highly misleading diagram spreading confused information. Assembler is tool to translate assembly language into machine language. Firmware is system software in embedded systems, not abstraction layers. Same layer for OS+application contradictive.)
(→‎Примеры: стилевые правки)
 
== Примеры ==
Примеры моделей программного обеспечения, использующих уровни абстракции, включают в себя [[Сетевая модель OSI|семиуровневую модель OSI]] для [[Протокол передачи данных|протоколов передачи данных]] [[Компьютерная сеть|компьютерных сетей]], библиотеку графических примитивов [[OpenGL]], модель ввода-вывода на основе потоков байтов из [[Unix]], адаптированнуюприменяемую в [[MS DOS]], [[Linux]] и большинствомво многих других современных [[Операционная система|операционных системсистемах]].
 
В операционной системе Unix большинство типов операций ввода-вывода рассматриваются как потоки байтов, считываемые или записываемые на [[Компьютерная техника|устройство]]. Эта модель потока байтов используется для ввода-вывода в [[файл]], [[Сокет (программный интерфейс)|сокет]] и [[компьютерный терминал]], чтобы обеспечить независимость от устройства ввода-вывода. Для чтения и записи в устройство на уровне приложения программа вызывает функцию открытия устройства, которое может соответствовать реальному устройству, например, терминалу или [[/dev|виртуальному устройству]], например, [[порт (компьютерные сети)|сетевому порту]] или файлу в [[Файловая система|файловой системе]]. Физические характеристики устройства передаются операционной системе, которая, в свою очередь, предоставляет абстрактный [[интерфейс]], позволяющий [[программист]]у считывать и записывать [[байт]]ы в устройство. Операционная система затем выполняет действия, необходимые для работы с конкретным устройством.