Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Сокеты. Вызов удаленных процедур. Сетевое аппаратное обеспечение.

Со́кеты (англ. socket — разъём) — название программного интерфейса для обеспечения обмена данными между процессами. Процессы при таком обмене могут исполняться как на одной ЭВМ, так и на различных ЭВМ, связанных между собой сетью. Сокет — абстрактный объект, представляющий конечную точку соединения.

Следует различать клиентские и серверные сокеты. Клиентские сокеты грубо можно сравнить с конечными аппаратами телефонной сети, а серверные — скоммутаторами. Клиентское приложение (например, браузер) использует только клиентские сокеты, а серверное (например, веб-сервер, которому браузер посылает запросы) — как клиентские, так и серверные сокеты.

Интерфейс сокетов впервые появился в BSD Unix. Программный интерфейс сокетов описан в стандарте POSIX.1 и в той или иной мере поддерживается всемисовременными операционными системами.

Как известно, для взаимодействия между машинами с помощью стека протоколов TCP/IP используются адреса и порты. Первое на текущий момент представляет собой 32-битный адрес (для протокола IPv4, 128-битный для IPv6), наиболее часто его представляют в символьной форме mmm.nnn.ppp.qqq (адрес, разбитый на четыре октета по одному байту в октете и разделенный точками).

Второе — это номер порта в диапазоне от 0 до 65535 (для протокола TCP).

Эта пара и есть сокет («гнездо», соответствующее адресу и порту).

В процессе обмена, как правило, используется два сокета — сокет отправителя и сокет получателя. Например, при обращении к серверу на HTTP порт сокет будет выглядеть так: 194.106.118.30:80, а ответ будет поступать на mmm.nnn.ppp.qqq: xxx.

Каждый процесс может создать «слушающий» сокет (серверный сокет) и привязать его к какому-нибудь порту операционной системы (в UNIX непривилегированные процессы не могут использовать порты меньше 1024). Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения. При этом сохраняется возможность проверить наличие соединений на данный момент, установить тайм-аут для операции и т. д.

Каждый сокет имеет свой адрес. ОС семейства UNIX могут поддерживать много типов адресов, но обязательными являются INET-адрес и UNIX-адрес. Если привязать сокет к UNIX-адресу, то будет создан специальный файл (файл сокета) по заданному пути, через который смогут сообщаться любые локальные процессы путём чтения/записи из него (см. Доменный сокет Unix). Сокеты типа INET доступны из сети и требуют выделения номера порта.

Обычно клиент явно «подсоединяется» к слушателю, после чего любое чтение или запись через его файловый дескриптор будут передавать данные между ним и сервером.

Вызов удалённых процедур (от англ. Remote Procedure Call, RPC) — класс технологий, позволяющих компьютерным программам вызывать функции или процедуры в другом адресном пространстве (как правило, на удалённых компьютерах). Обычно, реализация RPC технологии включает в себя два компонента: сетевой протокол для обмена в режиме клиент-сервер и язык сериализации объектов (или структур, для необъектных RPC). Различные реализации RPC имеют очень отличающуюся друг от друга архитектуру и разнятся в своих возможностях: одни реализуют архитектуру SOA, другие CORBA или DCOM. На транспортном уровне RPC используют в основном протоколы TCP и UDP, однако, некоторые построены на основе HTTP (что нарушает архитектуру ISO/OSI, так какHTTP изначально не транспортный протокол).

Аппаратное обеспечение сети

Чтобы сеть функционировала нужны сервера, компьютеры абонентов, устройства для объединения компьютеров в сети и линии связи между ними.

Компьютер-сервер – это высокопроизводительный компьютер, который постоянно подключён к сети и имеет бесперебойное электропитание, при этом он занимается постоянным приёмом/передачей информации по сети и обеспечивает предоставление информационных услуг в сети.

Компьютер-терминал – это наш домашний компьютер, через который мы выходим в интернет для получения и передачи информации.

Чтобы выйти в интернет не достаточно одного компьютера, ещё для этого необходим модем.

