Рубрика «операционные системы» - 55

Двадцать пять лет назад IBM представила генеральный план восстановления контроля над рынком PC. В ноябре 1987 года в магазины отправились первые дискеты с OS/2 версии 1.0. Microsoft разрабатывала ее вместе с IBM и случае успешной реализации этих планов мир был бы совсем иным. И мир уже начал меняться.

Сейчас о OS/2 обычно вспоминают только в связи с той ролью, которую она сыграла в промышленной войне, окончившейся триумфальной победой Microsoft. На момент выпуска OS/2 в Microsoft работало 1800 человек, меньше, чем сейчас работает в ливерпульском телемагазине QVC. Microsoft даже не была крупнейшим производителем программ для PC. Но всего через несколько лет компания стала не только крупнейшим игроком отрасли, но и одной самых дорогих компаний в мире; один лишь слух о выходе Microsoft в новую нишу вызывал панику у существующих игроков.

Согласно традициям нашего издания я вернул старые программы к жизни и оценил OS/2 с современной точки зрения. Но гораздо интереснее вновь задать иной вопрос: могла ли IBM победить? Если именно OS/2 стала причиной поражения Синего Гиганта, то смогли бы они остановить Microsoft с помощью более хитрых планов? Давайте вернемся в те времена, когда мир еще не знал слов «платформа» и «экосистема» и вспомним, как выглядела отрасль информационных технологий в середине 1980-х.

OS/2 четверть века спустя: почему IBM проиграла, а Microsoft выиграла
Читать полностью »

Доброго времени суток, читатель!

image

На домашней странице Ubuntu снова обратный отсчет. Подпись гласит «The line where / two surfaces meet». Я не знаю, к какому событию он приурочен, но в коментариях на одном сайте здорово шутят — «Canonical выпустит холодильники с Ubuntu». И если речь идет об Ubuntu Phone, то подпись очень даже правдивая. С одной стороны шквал негатива («Еще одна мобильная ОС» и т.д. и т.п.), с другой — искреннее желание как можно скорее увидеть релиз своей любимой ОС на своем смартфоне. Как вы можете помнить, вместе с анонсом Ubuntu Phone так же сообщалось о привлечении волонтеров в разработку 12 базовых приложений для это ОС (core applications). Так вышло, что будучи членом одной из команд, я обладаю некоторой информацией, которая может показаться интересной. Статья не претендует на «взгляд из самых первых рядов», а в формате простого повествования рассказывает о некоторых деталях нашей работы изнутри. К тому же я, помнится, обещал делиться информацией о ходе процесса. С другой стороны, я не могу безэмоционально все рассказывать, так что в статье много нетехнических деталей и художественного повествования. Но если Вы заинтересованы, прошу под кат!Читать полностью »

Поддержка USB в KolibriOS: что внутри? Часть 4: уровень поддержки каналовРассказ об уровне взаимодействия с хост-контроллерами растянулся на две статьи и всё равно оставил за кадром некоторые детали — которые, как я надеюсь, заинтересованный читатель может восполнить непосредственно из исходников. Уровень поддержки каналов куда проще и в основном занят тем, что преобразует вызовы API для вышележащих уровней в нужную последовательность действий, включая блокировки, с нужным хост-контроллером.

Открытие канала

Функция USBOpenPipe из API, названная usb_open_pipe в коде pipe.inc, открывает новый канал по указанным характеристикам канала и «родительскому» каналу, где записаны характеристики устройства. Для этого она:

  • выделяет пару структур *hci_pipe+usb_pipe, описывающих канал и выравненных на контроллеро-специфичную границу, вызовом контроллеро-специфичной функции usb_hardware_func.AllocPipe;
  • выделяет пару структур *hci_gtd+usb_gtd, описывающих пустой дескриптор передачи и выравненных на контроллеро-специфичную границу, вызовом контроллеро-специфичной функции usb_hardware_func.AllocTD;
  • заполняет указатели: в структуре канала копирует указатель на структуру контроллера и указатель на данные устройства, общие для всех каналов, из «родительского» канала; между структурой канала и структурой пустого дескриптора заполняет указатели туда-обратно; структуру пустого дескриптора делает единственным элементом двусвязного списка каналов;
  • инициализирует мьютекс, который будет охранять все операции с этим каналом. Хотя вся обработка событий от USB-контроллеров происходит в потоке USB, про обращения к API нельзя сказать того же: чтение приложением файла с USB-флешки инициирует постановку передачи — и даже не одной — в очередь в контексте потока приложения. Чтобы новая передача не мешала USB-потоку обрабатывать завершение старой передачи, и нужен этот мьютекс;
  • захватывает мьютекс набора каналов устройства и убеждается, что устройство ещё не отключено;
  • вызывает контроллеро-специфичную инициализацию usb_hardware_func.InitPipe, охраняемую мьютексом, глобальным для контроллера;
  • добавляет новый канал в набор каналов устройства и отпускает мьютекс набора каналов;
  • при ошибке на одном из этапов откатывает все предыдущие этапы. Поскольку откатить контроллеро-специфичную инициализацию сложнее всего, она сделана на последнем этапе, после которого ошибок быть не может.

