Кроме, непосредственно, байткода в Parrot есть специальный язык низкого уровня Parrot Assembly Language (PASM). Ниже приведен пример небольшой программы на нём:
set I1, 4 # Запись в регистр I1 числа 4inc I1 # Инкремент I1add I1, 2 # Добавление к I1 двойки; значение в I1 станет равным 7set N1, 42.0 # Запись в N1 значения 42.0dec N1 # Декремент N1, новое значение будет 41.0sub N1, 2.0 # N1 станет равным 39.0print I1 # Вывод содержимого I1print ", " # Вывод строки «, »print N1 # Вывод значения N1print "\n" # Вывод символа перевода строкиendПоддерживаемые платформы
Parrot компилируется и запускается на большом числе платформ, включая все самые распространенные, в том числе Linux (x86), Cygwin, Win32, Tru64, OpenVMS (Alpha), Solaris (Sparc),FreeBSD (x86).
18. Операционные системы АСНИ. Ли́нукс.
Linux
GNU и Linux | |
Рабочий стол KDE | |
Разработчик | Линус Торвальдс и многочисленные разработчики по всему миру |
Семейство ОС | Unix-подобные |
Тип ядра | монолитное ядро с поддержкойподгружаемых модулей ядра |
Лицензия | в основном GNU GPL |
Состояние | актуальное |
GNU/Linux (возможно GNU+Linux) или просто Linux ([ˈlɪnəks][1][2] или [ˈlɪnʊks][3][4][5]), также Ли́нукс — Unix-подобная операционная система, созданная и распространяющаяся в соответствии с моделью разработки свободного и открытого программного обеспечения. В отличие от других ОС, Linux не имеет единой «официальной» комплектации, а распространяется (чаще всего бесплатно) в виде ряда различных готовых дистрибутивов, имеющих свой наборприкладных программ и уже настроенных под конкретные нужды пользователя.
Разработка свободной «целостной Unix-совместимой программной системы» была начата в 1983 годуРичардом Столлманом под названием Проект GNU, для которого им была создана свободная лицензия GNU GPL. К началу 1990-х многие библиотеки и системные программы были уже готовы, но важнейшие низкоуровневые элементы не были завершены. В 1991 году Линус Торвальдс создал определяющий компонент, ядро системы — Linux и выпустил его по созданной Столлманом лицензии GNU GPL. Таким образом из всех компонентов и другого программного обеспечения в 1991 году была создана полноценная работающая свободная операционная система GNU/Linux или просто Linux.
|
На начальном этапе Linux бесплатно разрабатывался только энтузиастами-добровольцами, но с успехом Linux и его массовым коммерческим использованием дорабатывать ОС и вносить свой вклад стали и компании, со временем став значительной силой. Всё ПО по-прежнему бесплатно доступно посвободным лицензиям. В 2008 году расчёты показывали, что для того чтобы «с нуля» разработать систему, аналогичную Fedora 9, потребовалось бы затратить 10,8 млрд долл.[6] Совокупная стоимость ядра Linux оценена в более чем 1 млрд евро (около 1,4 млрд долл.). Только за 2008 год ценность ядра Linux увеличилась на 225 млн евро. В системе Linux воплощён труд в эквиваленте 73 тыс. человеко-лет[7][8].
В настоящее время системы Linux лидируют на рынках смартфонов (Android занимает 64,1 % рынка[9]),интернет-серверов (60 %), самых мощных суперкомпьютеров (91 %), а также, согласно Linux Foundation, в дата-центрах и на предприятиях[10], имеют значительную долю рынка нетбуков (32 % на 2009 год[11]), а на рынке домашних компьютеров Linux прочно занимает 3 место с 1-2,5 % (самый популярный дистрибутив — Ubuntu с 20 миллионами пользователей). Многие производители ПО традиционно выпускают его только для трёх ОС — Windows, Mac OS и Linux. Система продолжает быстро совершенствоваться (например, новая версия ядра выпускается каждые 2-3 месяца[10], с 2005 года приняли участие более 7800 разработчиков из более чем 800 различных компаний[12]) и набирать популярность (за 9 месяцев с мая 2011 по январь 2012 доля Linux выросла на 64 %[13]).
|
С тех пор как Linux был создан как ОС для x86-ПК, он был портирован на множество платформ и процессоров, включая x86-64, PowerPC и ARM. Linux работает в роутерах, телевизорах и игровых приставках.
Согласно distrowatch, наиболее популярными дистрибутивами являются: deb-based (Debian, Mint,Ubuntu), RPM-based (RedHat, Fedora, Mageia, OpenSUSE), source-based (Slackware, Gentoo).
Собственные дистрибутивы Linux выпускаются различными компаниями и энтузиастами со всего мира, в том числе, например, из России и Украины.
Название
Операционные системы на основе GNU и Linux называют «Linux» или «GNU/Linux»[14][15]. Первый вариант гораздо более популярен и чаще используется сторонниками термина открытого ПО[16], второй — сторонниками свободного ПО.
Хотя в английском второй вариант пишется и звучит как «GNU/Linux», это не всегда удобно в других языках. Поэтому, если можно показать равноправность GNU и Linux лучшим способом — например, GNU+Linux (гну плюс линукс), GNU-Linux (во французском), или GNU con Linux (в испанском), лучше использовать его, чем «GNU Linux» («гну ли́нукс»), подразумевающее, что ядро Linux было разработано или принадлежит проекту GNU[17]. Аналогичным образом построены названия TCP/IP и Ogg/Vorbis.
Linux произносится [ˈlɪnəks] (AmE), а также [ˈlaɪnəks] (BrE), [ˈlɪnʊks] и [ˈlɪnəks].
19. Операционные системы АСНИ. Unix.
Unix
Операционная система Unix была задумана и реализована в 1969 году в Bell Laboratories компанииAT&T в США Кеном Томпсоном, Деннисом Ритчи, Дугласом Макилроем и Джо Осанной.
|
Операционная система Unix была впервые выпущена в 1971 году и первоначально была написана целиком на ассемблере, что было обычной практикой того времени.
Позже, в 1973 году, Unix была переписана Деннисом Ритчи на языке программирования Cи (за исключением ядра и системы ввода/вывода).
То, что операционная система была написана на языке высокого уровня, позволило упростить еёпортирование на различные компьютерные платформы. Из-за особенностей лицензии AT&T была вынуждена открывать исходный код операционной системы всем обратившимся[18], что позволило Unix быстро развиться и стать популярной во многих научных учреждениях и предприятиях.
В 1984 году AT&T отделилась от Bell Labs.
Избавившись от необходимости бесплатного лицензирования системы, Bell Labs начала продажи Unix как проприетарного продукта.
GNU
Проект GNU был начат в 1983 году Ричардом Столлманом с целью создания «целостной Unix-совместимой программной системы», полностью состоящей из свободного программного обеспечения.
Работа началась в 1984[19]. Позднее, в 1985, Столлман основал Free Software Foundation, а в 1989 году составил GNU General Public License (GNU GPL).
В начале 1990-х многие из программ, необходимых в операционной системе (такие, как библиотеки,компиляторы, текстовые редакторы, командная оболочка UNIX, и оконная система), были завершены, в то время как разработка низкоуровневых элементов, таких как драйверы, демоны и ядра была приостановлена и они оставались незавершёнными[20]. Линус Торвальдс сказал, что если бы ядро GNU было доступно в то время (1991), он бы не решился написать своё собственное[21].
BSD
Несмотря на то, что из-за юридических проблем с лицензией 386BSD, из которой позже произошлиNetBSD и FreeBSD, не была выпущена до 1992 года, её разработка предшествовала Linux. Линус Торвальдс сказал, что если бы 386BSD была доступна в то время, он, вероятно, не создал бы Linux[22].
MINIX
Эндрю Таненбаум (слева), автор операционной системы MINIX и Линус Торвальдс (справа), основной разработчик ядра Линукс |
MINIX является недорогой минимальной UNIX-подобной операционной системой, предназначенной для образовательных целей в области компьютерных наук, написанной Эндрю Таненбаумом.
Начиная с версии 3, MINIX стала свободной и была переработана для «серьезного» применения.
В 1991 году, во время обучения в Хельсинкском университете Торвальдс заинтересовался операционными системами[23] и был разочарован лицензией MINIX, которая ограничивала её использование только образовательными целями (что исключало любое коммерческое использование), вследствие чего начал работать над своей собственной операционной системой, которая в итоге стала Linux.
Торвальдс начал разработку ядра Linux на MINIX, и приложения, написанные для MINIX, были также использованы в Linux. Позже, когда Linux достиг определённой зрелости, появилась возможность продолжать разработку уже на базе самого Linux[24]. Приложения GNU также заменили приложения MINIX, так как код GNU, находящийся в свободном доступе, был более удобен для применения в молодой операционной системе. Исходный код под лицензией GNU GPL может быть использован в других проектах, если они также выпускаются под той же или совместимой лицензией. Для того чтобы сделать Linux доступным для коммерческого использования, Торвальдс начал переходить от своей первоначальной лицензии (которая запрещала коммерческое распространение) на GNU GPL.[25]Разработчики работали над полной интеграцией компонентов GNU с Linux с целью создания полнофункциональной и свободной операционной системы (Linux).
Коммерческий и общественный спрос
Дистрибутивы на основе Linux имеют широкое применение в различных областях: от встраиваемых систем до суперкомпьютеров[26][27][27], надёжно удерживают лидирующие позиции на рынке серверов, как правило, в составе комплекса серверного программного обеспечения LAMP[28].
Самая популярная ОС для смартфонов и планшетных компьютеров — Android, также основана на ядре Linux.
Также растёт использование Linux в качестве десктопной системы для дома и офиса[29][30][31][32][33][34][35].
Дистрибутивы Linux пользуются популярностью у различных государственных структур: Федеральное правительство Бразилии хорошо известно своей поддержкой Linux[36][37], а российские военные разрабатывают свой собственный дистрибутив Линукс[38].
Правительство индийского штата Керала выпустило предписание о переходе всех школ штата на использование Linux[39][40]. Для обеспечения технологической независимости Китай использует только Linux на своих процессорах Loongson[41]. Некоторые регионы Испании разработали свои собственные дистрибутивы Linux, которые используются в образовании и госуправлении, например, такие какgnuLinEx в Эстремадуре и Guadalinex в Андалусии. Португалия также пользуется своим собственным дистрибутивом Caixa Mágica, разработанным для нетбука Magalhães[42] и государственной программы электронного образования[43]. Франция и Германия предпринимают ряд шагов по увеличению использования Linux[44].
Текущее развитие
Линус Торвальдс продолжает руководить разработкой ядра. Ричард Столлман возглавляет Free Software Foundation, которая, в свою очередь, поддерживает разработку компонентов GNU.
Наконец, частные лица и корпорации разрабатывают не-GNU-компоненты.
Компоненты, разработанные сторонними производителями, являются результатом огромного объёма работы и могут быть как модулями ядра, так и пользовательскими приложениями и библиотеками.
Компании и сообщества разработчиков Linux объединяют и интегрируют ядро, компоненты GNU и не-GNU, дополнительное программное обеспечение, средства управления пакетами и распространяют получившиеся системы в виде дистрибутивов Linux.
Логотип Linux
Официальным логотипом и талисманом Linux является пингвин Tux (произносится Такс, в Рунете часто употребляется неправильное Тукс). Был создан в 1996 году Ларри Юингом (англ. Larry Ewing)[45].
Модель
Линукс-системы представляют собой модульные Unix-подобные операционные системы. В большей степени дизайн Линукс-систем базируется на принципах, заложенных в Unix в течение 1970-х и 1980-х годов. Такая система использует монолитное ядро Линукс, которое управляет процессами, сетевыми функциями, периферией и доступом к файловой системе.
Драйвера устройства либо интегрированы непосредственно в ядро, либо добавлены в виде модулей, загружаемых во время работы системы.
Отдельные программы, взаимодействуя с ядром, обеспечивают функции системы более высокого уровня. Например, пользовательские компоненты GNU являются важной частью большинства Линукс-систем, включающей в себя наиболее распространенные реализации библиотеки языка Си, популярныхоболочек операционной системы, и многих других общих инструментов Unix, которые выполняют многие основные задачи операционной системы.
Графический интерфейс пользователя (или GUI) в большинстве систем Линукс построен на основе X Window System.
Интерфейс пользователя
См. также: Интерфейс пользователя
В Линукс-системах пользователи работают через интерфейс командной строки (CLI), графический интерфейс пользователя (GUI), или, в случае встраиваемых систем, через элементы управления соответствующих аппаратных средств.
Настольные системы, как правило, имеют графический пользовательский интерфейс, в котором командная строка доступна через окно эмулятора терминала или в отдельной виртуальной консоли.
Большинство низкоуровневых компонентов Линукс, включая пользовательские компоненты GNU, используют исключительно командную строку.
Командная строка особенно хорошо подходит для автоматизации повторяющихся или отложенных задач, а также предоставляет очень простой механизм межпроцессного взаимодействия.
Программа графического эмулятора терминала часто используются для доступа к командной строке срабочего стола Линукс.
Линукс-системы обычно реализуют интерфейс командной строки при помощи оболочки операционной системы, которая также является традиционным способом взаимодействия с системой Unix.
Дистрибутивы, специально разработанные для серверов, могут использовать командную строку в качестве единственного интерфейса.
На настольных системах наибольшей популярностью пользуются пользовательские интерфейсы, основанные на таких средах рабочего стола как KDE Plasma Desktop, GNOME и Xfce[46], хотя также существует целый ряд других пользовательских интерфейсов. Самые популярные пользовательские интерфейсы основаны на X Window System (часто просто «X» или «иксы»).
«X» предоставляет прозрачность сети и позволяет графическим приложениям, работающим на одном компьютере, отображаться на другом компьютере, на котором пользователь может взаимодействовать с ними[47].
Другие графические интерфейсы, такие как FVWM, Enlightenment и Window Maker, могут быть классифицированы как простые менеджеры окон X Window System, которые предоставляют окружение рабочего стола с минимальной функциональностью.
Оконный менеджер предоставляет средства для управления размещением и внешним видом отдельных окон приложений, а также взаимодействует с X Window System.
Окружение рабочего стола включает в себя оконные менеджеры, как часть стандартной установки: (Metacity для GNOME, KWin для KDE, Xfwm для Xfce с 2010 года), хотя пользователь при желании может выбрать другой менеджер окон[47].
Разработка
Ричард Столлман — основатель проекта GNU
GNU/Linux работает на множестве архитектур процессора, таких как x86, x86-64, PowerPC, ARM, Alpha AXP, SPARC,Motorola 680x0, SuperH, IBM System/390, MIPS, PA-RISC, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa и многих других.
В отличие от коммерческих систем, таких как Windows илиMac OS X, Linux не имеет географического центра разработки. Нет и организации, которая владела бы этой системой; нет даже единого координационного центра. Программы для Linux — результат работы тысяч проектов. Некоторые из этих проектов централизованы[48][49], некоторые сосредоточены в фирмах. Многие проекты объединяют хакеров[50] со всего света, которые знакомы только по переписке. Создать свой проект или присоединиться к уже существующему может любой и, в случае успеха, результаты работы станут известны миллионам пользователей. Пользователи принимают участие в тестировании свободных программ, общаются с разработчиками напрямую, что позволяет быстро находить и исправлять ошибки и реализовывать новые возможности.
История развития UNIX-систем. Linux является UNIX-совместимой, однако основывается на собственном исходном коде
Именно такая гибкая и динамичная система разработки, невозможная для проектов с закрытым кодом, определяет исключительную экономическую эффективность Linux[51]. Низкая стоимость свободных разработок, отлаженные механизмы тестирования и распространения, привлечение людей из разных стран, обладающих разным видением проблем, защита кода лицензией GPL — всё это стало причиной успеха свободных программ[52].
Конечно, такая высокая эффективность разработки не могла не заинтересовать крупные фирмы, которые стали открывать свои проекты. Так появились Mozilla(Netscape, AOL), OpenOffice.org (Oracle), свободный клонInterBase (Borland) — Firebird, SAP DB (SAP). IBMспособствовала переносу Linux на свои мейнфреймы.
С другой стороны, открытый код значительно снижает себестоимость разработки закрытых систем для Linux и позволяет снизить цену решения для пользователя. Вот почему Linux стала платформой, часто рекомендуемой для таких продуктов, как СУБД Oracle Database, DB2, Informix, SyBase, SAP R3, Domino.
Сообщество
См. также: en:Free software community и Группа пользователей Linux
Сообщество Linux поддерживает связь посредством групп пользователей Linux.
Программирование в Linux
Применение
В апреле 2011 года семейство операционных систем на базе ядра Linux — четвёртое по популярности в мире среди клиентов Всемирной паутины (включая мобильные телефоны). По разным данным, их популярность составляет от 1,5 до 5 %[53][54]. На рынке веб-серверов доля Linux порядка 32 % (ещё 64,1 % указаны как доля Unix)[55]. По данным TOP500, Linux используется на 91 % самых мощныхсуперкомпьютеров планеты[56].
Можно выделить несколько основных областей, где нередко можно встретить Linux:
§ Серверы, требующие высокого аптайма.
§ Компьютеры нестандартной архитектуры (например, суперкомпьютеры) — из-за возможности быстрой адаптации ядра операционной системы и большого количества ПО под нестандартную архитектуру.
§ Системы военного назначения (например, МСВС РФ) — по соображениям безопасности.
§ Компьютеры, встроенные в различные устройства (банкоматы, терминалы оплаты, мобильные телефоны[57], маршрутизаторы, стиральные машины и даже беспилотные военные аппараты[58]) — из-за широких возможностей по конфигурированию Linux под задачу, выполняемую устройством, а также отсутствия платы за каждое устройство.
§ Массовые специализированные рабочие места (например, тонкие клиенты, нетбуки) — также из-за отсутствия платы за каждое рабочее место и по причине их ограниченной вычислительной мощности, которой может не хватать для проприетарных ОС.
§ Старые компьютеры с ограниченными ресурсами быстродействия и оперативной памяти, для них используются быстрые рабочие окружения или оконные менеджеры, не требовательные к ресурсам (например, LXDE, Openbox, Xfce, Fluxbox).
20. Дистрибутивы Linux.
Развитие дистрибутивов Linux
Большинство пользователей для установки Linux используют дистрибутивы. Дистрибутив — это не просто набор программ, а ряд решений для разных задач пользователей, объединённых едиными системами установки, управления и обновления пакетов, настройки и поддержки.
Самые распространённые в мире дистрибутивы[59]:
§ Ubuntu — дистрибутив, основанный на Debianи быстро завоевавший популярность. Поддерживается сообществом, разрабатывается Canonical Ltd. Основная сборка ориентирована на лёгкость в освоении и использовании, при этом существуют серверная и минимальная сборки.
§ Linux Mint — дистрибутив, основанный на Ubuntu и полностью с ним совместимый, включающий в себя по умолчанию Java,Adobe Flash и многое другое.
§ openSUSE — дистрибутив, разрабатываемый сообществом при поддержке компании Novell. Отличается удобством в настройке и обслуживании благодаря использованию утилиты YaST.
§ Fedora — поддерживается сообществом и корпорацией RedHat, предшествует выпускам коммерческой версии RHEL.
§ Debian — дистрибутив, разрабатываемый обширным сообществом разработчиков. Служит основой для создания множества других дистрибутивов. Отличается строгим подходом к включению несвободного ПО.
§ Mandriva Linux — французско-бразильский дистрибутив, объединение бывших Mandrake и Conectiva (англ.).
§ Slackware — один из старейших дистрибутивов, отличается консервативным подходом в разработке и использовании.
§ Gentoo — дистрибутив, полностью собираемый из исходных кодов. Позволяет очень гибко настраивать конечную систему и оптимизировать производительность, поэтому часто называет себя мета-дистрибутивом. Ориентирован на экспертов и опытных пользователей.
§ Arch Linux — ориентированный на применение самых последних версий программ и постоянно обновляемый, поддерживающий одинаково как бинарную, так и установку из исходных кодов и построенный на философии простоты KISS, этот дистрибутив ориентирован на компетентных пользователей, которые хотят иметь всю силу и модифицируемость Linux, но не в ущерб времени обслуживания.
§ CentOS — дистрибутив Linux, основанный на свободных исходных текстах коммерческого дистрибутива Red Hat Enterprise Linuxкомпании Red Hat, и совместимый с ним. Срок поддержки каждой версии CentOS составляет 7 лет (с помощью выпуска обновлений безопасности). Новая версия CentOS выходит раз в 2 года и каждая версия регулярно обновляется (каждые 6 месяцев) для поддержки новых аппаратных средств. В результате это приводит к безопасной, легко обслуживаемой, надежной, предсказуемой и масштабируемой Linux среде.
§ PCLinuxOS — LiveCD дистрибутив Linux с возможностью установки операционной системы на жесткий диск. Основанный изначально на Mandrake 9.2, PCLinuxOS придерживается собственного пути развития.
Помимо перечисленных, существует множество других дистрибутивов, как базирующихся на перечисленных, так и созданных с нуля и зачастую предназначенных для выполнения ограниченного количества задач.
Каждый из них имеет свою концепцию, свой набор пакетов, свои достоинства и недостатки. Ни один не может удовлетворить всех пользователей, а потому рядом с лидерами благополучно существуют другие фирмы и объединения программистов, предлагающие свои решения, свои дистрибутивы, свои услуги. Существует множество LiveCD, построенных на основе Linux, например, Knoppix. LiveCD позволяет запускать Linux непосредственно с компакт-диска, без установки на жёсткий диск.
Для желающих досконально разобраться с Linux подойдёт любой из дистрибутивов, однако довольно часто для этой цели используются так называемые source-based дистрибутивы, то есть предполагающие самостоятельную сборку всех (или части) компонентов из исходных кодов, такие какLFS, Gentoo или CRUX.
Россия
Российские дистрибутивы rpm-base: Rosa, ALT Linux, ASPLinux и НауЛинукс; Source-base: Calculate Linuxи AgiliaLinux; deb-base: Runtu и Rosinka.
Украина
Украинские дистрибутивы rpm-base: MyLinux[60]; Source-base: Blin[61] и Grusha Linux[62]; deb-base: Ubuntu Install Box[63] и Ubuntu DesktopPack[64]
Критика
Приспособленность к роли настольной ОС
Linux ранее критиковалась за неудобство использования в настольных компьютерах, в частности, из-за ощутимой нехватки полноценных версий популярных программ (особенно офисных пакетов) и проблем с поддержкой оборудования[65], что представляло серьёзную проблему для пользователей ноутбуков, так как они обычно используют множество проприетарных комплектующих. Также проблемой являлась сложность изучения в Linux того, что выходит за рамки повседневного использования, и трудности в настройке оборудования. Более того, Linux обвиняли в «неидеальности» для многих опытных пользователей[66][67][68].
Новые дистрибутивы Linux целенаправленно сконцентрировались на этом вопросе и значительно улучшили положение Linux среди настольных ОС:
Linux быстро приобрёл популярность среди малого бизнеса и домашних пользователей. В этом огромная заслуга Gutsy Gibbon (кодовое название Ubuntu 7.10 фирмы Canonical). Наряду с такими дистрибутивами, как Linspire, Mint, Xandros, OpenSUSE и gOS, Ubuntu (вместе с родственными ему Kubuntu, Edubuntu и Xubuntu) сгладил большинство острых углов Linux и отшлифовал для применения в настольных системах. Без сомнения, Gutsy Gibbon — самый стабильный, полный и дружелюбный дистрибутив Linux на сегодня. Установить и настроить его теперь проще, чем Windows.
— The Economist, декабрь 2007
Тем не менее, существуют проблемы с нехваткой драйверов для некоторых специальных устройств и альтернатив некоторым платным программам с закрытым исходным кодом для Windows.[ источник не указан 509 дней ]
Безопасность
В исследовании «Security Report: Windows vs Linux»[69] Николаса Петрели (Nicholas Petreley) проведено сравнение безопасности Linux и Windows на основе подсчёта критических уязвимостей, относящихся к Windows Server 2003 и Red Hat Enterprise Linux AS v.3. При оценке степени критичности использовались метрики компаний-разработчиков, а также собственные, базирующиеся на степени возможности причинения вреда, простоты использования и характером доступа к уязвимой системе, необходимым для использования уязвимости. Выявлено, что в 38 % уязвимостей Windows Server 2003 (по оценке Microsoft, 50 % по независимой шкале оценок степени угрозы) являлись критическими, в то время как только 10 % (по независимой шкале оценок) уязвимостей Red Hat Enterprise Linux AS v.3 были критическими. Исследование также содержит обоснование выбора методологии сравнения, проверку результатов на основе данных US-CERT, сравнительный анализ архитектуры операционных систем Linux и Windows в контексте обеспечения лучшей безопасности, а также содержит описание логических ошибок, систематически допускаемых авторами, получающими противоположный результат.
Одно из исследований указывает на то, что серверы на основе Linux зачастую более уязвимы, чем серверы на основе ОС семейства Microsoft Windows, главной причиной чего аналитики называют ошибки администраторов.[70]
Критика со стороны Microsoft
Microsoft развернула обширную критику Linux в своей маркетинговой кампании «Get the Facts»[71]. В частности, Microsoft утверждает следующее:
1. Уязвимостей в Windows меньше, чем в дистрибутивах Linux[ источник не указан 620 дней ].
2. По состоянию на 2004 год Windows более надёжная и защищённая, чем Linux[72].
3. Совокупная стоимость владения Linux выше — из-за сложности, затрат на обучение и техподдержку[ источник не указан 620 дней ].
4. Использование Linux накладывает на бизнес бремя ответственности и что «производители Linux если и предлагают, то лишь незначительные компенсации возможных убытков»[ источник не указан 620 дней ]. При этом во всех версиях лицензий для Windows сама Microsoft снимает с себя ответственность за возможные убытки, указывая в EULA[73]максимальную компенсацию в размере 5 долларов.
Корпорация опубликовала различные исследования-кейсы в подтверждение этого. Однако их достоверность ставится под сомнение различными авторами, заявляющими о фальсификации этих сравнений со стороны Microsoft[74][69].
В частности, при сравнении количества уязвимостей, Майкрософт приводила данные об уязвимостях во множестве программных продуктов, в том числе пользовательского уровня, поставляемых в составе некоторых дистрибутивов Linux, при этом сравнивая это количество с уязвимостями лишь самой операционной системы Windows, которая сама по себе не имеет такого количества приложений, и, разумеется, никогда не используется в подобном «голом» виде.
При сравнении стоимости владения Майкрософт ссылается на цены поддержки Red Hat Linux серверных решений, приводя в качестве примера самую дорогую подписку (Premium Subscription, круглосуточная поддержка по телефону или через веб-интерфейс). Кроме того, при сравнении используется неодинаковое аппаратное обеспечение — дешёвое для Windows и дорогое для Linux.
Эта и подобная критика кампании «Get the Facts» заставила Microsoft свернуть[75] её и перейти к более мягкой агитации «сравнением».
21. Типичная архитектура АСНИ на примере х86 и др.
80486 DX2
x86 (англ. Intel 80x86) — архитектура процессора c одноименнымнабором команд, впервые реализованная в процессорах компании Intel.
Название образованно от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286(i286), 80386 (i386), 80486 (i486). За время своего существования набор команд постоянно расширялся, сохраняя совместимость с предыдущими поколениями.
Помимо Intel, архитектура также была реализована в процессорах других производителей: AMD, VIA, Transmeta, IDTи др. В настоящее время для этой архитектуры существует ещё одно название — IA-32 (Intel Architecture — 32).
Основные особенности архитектуры
x86 — это CISC-архитектура. Доступ к памяти происходит по «словам». «Слова» размещаются по принципу little-endian, известному также как Intel-формат. Современные процессоры включают в себя декодеры команд x86 для преобразования их в упрощённый внутренний формат с последующим их выполнением.
Сегментная организация памяти
Реальный режим (real mode)
Классический режим адресации, использованный в первых моделях семейства. Использует сегментированную модель памяти, организованную следующим образом: адресное пространство в 1 MiB разбивается на 16-байтовые блоки, называемые параграфами. Всего параграфов в 1 MiB — 65536, что позволяет пронумеровать их 16-разрядными числами. Сегменты памяти имеют размер 65536 байт, и всегда начинаются на границе параграфа. Адрес ячейки памяти состоит из двух частей: номера параграфа, с которого начинается сегмент и смещения внутри сегмента и обычно записывается как SSSS:OOOO, где S и O — шестнадцатеричные цифры. SSSS называется сегментной компонентой адреса, а OOOO — смещением. Адрес ячейки, выдаваемый на шину, представляет собой сегментную компоненту умноженную на 16 плюс смещение. Сегментная компонента помещается в специальный регистр, называемый сегментным, а смещение в регистр IP(регистр инструкций). Микропроцессоры 8086/8088, 80186/80188 и 80286 имели четыре сегментных регистра, т.е могли работать одновременно с четырьмя сегментами памяти, имеющими определенное назначение. В 80386 добавили ещё два, не имеющих специального назначения.
§ Сегментные регистры и их назначение:
§ CS — Сегмент кода. Используется для выборки команд программы;
§ DS — Сегмент данных. Используется по умолчанию для доступа к данным;
§ ES — Дополнительный сегмент. Является получателем данных в командах обработки строк;
§ SS — Сегмент стека. Используется для размещения программного стека;
§ FS — Дополнительный сегментный регистр. Специального назначения не имеет. Появился в процессоре 80386;
§ GS — Аналогично предыдущему, но в новых процессорах с 64-битной архитектурой имеет особый статус: может использоваться для быстрого переключения контекстов.
Несмотря на то, что сегментные регистры имеют специальные назначения, архитектура допускает при обращении к данным заменить один сегмент на любой другой. Сегменты кода, стека и получателя строк всегда используют регистры CS, SS и ES и не могут быть изменены.
Общий объём памяти, адресуемый в реальном режиме составляет 1048576 байт (0000:0000-F000:FFFF(00000-FFFFF)-логический адрес (физический адрес) в шестнадцатеричной системе счисления). Сегментный подход позволяет разделить всю память на 16 сегментов, начинающихся с адресов, кратных 64 Кбайт. Эти 16 сегментов называют страницами памяти. Обычно деление на страницы используется для совместного функционирования устройств, интерфейсы которых отображены на адресное пространство памяти; тогда каждое такое устройство использует одну страницу памяти, и адрес ячейки в адресном пространстве устройства будет совпадать со смещением в сегменте памяти компьютера. Так в компьютерах IBM PC страницы c 11 по 15 используются как «видеопамять»(адресное пространство видеоадаптера), а шестнадцатая страница(размещающаяся в адресах FFFF:0000 — FFFF:FFFF) получила название «области верхней памяти» (High Memory Area), которую впоследствии MS-DOS использовала для размещения своего ядра и буферов ввода-вывода, оставив больше «обычной» памяти прикладным программам. Таким образом реально доступная пользователю память составляет 640 Кбайт (первые 10 страниц).
Также в реальном режиме отсутствует защита памяти и разграничение прав доступа, поэтому он уже практически вышел из употребления. Является режимом по умолчанию для всех моделей процессоров семейства x86.
Защищённый режим (protected mode)
Более совершенный режим, впервые появившийся в процессоре 80286 и в дальнейшем многократно улучшавшийся. Имеет большое количество подрежимов, по которым можно проследить эволюцию семейства ЦП. В этом режиме поддерживается защита памяти, контексты задач и средства для организации виртуальной памяти. Аналогично реальному режиму, тут также используется сегментированная модель памяти, однако уже организованная по другому принципу: деление на параграфы отсутствует, а расположение сегментов описывается специальными структурами (таблицами дескрипторов), расположенными в оперативной памяти. Помимо базового адреса сегмента дескрипторы содержат размер сегмента (точнее, максимально доступное смещение) и различные атрибуты сегментов, использующиеся для защиты памяти и определения прав доступа к сегменту для различных программных модулей. Существует два типа дескрипторных таблиц: глобальная и локальная. Глобальная таблица описывает сегменты операционной системы и разделяемых структур данных. Локальная таблица может быть определена для каждой конкретной задачи (процесса). Сегменты памяти также выбираются все теми же сегментными регистрами; однако вместо номера параграфа сегментный регистр содержит специальную структуру (селектор), содержащую индекс дескриптора в таблице. Сам же дескриптор загружается из памяти во внутренний программно недоступный регистр (кеш), привязанный к каждому сегментному регистру и автоматически загружаемый в момент его модификации.
Каждый программный модуль, выполняемый в защищенном режиме определяется его сегментом кода, описываемым регистром CS, который и определяет его привилегии по доступу к данным и другим модулям. Существует 4 уровня привилегий (0, 1, 2 и 3), называемых кольцами защиты. Кольцо 0 наиболее привилегированное. Оно предназначено для модулей ядра операционной системы. Кольцо 3 — наименее привилегированное, и предназначено для пользовательских программ. Кольца 1 и 2 используются лишь некоторыми операционными системами. Сегменты данных также имеют атрибуты прав доступа, дающие доступ только коду, имеющему такие же или более высокие привилегии. Система колец позволяет гибко распределять доступ к коду и данным.
Процессор 80386, появившийся в 1985 году, в отличие от своих предшественников стал 32-битным. В нём появилась возможность адресовать до 4 GiB памяти, что позволило создавать сегменты памяти размером во все адресное пространство. Поэтому новые операционные системы использовали вырожденную модель организации памяти, когда все сегменты начинаются с нулевого адреса. Такая модель получила название плоской (flat memory model), и адрес задается одним целым 32-разрядным числом (хотя по сути он является смещением внутри вырожденного сегмента), а сами сегменты используются исключительно для организации защиты по кольцам привилегий.
Режим виртуального 8086 (virtual 8086 mode, V86)