Модем – название произошло от слов модулятор/демодулятор. Модуляция – это преобразование информации из дискретной цифровой формы в аналоговую при передаче информации в сеть, демодуляция – наоборот. Информация в ЭВМ имеет дискретную двоичную форму, а линии телефонной связи, через которые выходим в интернет передают аналоговый – непрерывный сигнал, вот для того чтобы преобразовывать сигнал из одного вида в другой и нужен модем.

Модем (модулятор/демодулятор) — устройство для преобразования физической формы представления информации из компьютерного стандарта в стандарт телефонной связи и обратно.

До развития интернета самыми популярными были модемы для коммутируемых телефонных линий или как их ещё называли dial-up модемы, которые издавали шипяще-звинящие звуки в момент подключения к сети и обеспечивали скорость передачи до 8 килобит в секунду.

На скорость работы таких модемов влияла их скорость, измеряющаяся в бодах.

 

26 Сетевые службы и протоколы.
Сетевые службы и протоколы.

Сетевые протоколы фактически управляют сетью, указывая сетевым устройствам, что они должны делать. Сетевые протоколы - это набор правил по которым работает сеть. Для передачи информации по сети, компьютеры должны использовать один и тот же набор правил, т.е. единый сетевой протокол.
Сетевые службы предназначены для выполнения определенных функций, в рамках действующего протокола, например служба разрешения имен, служба автоматического выделения адресов и т.д.

Существует множество типов сетевых протоколов, работающих в разных сетях и на разных уровнях модели OSI. Вот некоторые из них:


  • TCP/IP
  • NetBEUI
  • IPX/SPX
  • NWLink
  • Apple Talk
  • DLC

 

Протоколы удаленного доступа

В состав операционных систем Windows входит служба Routing and Remote Access Service (RRAS), которая позволяет удаленным клиентам прозрачно подключаться к удаленному серверу. Служба RRAS поддерживает три протокола удаленного доступа:


  • Point-to-Point Protocol(PPP) - стандартизованный набор протоколов обеспечивающий:
    • механизм согласования параметров устройств передачи данных;
    • механизм сжатия передаваемой информации с целью повышения эффективности и надежности передачи;
    • механизм обнаружения и исправления ошибок;
    • механизмы защиты, предотвращающие несанкционированные подключения.

 

  • Serial Line Internet Protocol(SLIP) - простой протокол, не располагающий средствами обнаружения ошибок, возникающих при передаче данных, и позволяющий использовать только один протокол сетевого уровня - IP, что делает его малоэффективным.
  • Asynchronous NetBEUI (AsyBEUI) - протокол службы удаленного доступа Microsoft, известный также как асинхронный NetBEUI; применяется устаревшими клиентами удаленного доступа под управлением Windows NT, Windows 3.1, Windows for Workgroups, MSDOS и LAN Manager.

 

Стек протоколов TCP/IP.

Стек TCP/IP - набор протоколов, разработанных для обеспечения взаимосвязи различных устройств в сети Интернет. Стек включает следующие протоколы

 

Протокол IP (Internet protocol) - основной протокол сетевого уровня. Определяет способ адресации на сетевом уровне. Обеспечивает маршрутизацию в сетях, представляющих собой объединение сетей, базирующихся на разных сетевых технологиях.

Протокол ARP (Address Resolution Protocol) - вспомогательный протокол стека TCP/IP, предназначенный для определения аппаратного адреса узла назначения по заданному IP-адресу.

Протокол ICMP(Internet Control Message Protocol) - вспомогательный протокол стека TCP/IP, предназначенный для обмена информацией об ошибках передачи данных протоколом IP, а также для обмена управляющей информацией на сетевом уровне. В частности, утилита PING использует этот протокол для посылки так называемого "эхо-запроса".

Протокол IGMP(Internet Group Management Protocol) - протокол, используемый для отправки данных определенной группе получателей.

Протокол TCP (Transmission Control Protocol) - протокол, обеспечивающий гарантированную доставку данных с установлением виртуального соединения между программами, которым требуется использовать сетевые услуги. Установление виртуального соединения предполагает, что получатель готов к приему данных от конкретного отправителя. Это означает, что все параметры взаимодействия согласованы, и компьютер-получатель выделил соответствующие ресурсы для обеспечения приема.

Протокол UDP (User Datagram Protocol) - протокол, обеспечивающий негарантированную доставку данных без установления виртуального соединения между программами, которым требуется использовать сетевые услуги.


