Обмен быстрыми сообщениями через Интернет всегда пользовался большой популярностью, однако со временем появился огромный выбор специализированных приложений, которые могут синхронизироваться на различных устройствах и передавать не только текстовые сообщения, но и картинки, видео, аудио. Современные мессенджеры имеют связь с камерой, микрофоном и даже списком контактов пользователя в зависимости от конкретного приложения.
Есть специальные приложения, созданные на основе популярных социальных сетей (Одноклассники, Вконтакте, Агент Майл.ру), а есть такие, которые уже сами стали социальными сетями (Инстаграм, Телеграм, Твиттер). Есть и программы, которые связывают людей посредством номеров телефонов, за счёт чего можно найти в таком приложении человека из своего списка контактов.
У каждого мессенджера есть свои плюсы и минусы, свои особенности и возможности, свой интерфейс и внешнее оформление и, в конечном итоге, своя аудитория. Именно поэтому часто недостаточно иметь только одну из подобных программ, ведь зачастую ваши коллеги и друзья пользуются различными программами. Некоторые компании используют определённые мессенджеры в качестве готового софта для корпоративного чата и почты, для обмена информацией в режиме онлайн. Например, в Skype очень легко объединить группу людей в одной «виртуальной комнате», тем более что данная программа поддерживает возможность аудио и видео связи.
Самый странный ремонт ПК
У каждого мессенджера свои особенности: если Skype известен своей многофункциональностью, то Telegram прославился своей защищённостью, а Viber — сбалансированностью. В Instagram текстовые сообщения уступают фотографиям и коротким видеозаписям, Twitter вынуждает сжимать речь до смысла, а если вы поклонник Counter-Strike, World of Tanks или иной популярной многопользовательской игры, то вам непременно понравится TeamSpeak, который обладает большим функционалом по сравнению с Discord.
Большое разнообразие современных мессенджеров позволяет вам выбрать что-то для себя.
О программе Очень популярная в наше время социальная сеть ВКонтакте обладает довольно широким функционалом и вполне качественным официальным приложением, которое можно установить на свой смартфон. […]
Описание Windows Package Manager (он же winget) — специально разработанный для Виндоус консольный менеджер, позволяющий автоматизировать обновление и установку программного обеспечения при помощи команд Windows […]
Описание Мессенджеры в наши дни — удобный, простой и доступный способ связи. Был бы интернет — и можно связываться со знакомыми, находящимися в любой точке […]
Описание Mozilla Thunderbird — кросплатформенный, мощный и очень эффективный почтовый клиент, назначение которого — работа с электронной почтой. Скачать Mozilla Thunderbird бесплатно можно с нашего […]
Как я упаковываю игровые компьютеры kritos PC
Особенности приложения Кейт Мобайл: вариант социальной сети Социальные сети для многих стали спасением. Ведь благодаря им можно поддерживать связь с друзьями, которые находятся за сотни […]
Особенности Несмотря на то, что создано достаточно программ, предназначенных для виртуального общения, но разработчики постоянно предлагают что-то еще. Например, вы можете OoVoo скачать бесплатно на […]
Особенности Для того, чтобы не тратить огромные суммы на связи, многие предпочитают общаться через интернет. Но для этого нужны специальные программы. Есть пользователи, которые для […]
Особенности WebcamMax — приложение, с помощью которого можно добавлять различные видеоэффекты при работе с вебкамерой, в видеочаты и видеозаписи. Доступно более 1000 спецэффектов. Для того, […]
Особенности Если вам кажется, что основных функций в популярной социальной сети Одноклассники маловато, то значит настала пора вам скачать OkTools. Это специальный плагин, который сделает […]
Особенности TeamSpeak — утилита, которая позволит вам общаться через интернет или локальную сеть при использовании технологии VoIP. Программа состоит из двух частей: клиентской и серверной. […]
Особенности Discord — мессенджер, который позволяет совершать голосовое и текстовое общение. И в этом плане он во многом напоминает такие популярные утилиты, как TeamSpeak и […]
Особенности Для любителей командных компьютерных игр существует своя программа, которая позволит обеспечить общение геймерам. И в числе этих программ стоит отметить RaidCall. Если вы скачаете […]
Особенности Люди по всему миру пользуются Скайпом для осуществления звонков. Ведь этот способ позволяет общаться вне зависимости от того, где находится ваш абонент. Такой вариант […]
Особенности VKSaver — простой удобный инструмент для скачивания музыкальных и видеофайлов из соцсети ВКонтакте. Для того, чтобы загрузить на компьютер любую музыку или фильм, размещенный […]
Особенности Среди программ, которые позволяют скачивать видео и аудио из популярной социальной сети «Вконтакте», стоит отметить утилиту ВК Мьюзик. Любой желающий может скачать VKMusic бесплатно […]
Особенности В ходе общения в популярной социальной сети пользователи часто обмениваются музыкой и видео. Однако некоторое время возникали сложности для тех, кто хотел данные медиафайлы […]
Особенности Если вы являетесь активным пользователем этой популярной сети, то стоит отказаться от браузера. Ведь сейчас можно скачать ВКонтакте бесплатно, получив отдельное приложение, которое более […]
Особенности Многие пользователи для того, чтобы иметь возможность общаться с друзьями, делать звонки, отправлять аудио, видео и текстовые сообщения, используют Mail.ru Агент. И сейчас можно […]
Особенности Основатель социальной сети Вконтакте предлагает бесплатную программу-менеджер Telegram. Данная утилита позволяет отправлять бесплатно сообщения, обмениваться видео-, фото- и аудиофайлами, причем даже в случае их […]
Особенности Сайт ok.ru — ждет своих пользователей. А вот если вы захотели установить приложение для Android, iOS и WinPhone — то это тоже вполне возможно. И […]
Особенности В линейке программ, позволяющих осуществлять обмен текстовыми, аудио-, фото и видео материалами, есть софт WhatsApp Messenger. Сейчас есть возможность установить эту утилиту для устройств, […]
Особенности Инстаграм — приложение, которое распространяется бесплатно. Многие пользователи предпочитают скачать Instagram бесплатно на компьютер, чтобы иметь возможность обмениваться видео и фотографиями. Кроме того, данная […]
Особенности Твиттер — популярная социальная сеть, которая позволяет каждому пользователю завести свой микроблог. Причем сделать это можно как на компьютере, если скачать Twitter для Windows […]
Особенности Мессенджер Вконтакте — специальная программа, которая расширяет круг вашего общения. Данный софт можно установить на настольных системах Mac OS. Кроме того есть много желающих […]
Особенности Многие для обмена текстовыми сообщениями уже скачали Miranda IM на компьютер и установили этот бесплатный мессенджер. Несмотря на то, что программа не требует много […]
Источник: soft-for-free.ru
Как я связал компьютеры и пользователей с портами сетевых устройств в программе для мониторинга Network MACMonitor
Я разработчик программы для мониторинга сети Network MACMonitor.
В процессе развития программы возникла задача: определить за какими компьютерами работают пользователи и связать эту информацию с портами сетевых устройств. В этой статье хочу написать, как мне удалось это сделать.
Начал я с простых рассуждений: чтобы связать пользователя с портом сетевого устройства, предварительно необходимо связать компьютер, за которым работает пользователь, с этим портом. Поскольку программа Network MACMonitor позволяет находить mac адреса на портах сетевых устройств, то было решено связать компьютеры с портами с помощью mac адресов. Далее необходимо связать пользователей с компьютерами. Эту информацию можно получить, если каким-либо образом опросить компьютеры.
Мне виделось два варианта решения этой задачи:
- Написать Windows агент и опрашивать его с помощью программы Network MACMonitor;
- Использовать Windows Management Instrumentation (WMI).
У варианта с Windows агентом есть ряд минусов, которые для меня были существенными:
- разработка безопасного протокола сетевого взаимодействия Windows агента c программой Network MACMonitor;
- необходимость предварительной установки агента на компьютеры;
- использование другого языка программирования (я пишу на Java), так как считаю Java не подходящим для написания агента: в связи с достаточно большим потреблением виртуальной памяти и необходимостью установки JRE на все компьютеры.
Из-за всех вышеперечисленных минусов я решил остановиться на варианте с использованием WMI.
Разработка WMI клиента
Так как программа Network MACMonitor написана на Java я попытался найти готовую кроссплатформенную Java библиотеку, которая реализует функциональность WMI клиента. И тут меня ждало разочарование — такой библиотеки нет.
Все существующие библиотеки — это либо обертки над Windows утилитами, либо (библиотека j-Interop) требуют дополнительной манипуляции с реестром (смена владельца и разрешений на ветки реестра) для активации WMI через удаленный реестр. Поскольку для Java полностью рабочей библиотеки не оказалось я решил найти библиотеку либо WMI клиента, написанного на любом другом языке программирования. И нашел один WMI клиент для Linux. Скачав и проверив его работу, я понял, что опрос Windows компьютеров из-под Linux возможен.
Раз это возможно, я решил написать свою библиотеку на чистом Java, которая бы позволила опросить компьютер по WMI.
Для написания библиотеки необходима была четкая документация по работе протокола WMI. Оказалось, что такая документация есть и она находится в свободном доступе.
Подготовку к написанию библиотеки я начал с рассмотрения сетевого стека протокола WMI.
Windows Management Instrumentation (WMI) | MS-WMI, MS-WMIO |
Distributed Component Object Model (DCOM) | MS-DCOM |
Remote Procedure Call (RPC) | MS-RPCE |
Transmission Control Protocol (TCP) | — |
Internet Protocol (IP) | — |
Для корректной работы WMI необходимо, чтобы все уровни стека были реализованы.
Поскольку WMI на Java не реализован, я перешел к следующему протоколу в стеке — DCOM. И тут мне повезло. Хотя вышеупомянутая библиотека j-Interop не реализует функциональность WMI, но DCOM функциональность в ней реализована. Значит осталось написать реализацию WMI протокола, то есть написать реализацию спецификаций MS-WMI и MS-WMIO.
Начал я с реализации спецификации MS-WMIO, которая отвечает за формат кодирования данных в сетевых пакетах протокола WMI. Из спецификации я узнал, что при кодировании данных используется расширенная спецификация синтаксиса Бэкуса-Наура (ABNF, RFC 5234). В спецификации MS-WMIO полностью описан формат кодирования с использованием ABNF.
Известно, что если есть грамматика, описанная в ABNF, то возможно создать парсер этой грамматики. В интернете я нашел генератор парсеров ABNF для Java и на вход подал ему грамматику, взятую из спецификации.
Поскольку сгенерированный парсер работал со строками, а MS-WMIO описывает бинарный формат кодирования, была идея просто заменить в сгенерированном парсере строки на массивы байт, а символы на байты. Но посмотрев количество файлов, где необходима была замена, а также узнав из спецификации MS-WMIO, что иногда потребуется работа с битами, я понял, что исправить сгенерированный парсер будет очень сложно, и решил отказаться от этой идеи. Подумал, что написать парсер с нуля будет быстрее. И вот парсер был готов.
Но как проверить, что парсер написан корректно, если пока не реализована спецификация MS-WMI, которая отвечает за функционирование протокола WMI? Тут мне помог Wireshark – анализатор сетевого трафика. Сделав запросы WMI стандартными средствами Windows (wbemtest), предварительно отключив шифрование, я получил сетевые пакеты и сохранил их в бинарные файлы. Эти файлы уже возможно было использовать в качестве тестовых данных для парсера.
Когда парсер был протестирован и были исправлены найденные ошибки, я приступил к реализации спецификации MS-WMI, которая описывает работу протокола WMI.
Спецификация MS-WMI делится на серверную и клиентскую. Мною была частично реализована клиентская часть, в объеме необходимом для опроса компьютера по WMI. В этой части мне также понадобился Wireshark, но уже для анализа последовательности сетевых пакетов при WMI опросе.
Попытка получения необходимых данных с помощью WMI
После написания WMI библиотеки, стала задача ее использования в программе Network MACMonitor. Возник вопрос: какие данные следует получать с компьютеров? Я подумал, что нужно получить имя компьютера, домен, операционную систему, время включения, mac адреса, ip адреса, активных пользователей, которые работают за компьютером.
Но возникла очень важная проблема: как однозначно идентифицировать компьютер при WMI опросе? Я рассмотрел следующие варианты:
- mac адрес, возможна смена, возможна неуникальность;
- имя компьютера и домен (рабочая группа), возможна смена, неуникальность (для рабочей группы);
- серийный номер жесткого диска, где установлена операционная система, необходимы права администратора при WMI опросе, уникальность не проверял, но подозреваю, что возможна неуникальность;
- серийный номер материнской платы, возможна неуникальность, причем достаточно часто;
- идентификатор компьютерной системы (свойство UUID WMI класса Win32_ComputerSystemProduct), возможна неуникальность, причем достаточно часто;
- время установки операционной системы, лучший из всех вариантов, но возможна неуникальность при клонировании системы, либо при разворачивании из образа.
Ни один вариант не позволяет однозначно идентифицировать компьютер, поэтому я остановился на идентификации компьютера по трем параметрам:
- серийному номеру материнской платы,
- идентификатору компьютерной системы,
- времени установки операционной системы.
Конечно три этих параметра могут совпадать у разных компьютеров, но реже, чем один из них.
Так же была предпринята попытка получить активных пользователей с помощью стандартного WMI класса: Win32_LogonSession. Тут появилась первая проблема: оказалось, что Win32_LogonSession показывает все пользовательские сессии, даже те, которые уже завершились. Я стал думать, как отфильтровать активные сессии от завершившихся.
Нашел что это можно сделать с помощью класса Win32_SessionProcess, который связывает экземпляры классов Win32_LogonSession с Win32_Process. Если ссылка на сессию присутствует в списке экземпляров класса Win32_SessionProcess (есть хотя бы один процесс с идентификатором этой сессии), то она активна. Далее возник вопрос о том, как связать сессию с пользователем. Это можно сделать, используя класс Win32_LoggedOnUser, который связывает экземпляры классов Win32_LogonSession и Win32_UserAccount. Осталось только получить экземпляры класса Win32_UserAccount, которые предоставляют подробную информацию о пользователе.
Но тут меня ждало разочарование. При удаленном использовании WMI оказалось, что при попытке получения экземпляров класса Win32_UserAccount, возможно получить только локальных пользователей компьютера. То есть получилось, что стандартными средствами WMI, невозможно узнать какие пользователи активны на компьютере.
Разработка WMI провайдера.
В связи с невозможностью однозначной идентификации компьютеров и невозможностью получения информации об активных пользователях с использованием стандартных классов WMI было решено расширить функциональность WMI. Сделать это можно описав свои WMI классы в MOF файле и написав WMI провайдер для получения экземпляров этих классов.
Были описаны два новых WMI класса: NMBY_InstallInfo – для идентификации компьютера и NMBY_LogonSession – для определения активных пользователей компьютера.
Затем был написан WMI провайдер с помощью которого можно получить экземпляры этих классов.
К провайдеру были поставлены дополнительные требования:
- работа на системе без .NET;
- работа на операционной системе Windows XP и выше;
- возможность получения информации с использованием неадминистративной учетной записи.
Поэтому провайдер был написан на C++ с использованием WinApi.
В процессе написания провайдера возникли трудности в связи с малым количеством и качеством документации по этой теме, но несмотря на это провайдер был успешно написан.
Написанный провайдер доступен на странице скачивания. Его можно установить и использовать бесплатно.
Итог
В итоге с помощью программы Network MACMonitor стало возможно:
- связать пользователей c компьютерами;
- связать компьютеры с портами сетевых устройств;
- связать порты сетевых устройств с компьютерами и пользователями;
- просмотреть историю регистрации пользователей на компьютерах.
Источник: habr.com
Как осуществляется взаимодействие прикладных программ и Windows?
Любая операционная система, будь то Windows, MacOS X или Linux, работает по одному и тому же принципу: она автоматически загружается после включения компьютера и управляет работой всех его компонентов (центральным процессором, видеокартой и жесткими дисками).
Именно «операционка» обеспечивает работу всех прикладных программ, позволяя, например, текстовому редактору распечатывать документы, а браузеру – отображать веб-страницы.
Операционные системы на первых персональных компьютерах – MS DOS и ее клоны – управлялись командной строкой: пользователь должен был набирать все команды и запускать их на выполнение нажатием клавиши [Enter]. Однако с тех пор все радикально изменилось.
Само название Windows отражает суть нового принципа взаимодействия пользователя с программами: каждое приложение запускается в своем собственном окне, а пользователь имеет доступ ко всем открытым окнам. Переключение между ними и управление программой в отдельном окне может быть выполнено как посредством клавиатурных команд, так и с помощью мыши (но в обоих случаях вам не придется вводить команды – достаточно будет выбрать нужные пункты меню).
Как работает Windows?
Windows состоит из набора компонентов, образующих иерархическую структуру, на каждом уровне которой выполняются определенные задачи:
1. на самом нижнем уровне располагается ядро ОС – его еще называют «сердцем операционной системы». «Нижний» в данном контексте означает близость к аппаратным компонентам ПК, с которыми ядро взаимодействует напрямую. Оно осуществляет общее управление всеми происходящими в Windows процессами – например, определяет, сколько вычислительной мощности процессора нужно выделить той или иной программе. Windows всегда старается так распределить системные ресурсы, чтобы параллельно работающие приложения получали их в достаточном количестве;
2. системные функции – компонент, расположенный «над ядром» ОС и, отвечающий за выполнение системных функций – например, за работу службы автоматического обновления Windows;
3. подсистема Win32 – располагается на третьем уровне и предоставляет прикладным программам важнейшие интерфейсы.
4. программные интерфейсы (API) – располагаются на последнем уровне и отвечают за доступность различных технологий Windows, используемых, например, более ранними версиями программ или играми.
Как осуществляется взаимодействие прикладных программ и Windows?
Прикладные программы – антивирусы, офисные приложения или игры – не могут напрямую обращаться к процессору или осуществлять вывод результатов на экран монитора.
Разработка программного обеспечения превратилась бы в довольно трудную задачу, если бы в код программы нужно было добавлять модули для выполнения всех стандартных операций.
Каждое приложение использует готовые функции операционной системы, которые и позволяют отображать картинку на экране или, например, выполнять распечатку текста.
Вызов этих функций происходит через специальные программные интерфейсы (API), которые связывают прикладные программы с операционной системой и устройствами компьютера.
Если программе требуется записать файл на диск, она обращается к функции сохранения данных Windows. Приложение дает указание операционной системе: «Сохрани файл AБВГД на жесткий диск!», а Windows принимает эту команду и проделывает всю необходимую для записи файла работу: находит на жестком диске свободную область, резервирует это место под будущий файл и затем записывает туда информацию. Кроме того, система информирует программу о результате операции: прошло ли создание файла успешно или же возникли какие-либо проблемы.
Как видите, Windows выступает «посредником» между программой и устройствами компьютера. Самый известный программный интерфейс называется DirectX – он служит для поддержки различных графических режимов в играх.
Программы, разработанные для Windows, в большинстве случаев не будут работать под другими ОС (например, Linux или Mac OS); заметим, что и обратное тоже верно (то есть программа для Mac OS не будет работать под управлением Windows). Основная причина этого кроется в том, что в системах используются уникальные API, на работу с которыми рассчитаны прикладные программы.
Сколько версий Windows существует?
Их очень много – больше дюжины. Microsoft подразделяет все операционные системы Windows на две категории:
1. пользовательские – в их число входят такие ОС, как Windows 98, XP и Vista – предназначены для домашнего или офисного использования. Наиболее распространенной является Windows XP, а самой новой – Windows Vista.
2. серверные – такие системы, как Windows Server 2003 или 2008, существуют в нескольких версиях, отличающихся производительностью. Они устанавливаются на серверы, которые выполняют обслуживание многопользовательской сети.
С момента выпуска Windows XP компания Microsoft стала разделять операционную систему на несколько версий:
— Home Edition – это стандартная версия Windows XP, которая обычно предустанавливается на новые компьютеры;
— Professional – в этой версии имеются дополнительные сетевые функции, которые, однако, вряд ли пригодятся большинству индивидуальных пользователей;
— Media Center – версия, выпущенная в 2004 году, в которой реализован дополнительный Рабочий стол, подходящий для отображения на экране телевизора.
В самой новой версии Windows – Vista – не так-то просто выбрать подходящий вариант системы – их целых шесть:
— Home Basic – самая простая версия ОС, предназначенная для работы с фотографиями, видеофильмами и музыкой. Кроме того, в нее включены такие стандартные программы, как Internet Explorer и Почта Windows.
— Home Premium – эта версия предустановлена на большинстве новых компьютеров. От версии Basic ее отличает наличие элегантного Aero-интерфейса, а также дополнительные функции для работы с мультимедийным содержимым.
— Business – версия, предназначенная для использования на предприятиях благодаря наличию в ней сетевых функций.
— Ultimate – эта версия сочетает в себе возможности версий Home Premium и Business. Она задумана как система для профессионалов, которые используют компьютер для решения бизнес-задач, но при этом не отказываются и от работы с мультимедийным контентом.
— Enterprise – эта версия доступна для предприятий и компаний, заключивших с Microsoft специальный договор. По сути, она представляет собой расширенный вариант Business Edition.
Когда появилась Windows?
В апреле 1983 года компания Microsoft впервые представила так называемый Interface Manager, разработанный ей для собственной операционной системы MS-DOS. С помощью него можно было одновременно запускать на компьютере несколько программ, например, текстовый редактор и табличный процессор. На жаргоне программистов эти отдельно исполняемые программы стали называться окнами – так вскоре родилось название «Windows», и с таким именем появилась в 1985 году первая версия Windows – 1.0.
Вы уже привыкли к тому, что после запуска системы на экране монитора появляется Рабочий стол с расположенными на нем ярлыками. А вот при запуске Windows 1.0 на экране можно было видеть только содержимое жесткого диска. Чтобы запустить программу, пользователь должен был сначала перейти в нужную папку на диске, затем найти в ней файл программы и только потом запустить его двойным щелчком мыши или нажатием клавиши Enter на клавиатуре.
Windows 1.0 поставлялась на двух дискетах и состояла из 90 файлов, общий объем которых равнялся 2 Мб. С выходом каждой новой версии запросы системы к занимаемому ей месту на диске росли: для Windows Vista уже требуется около 12 Гб дискового пространства и состоит она из примерно 73 тысяч файлов, то есть эта ОС в 6000 раз объемнее, чем Windows 1.0.
Что умеет Windows?
В составе операционных систем Windows XP и Vista имеется множество утилит, которые нужны в повседневной работе. Вот наиболее важные из них:
1. с помощью Проигрывателя Windows Media, Фотогалереи и Media Center легко и удобно просматривать фотографии и фильмы, а также слушать музыку. Программы Movie Maker и DVD Maker помогут смонтировать фильм из отдельных видеоклипов и записать его на оптический диск;
2. заниматься веб-серфингом вы можете с помощью встроенного в систему браузера Internet Explorer. Для приема и отправки электронных сообщений предназначены Outlook Express или почтовый клиент Windows Mail в Vista;
3. для управления файлами и папками как нельзя лучше подойдет Проводник Windows, а сохранить текущие настройки и файлы на случай непредвиденных сбоев системы позволит утилита «Восстановление системы»;
4. на страже безопасности системы стоит «Брандмауэр Windows», а «Центр безопасности» проинформирует о том, насколько хорошо защищен компьютер, а также загружены ли последние обновления системы. В Windows Vista, помимо этого, имеется средство защиты от сетевых атак «Защитник Windows» и функции родительского контроля и контроля учетных записей пользователя.
5. Прочие полезные утилиты – программа звукозаписи, текстовый редактор, калькулятор и графический редактор – также входят в состав стандартной поставки Windows. В Vista имеются и средства для распознавания голоса, которые позволяют управлять компьютером с помощью голосовых команд (пока только в англоязычной версии ОС).
Singularity
За закрытыми дверями лабораторий Microsoft идет процесс создания «с нуля» абсолютно новой операционной системы, оснащенной другим ядром. Она будет лишена недостатков предыдущих версий Windows, и как результат, ей потребуется заметно меньше памяти для работы: 20 Мб против 300 или 500 Мб Windows Vista.
Ядро Singularity будет поддерживать новые функции безопасности. Программы теперь не смогут напрямую обращаться к операционной системе или другим приложениям. Все подобные обращения будут отслеживаться специальными «охранниками», и система даст разрешение на их исполнение, только если они будут признаны безопасными.
Что такое Windows?
Любая операционная система, будь то Windows, MacOS X или Linux, работает по одному и тому же принципу: она автоматически загружается после включения компьютера и управляет работой всех его компонентов (центральным процессором, видеокартой и жесткими дисками).
Именно «операционка» обеспечивает работу всех прикладных программ, позволяя, например, текстовому редактору распечатывать документы, а браузеру – отображать веб-страницы.
Операционные системы на первых персональных компьютерах – MS DOS и ее клоны – управлялись командной строкой: пользователь должен был набирать все команды и запускать их на выполнение нажатием клавиши [Enter]. Однако с тех пор все радикально изменилось.
Само название Windows отражает суть нового принципа взаимодействия пользователя с программами: каждое приложение запускается в своем собственном окне, а пользователь имеет доступ ко всем открытым окнам. Переключение между ними и управление программой в отдельном окне может быть выполнено как посредством клавиатурных команд, так и с помощью мыши (но в обоих случаях вам не придется вводить команды – достаточно будет выбрать нужные пункты меню).
Как работает Windows?
Windows состоит из набора компонентов, образующих иерархическую структуру, на каждом уровне которой выполняются определенные задачи:
1. на самом нижнем уровне располагается ядро ОС – его еще называют «сердцем операционной системы». «Нижний» в данном контексте означает близость к аппаратным компонентам ПК, с которыми ядро взаимодействует напрямую. Оно осуществляет общее управление всеми происходящими в Windows процессами – например, определяет, сколько вычислительной мощности процессора нужно выделить той или иной программе. Windows всегда старается так распределить системные ресурсы, чтобы параллельно работающие приложения получали их в достаточном количестве;
2. системные функции – компонент, расположенный «над ядром» ОС и, отвечающий за выполнение системных функций – например, за работу службы автоматического обновления Windows;
3. подсистема Win32 – располагается на третьем уровне и предоставляет прикладным программам важнейшие интерфейсы.
4. программные интерфейсы (API) – располагаются на последнем уровне и отвечают за доступность различных технологий Windows, используемых, например, более ранними версиями программ или играми.
Как осуществляется взаимодействие прикладных программ и Windows?
Прикладные программы – антивирусы, офисные приложения или игры – не могут напрямую обращаться к процессору или осуществлять вывод результатов на экран монитора.
Разработка программного обеспечения превратилась бы в довольно трудную задачу, если бы в код программы нужно было добавлять модули для выполнения всех стандартных операций.
Каждое приложение использует готовые функции операционной системы, которые и позволяют отображать картинку на экране или, например, выполнять распечатку текста.
Вызов этих функций происходит через специальные программные интерфейсы (API), которые связывают прикладные программы с операционной системой и устройствами компьютера.
Если программе требуется записать файл на диск, она обращается к функции сохранения данных Windows. Приложение дает указание операционной системе: «Сохрани файл AБВГД на жесткий диск!», а Windows принимает эту команду и проделывает всю необходимую для записи файла работу: находит на жестком диске свободную область, резервирует это место под будущий файл и затем записывает туда информацию. Кроме того, система информирует программу о результате операции: прошло ли создание файла успешно или же возникли какие-либо проблемы.
Как видите, Windows выступает «посредником» между программой и устройствами компьютера. Самый известный программный интерфейс называется DirectX – он служит для поддержки различных графических режимов в играх.
Программы, разработанные для Windows, в большинстве случаев не будут работать под другими ОС (например, Linux или Mac OS); заметим, что и обратное тоже верно (то есть программа для Mac OS не будет работать под управлением Windows). Основная причина этого кроется в том, что в системах используются уникальные API, на работу с которыми рассчитаны прикладные программы.
Источник: infopedia.su