Контроллеро-специфичная инициализация последним действием добавляет новый канал в соответствующий список. Для управляющих каналов, равно как и для каналов массивов данных, есть всего один список, а вот для каналов прерываний нужно ещё выбрать один из нескольких вариантов.
Поддержка USB в KolibriOS: что внутри? Часть 4: уровень поддержки каналов
Здесь в игру вступает планировщик scheduler.inc. Он как раз и выбирает один из списков каналов прерываний, а также убеждается, что для нового канала «достаточно места». Я напомню, что в каждом фрейме FullSpeed-шины под периодические передачи нельзя использовать более 90% времени, а в каждом микрофрейме HighSpeed-шины — более 80% времени.

Здесь я должна отметить, что если вы зачем-то пишете реализацию USB, которая должна работать в ваших условиях, на планировщике можно серьёзно сэкономить. Вам придётся в том или ином виде реализовать всё остальное, что описано в этой серии статей, но при отсутствии большой нагрузки можно вместо полного дерева обойтись всего одним списком каналов прерываний, обрабатываемым каждый фрейм/микрофрейм. Чуть более экономная схема, не слишком усложняющая реализацию, — один список каналов для каждого интервала обработки 1, 2, 4, 8, 16, 32 фреймов. Пока не нужно одновременно обрабатывать более одного устройства с большим трафиком на один хост-контроллер, такой подход ничем не уступает полноценному планировщику. Простая схема «сломается» в некоторых специфичных конфигурациях с двумя или более изохронными каналами FullSpeed-устройств или тремя или более изохронными каналами HighSpeed-устройств, но, быть может, никто и не будет запускать вашу реализацию в столь специфичных условиях?

Если же вы пишете реализацию USB, которая должна работать везде и всегда, планировщик вам тоже придётся написать.
Читать полностью »

В этом посте я хотел бы дать краткий обзор наиболее интересных новых возможностей Windows Server 2012 R2, отталкиваясь, естественно, от доступной сейчас предварительной версии. На каждую возможность постараюсь потратить буквально несколько предложений, чтобы пояснить ее смысл, оставив детали реализации для последующих публикаций. Таким образом, главная цель – составить у вас общее представление о том, что интересного привнесет новый сервер, а дальше вы уже решите, что из этого наиболее применимо к вашим конкретным задачам. В общем, текста будет много, картинок не будет вообще.Читать полностью »

Британские учёные недавно установили примечательный факт, что, несмотря на низкую популярность браузера Опера в последние дни, статьи с помощью него читают, и тем чаще, чем больше упоминается фактов про Оперу в этих статьях. Учёные пока затрудняются с объяснением сего феномена, упоминая лишь существование пословицы «Беда не приходит одна». Аналогично и здесь, родственные слова притягиваются, и браузер Опера появляется чаще всего там, где про него говорят.

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

Британские учёные недавно установили примечательный факт, что, несмотря на низкую популярность браузера Опера в последние дни, статьи с помощью него читают, и тем чаще, чем больше упоминается фактов про Оперу в этих статьях. Учёные пока затрудняются с объяснением сего феномена, упоминая лишь существование пословицы «Беда не приходит одна». Аналогично и здесь, родственные слова притягиваются, и браузер Опера появляется чаще всего там, где про него говорят.

Оставив в стороне напряжённую работу учёных умов над недавно открытой загадкой природы, займёмся задачей более простой и приземлённой — посмотрим, какими инструментами получены эти поразительные результатыСтатистика Хабрахабр для статей различной тематики. Возможно, посмотрев на их работу, нас тоже впереди ждут удивительные открытия.
Читать полностью »

Позади уже полторы (первая, полуторная) части этой статьи, теперь наконец пришло время рассказать о структуре UEFI Firmware Volume и формате UEFI File System.
Читать полностью »

В первой части этой статьи мы познакомились с форматом UEFI Capsule и Intel Flash Image. Осталось рассмотреть структуру и содержимое EFI Firmware Volume, но для понимания различий между модулями PEI и драйверами DXE начнем с процесса загрузки UEFI, а структуру EFI Firmware Volume отставим на вторую часть.
Читать полностью »

Выпуск материнских плат на чипсетах Intel шестой серии (P67 и его братьях) принес на массовый рынок ПК новый вариант BIOS — UEFI. В этой статье мы поговорим об устройстве файлов UEFI Capsule и Intel Flash Image.
Структура EFI Firmware Volume и полезные в хозяйстве патчи будут описаны во второй части.
Читать полностью »

Предлагаю Вашему вниманию вольный перевод статьи James Bruce про 7 операционных систем, которые Вы можете запустить на Raspberry Pi.

Кто может поспорить с ценой компьютера в 40 долларов? Особенно, если он еще и отличная база для проектов в области электроники. Я не вижу конкурентов. Но само по себе железо — лишь одна сторона медали: необходима еще операционная система. Ниже я расскажу про 7 различных операционных систем, которые Вы можете установить на Raspberry Pi прямо сейчас. Небольшое замечание: не все представленные операционные системы являются полезными.

image
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js