Протокол NetBEUI.

Протокол NetBEUI (NetBIOS Enhanced User interface) разрабатывался как протокол для небольших локальных сетей, содержащих 20-200 компьютеров. NetBEUI - немаршрутизируемый протокол, поскольку в нем не реализован сетевой уровень. Данный протокол поддерживается всеми операционными системами Microsoft, однако в современных версиях Windows он выключен по умолчанию и используется, в основном, для поддержки рабочих станций Windows 9х.

Операционные системы Windows XP и Windows Server 2003 не поддерживают сетевой протокол NetBEUI. Данный протокол не включен в список сетевых протоколов устанавливаемых при инсталляции Windows.

При обновлении предыдущей версии Microsoft Windows с установленным протоколом NetBEUI мастер проверки совместимости выводит сообщение о том, что протокол NetBEUI будет удален при обновлении операционной системы, т.к. является несовместимым с Windows XP.

Однако, возможность установки протокола NetBEUI в Windows XP существует. На установочном компакт-диске присутствуют файлы Netnbf.inf и Nbf.sys, необходимые для его установки. Чтобы установить протокол NetBEUI выполните следующие действия:
1. Нажмите кнопку Пуск, откройте Панель управления и выберите элемент панели управления Сетевые подключения.
2. Щелкните правой кнопкой мыши по значку сетевой платы, для которой необходимо добавить протокол NetBEUI, и в контекстном меню выберите пункт Свойства.
3. Перейдите на вкладку Главная и нажмите кнопку Установить.
4. В списке сетевых компонентов выберите Протокол и нажмите кнопку Добавить.
5. Нажмите кнопку Установить с диска, вставьте установочный компакт-диск Windows XP, в окне обзора откройте папку Valueadd\msft\net\netbeui, выберите файл Netnbf.inf и нажмите кнопку Открыть.
6. Нажмите кнопку ОК. В окне «Выбор сетевого протокола» нажмите кнопку ОК для завершения установки.

Протокол NWLink.

Это Microsoft-совместимый IPX/SPX протокол для Windows. Необходим для доступа к сетям под управлением серверов с ОС Nоwell NetWare. Сам протокол NWLink реализует сетевой и транспортный уровень взаимодействия.

Для доступа к файлам или принтерам сервера NetWare надо задействовать специальный редиректор, представленный в Windows XP Professional службой CSNW (клиент для сетей NetWare), а в Windows Server 2003 - службой GSNW (шлюз для сетей NetWare). Протокол NWLink включен в состав обеих ОС Windows и устанавливается автоматически вместе с клиентом и службой шлюза для NetWare.

Протокол Apple Talk.

Это набор протоколов, разработанный Apple Computer, Inc. для связи компьютеров Apple Macintosh. Windows поддерживает все протоколы AppleTalk, что позволяет этой операционной системе выступать в роли маршрутизатора и сервера удаленного доступа сетей Macintosh. Для работы с протоколом AppleTalk предоставляется соответствующая служба доступа к файлам и принтерам.


Порядок привязки протоколов.

Протоколы можно добавлять, удалять и выборочно привязывать ко всем сетевым интерфейсам сервера. По умолчанию порядок привязки протоколов определяется последовательностью, в которой они были установлены. Но при этом администратор всегда может изменить этот порядок для отдельных интерфейсов, что делает процесс управления более гибким. Например, к одному интерфейсу могут быть привязаны протоколы TCP/IP и IPX/SPX с приоритетом протокола TCP/IP, a к другому - те же протоколы, но с приоритетом IPX/SPX. Кроме того, для отдельных сетевых интерфейсов, протоколов и их комбинации можно произвольно включать или отключать сетевые службы. Это позволяет администраторам легко создавать защищенные конфигурации сети (например, отключить все сетевые службы для общедоступных интерфейсов с прямым подключением к Интернету).

 

27 Принципы построения и защита от сбоев и несанкционированного доступа.

 

Принцип модульности

Операционная система состоит из множества программных модулей. Под модулем в общем случае понимают функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами. По своему определению модуль предполагает легкий способ его замены другим при наличии заданных интерфейсов. Способы обособления составных частей операционной системы часто происходит по функциональному признаку.

В значительной степени разделение системы на модули определяется используемым методом проектирования системы (снизу вверх или наоборот).

Особо важное значение при построении операционных систем имеют привилегированные, повторно входимые и реентерабельные модули, ибо они позволяют более эффективно использовать ресурсы вычислительной системы. Как мы уже знаем , свойство реентерабельности может быть достигнуто различными способами, но чаще всего используются механизмы динамического выделения памяти под переменные для нового вычислительного процесса (задачи). В некоторых системах реентерабельность программы получают автоматически. Этого можно достичь благодаря неизменяемости кодовых частей программ при исполнении, а также автоматическому распределению регистров, автоматическому отделению кодовых частей программ отданных и помещению последних в системную область памяти, которая распределяется по запросам от выполняющихся задач. Естественно, что для этого необходима соответствующая аппаратная поддержка. В других случаях это достигается программистами за счет использования специальных системных модулей.

Принцип модульности отражает технологические иэксплуатационные свойства системы. Наибольший эффект от его использования достижим в случае когда, принцип распространён одновременно на операционную систему, прикладные программы и аппаратуру. Принцип модульности является одним из основных в UNIX-системах.

Во всех операционных системах можно выделить некоторую часть наиболее важных управляющих модулей, которые должны постоянно находиться в оперативной памяти для более скорой реакции системы на возникающие события и более эффективной организации вычислительных процессов. Эти модули вместе с некоторыми системными структурами данных, необходимых для функционирования операционной системы, образуют ядро опреционной системы.

При формировании состава ядра требуется удовлетворить двум противоречивым требованиям. В состав ядра должны войти наиболее часто используемые системные модули. Количество модулей должно быть таким, чтобы объем памяти, занимаемый ядром, был не слишком большим. В его состав, как правило, входят модули по управлению системой прерываний, средства по переводу программ из состояния счета в состояние ожидания, готовности и обратно, средства по распределению основных ресурсов, таких как оперативная память и процессор. В главе 1 мы уже упоминали, что операционные системы могут быть микроядерными и макроядерными (монолитными). В микроядерных операционных системах само ядро очень компактно, а остальные модули вызываются из ядра как сервисные. При этом сервисные модули могут размещаться и в оперативной памяти. В противоположность микроядерным в макроядерных операционных системах главная супервизорная часть включает в себя большое количество модулей. Более подробно о микроядерных и макроядерных операционных системах см. далее. Помимо программных модулей, входящих в состав ядра и постоянно располагающихся в оперативной памяти, может быть много других системных программных модулей, которые получают название транзитных. Транзитные программные модули загружаются в оперативную память только при необходимости и в случае отсутствия свободного пространства могут быть замещены другими транзитными модулями. В качестве синонима термина «транзитный» можно использовать термин «диск-резидентный».

Принцип особого режима работы

Ядро операционной системы и низкоуровневые драйверы, управляющие работой каналов и устройств ввода-вывода, должны работать в специальном режиме работы процессора. Это необходимо по нескольким причинам. Во-первых, введение специального режима работы процессора, в котором должен исполняться только код операционной системы, позволяет существенно повысить надежность выполнения вычислений. Это касается выполнения как управляющих функций самой операционной системы, так и прикладных задач пользователей. Категорически нельзя допускать, чтобы какая-нибудь прикладная программа могла вмешиваться (преднамеренно или в связи с появлением ошибок вычислений) в вычисления, связанные с супервизорной частью операционной системы. Во-вторых, ряд функции должен выполняться исключительно централизованно, под управлением операционной системы. К этим функциям мы, прежде всего должны отнести функции, связанные с управлением процессами ввода-вывода данных Вспомните основные принципы организации ввода-вывода (см. главу 5): все операции ввода-вывода данных объявляются привилегированными. Это легче всего сделать, если процессор работать, как минимум, в двух режимах: привилегированном (режиме супервизора) и пользовательском. В первом режиме процессор может выполнять все команды, тогда как в пользовательском набор разрешенных команд ограничен. Естественно, что помимо запрета на выполнение команд ввода-вывода и пользовательском режиме работы процессор не должен позволять обращаться к своим специальным системным регистрам - эти регистры должны быть доступны только в привилегированном режиме. Попытка выполнить запрещённую команду должна вызывать прерывание (исключение).

Поскольку любая программа требует операций ввода вывода, прикладные программы для выполнения этих операций к супервизорной части операционной системы с соответствующим запросом. Каждый запрос имеет свой идентификатор и необходимое количество параметров. Супервизор задач при получении запроса тщательно его проверяет, и только если он корректный и имеет право на выполнение – передаёт его соответствующему модулю ОС. Множество запросов к ОС образует соответствующий системный интерфейс прикладного программирования (Application Program Interface, API).

Принцип виртуализации.

Виртуализация позволяет абстрагироваться от конкретных ресурсов. Наиболее законченным и естественным проявлением концепции виртуальности является понятие виртуальной машины. По сути, любая операционная система, организуя по определённым правилам управление процессами, скрывает от пользователя и его приложений реальные аппаратные и иные ресурсы, заменяя их некоторой абстракцией, в результате пользователи видят и используют виртуальную машину как некое устройство, способное воспринимать их программы, написанные на определённом языке программирования, выполнять их и выдавать результаты на виртуальные устройства, которые связаны с реально существующими в данной вычислительной системе.

Часто виртуальная машина, предоставляемая пользователю, воспроизводит архитектуру реальной машины, но архитектурные элементы в таком представлении выступают с новыми или улучшенными характеристиками, часто упрощающими работу с системой. Чаще всего пользователи желают иметь собственную «идеализированную» по архитектурным характеристикам машину в следующем составе:

§ Единообразная по логике работы память (виртуальная) достаточного для выполнения приложений объема. Организация работы с информацией в такой памяти производится в терминах работы с сегментами данных на уровне вы бранного пользователем языка программирования.

§ Произвольное количество процессоров (виртуальных), способных работать параллельно и взаимодействовать во время работы. Способы управления процессорами, в том числе синхронизация и информационные взаимодействие реализованы и доступны пользователям с уровня используемого языка в терминах управления процессами.

§ Произвольное количество внешних устройств (виртуальных), способных работать с памятью виртуальной машины параллельно или последовательно, асинхронно или синхронно по отношению к работе того или иного виртуально, процессора, которые инициируют работу этих устройств. Информация, передаваемая или хранимая на виртуальных устройствах, не ограничена допустимыми размерами. Доступ к такой информации осуществляется па основе либо последовательного, либо прямого способа доступа в терминах соответствующей системы управления файлами. Предусмотрено расширение информационных структур данных, хранимых на виртуальных устройствах.

Чем больше виртуальная машина приближена к «идеальной», тем больше степень её виртуальности.

Одним из важнейших результатов принципа виртуализации является возможность организации выполнения в операционной системе приложений, разработанной для другой операционной системы.

Одним из аспектов общего принципа виртуализации является независимость программ от внешних устройств, то есть связь программ с конкретными устройствами производится не в процессе создания программы, а в период планирования её исполнения.

Принцип мобильности

Мобильность, или переносимость, означает возможность и лёгкость переноса операционной системы на другую аппаратную платформу. Мобильная ОС обычно разрабатывается с помощью специального языка высокого уровня, предназначенного для создания системного программного обеспечения. Одним из таких языков является С++.

Обеспечить переносимость ОС достаточно сложно. Дело в том, что архитектуры разных процессоров могут очень сильно различаться. Поэтому часть программных модулей, которые более всего зависят от аппаратных особенностей, разрабатывают на языке ассемблера. Очевидно, что модули, написанные на ассемблере, при переносе ОС на другую платформу, должны быть написаны заново. Зато остальная (большая) часть кода ОС может быть просто перекомпилирована под целевой процессор. По этому принципу была создана ОС UNIX. Для обеспечения переносимости был создан стандарт на интерфейс прикладного программирования POSIX (Portable Operating System Interface for Computer Environment).

Принцип совместимости.

Одним из аспектов совместимости является возможность ОС выполнять программы, написанные для других операционных систем или для более ранних версий данной операционной системы, а так же для другой аппаратной платформы.

Необходимо разделять вопросы двоичной совместимости и совместимости на уровне исходных текстов приложений. Двоичная совместимость достигается в том случае, когда можно взять исполняемую программу и запустить ее на выполнение на другой операционной системе. Для этого необходимы: совместимость на уровне команд процессора, совместимость на уровне системных вызовов и даже на уровне библиотечных вызовов, если они являются динамически связываемыми. Совместимость на уровне исходных текстов требует наличия соответствующего транслятора в составе системного программного обеспечения, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имеющихся исходных текстов в новый выполняемый модуль. Гораздо сложнее достичь двоичной совместимости между процессорами, основанными на разных архитектурах. Для того чтобы один компьютер выполнял программы другого (например, программу для персонального компьютера типа IВМ РС хочется выполнять на компьютере типа Маc от фирмы Арр1е), этот компьютер должен работать с машинными командами, которые ему изначально непонятны. Например, процессор типа РоwerРС на Маc должен исполнять двоичный код, предназначенный для процессора i80x86. Процессор i80x86 имеет свой собственные дешифратор команд, регистры и внутреннюю архитектуру. Процессор РоwегРС имеет другую архитектуру, он не понимает непосредственно двоичный код 80x86, поэтому Должен выбрать каждую команду, декодировать ее, а затем выполнить эквивалентную подпрограмму. Выходом в таких случаях является использование так называемых прикладных сред, или эмуляторов.

Принцип генерируемости

Согласно принципу генерируемости, исходное представление центральной системной управляющей части операционной системы (ее ядра и основных компонентов, которые должны постоянно находиться в оперативной памяти) должно обеспечивать возможность настройки, исходя из конкретной конфигурации конкретного вычислительного комплекса и круга решаемых задач. Под генерацией операционной системы понимается ее сборка (компоновка) из отдельных программных модулей. В результате генерации получают скомпонованные двоичные коды операционной системы и построенные системные таблицы, отражающие конкретную конфигурацию компьютера. Эта процедура проводится редко перед достаточно протяженным периодом эксплуатации операционной системы. Процесс генерации осуществляется с помощью специальной программы-генератора и соответствующего входного языка для этой программы, позволяющего описывать программные возможности системы и конфигурацию машины. В результате генерации получается полная версия операционной системы. Сгенерированная версия операционной системы представляет собой совокупность системных наборов модулей и данных.

Упомянутый раньше принцип модульности положительно проявляется при генерации операционной системы. Он существенно упрощает ее настройку на требуемую конфигурацию вычислительной системы. В наши дни при использовании персональных компьютеров с принципом генерируемости операционной системы можно столкнуться разве что при работе с Linux. В этой UNIX-системе имеется возможность не только использовать какое-либо готовое ядро операционной системы, но и самому сгенерировать (скомпилировать) такое ядро, которое будет оптимальным для данного конкретного персонального компьютера и решаемых и нем задач. Кроме генерации ядра в Linux имеется возможность указать и набор подгружаемых драйверов и служб, то есть часть функций может реализовываться модулями, непосредственно входящими в ядро системы, а часть - модулями, имеющими статус подгружаемых, транзитных.

В остальных современных распространённых ОС конфигурирование системы под соответствующий состав оборудования осуществляется на этапе установки. В дальнейшем, при эксплуатации компьютера, можно изменить состав драйверов, служб, отдельных параметров и режимов работы.

Принцип открытости

Открытая операционная система доступна для анализа как пользователям, так и системным специалистам, обслуживающим вычислительную систему. Наращиваемая (модифицируемая, развиваемая) операционная система позволяет не только использовать возможности генерации, по и вводить в ее состав новые модули, совершенствовать существующие и т. д. Другими словами, необходимо, чтобы можно было легко внести дополнения и изменения, если это потребуется, не нарушая целостности системы. Прекрасные возможности для расширения предоставляет подход к структурированию операционной системы по типу клиент-сервер с использованием микроядерной технологии. В соответствии с этим подходом операционная система строится как совокупность привилегированной управляющей программы и набора непривилегированных служб — "серверов". Основная часть операционном системы может оставаться неизменной, в то время как добавляются новые службы пли изменяются старые. Этот принцип иногда трактуют как расширяемость системы. К открытым операционным системам прежде всего следует отнести UNIX-системы и, естественно, системы Linux.

Последнее изменение этой страницы: 2016-06-09

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...