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

Поддержка USB в KolibriOS: что внутри? Часть 3: код поддержки хост контроллеровУровень поддержки хост-контроллеров, как я писала в общем обзоре, должен вызывать вышележащие уровни при наступлении некоторых событий и предоставлять функции, необходимые вышележащим уровням для работы.
Для удобства восприятия я буду рассказывать о различных элементах кода поддержки в том порядке, в котором они получают управление.

Запуск подсистемы USB

Подготовка: USB-контроллеры в списке PCI-устройств

Подсистема USB запускается вызовом usb_init из init.inc в ходе загрузки системы.

К моменту запуска USB уже подготовлен список найденных PCI-устройств pcidev_list. USB-контроллеры опознаются среди всех PCI-устройств по коду класса, подкласса и интерфейса:

Тип Класс Подкласс Интерфейс
UHCI 0Ch 03h 00h
OHCI 0Ch 03h 10h
EHCI 0Ch 03h 20h
XHCI 0Ch 03h 30h

usb_init проходит по списку PCI-устройств несколько раз, каждый раз выделяя USB-контроллеры.

Отключение контроля BIOS

Некоторые BIOS умеют обрабатывать USB-мыши, USB-клавиатуры и USB-флешки, предоставляя данные для операционных систем, не знающих про USB. Данные от мышей и клавиатур преобразуются в формат PS/2 и тем или иным способом доводятся до операционной системы так же, как если бы в системе существовала настоящая PS/2-мышь и/или клавиатура. USB-флешка представляется жёстким диском с точки зрения int 13h — такая поддержка встречается куда чаще поддержки мышей, ибо необходима для загрузки с флешек.
Операционная система может использовать любой режим процессора и самостоятельно обрабатывать любые прерывания. Чтобы BIOS в таких условиях всё же могла получать управление с предсказуемым окружением, ещё в районе 486-х (начиная со специальной версии i386SL, если точно) Intel придумала специальный режим процессора System Management Mode (SMM), в котором и работает BIOS, прерывая операционную систему. В SMM невозможно попасть средствами самого процессора; процессор попадает в этот режим, когда железо материнской платы подаёт специальный сигнал System Management Interrupt (SMI). USB-контроллеры, встроенные в чипсет, как правило, могут генерировать SMI вместо прерывания в зависимости от настроек.

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

На русском TechNet обновлены шесть основных хабов, посвященных Windows Server 2012, Windows 8, System Center 2012, Windows Azure, платформе данных и вопросам продуктивности. Ссылки на хабы можно увидеть прямо на главной странице TechNet.Читать полностью »

Про Linux — для любознательных Windows пользователей

Так уж получилось, что даже на Хабре многие имеют очень смутное представление о семействе OS Linux.

Цель данной статьи – максимально популярным языком рассказать про особенности и отличия Linux от Windows для тех, кто вообще не имел с ним дела.

Я уже не один год свободно пользуюсь Archlinux, загружая винду лишь «на поиграться». Данная статья рассказывает о вещах, которые я выяснил эмпирическим путем, тыкаясь словно слепой котенок. Если бы в свое время мне попалась бы именно такая информация именно в такой форме — это сэкономило бы мне как минимум 2 года, в течение которых я переходил с Windows на Linux.

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

Репортажи с Computex 2049: презентация Windows CS

Сначала о грустном. Всемирная бесконтактная подземная излучающая сеть (WWUN) ожидаемо подтвердила опасения по поводу своей пропускной способности. Хотя трансляция на 200 миллионов встроенных киберсенситивных устройств пяти различных поколений и более чем на 800 миллионов стандартных терминалов с эффектом присутствия не вызвала никаких нареканий, но последние модели двустороннего окна с преобразователем ощущений периодически подлагивали при передаче обонятельной составляющей стендов. Остается надеяться что к следующей выставке вирт-дизайнеры ведущих фирм перестанут злоупотреблять тяжелыми голографическими элементами оформления и начнут оптимизировать осязательные и обонятельные библиотеки вместо того, чтобы загонять полный спектр в кеш пользовательских восприниматоров.
Ну а если отвлечься от критики, то оформление стендов на Computex традиционно радует. Новинки в области встроенных воспринимающих устройств доступны только пользователям с КСУ и ВКСУ, прекратились гонения и задвигания за задний план традиционного клавиатурно-мониторного раздела, даже мелких вендоров типа HP или Oracle легко можно найти на карте, ну и наконец-то не нужно тащиться назад ко входу на стенд чтобы вызвать портал в главный холл — он вызывается из любой точки экспозиции. Порадовало и оформление стенда микрософта, который занимает довольно значительную часть виртуального пространства. Вместо набившего оскомину входа в виде врат ада, главной темой оформления стал морской порт. Всех заглянувших на огонек к бывшей корпорации зла приятно освежает морской бриз, детализация накатывающих на скалы волн просто потрясающая, дизайнеры, возможно, немного переборщили с громкостью крика чаек и интенсивностью запаха рыбы из корзин торговцев на причале, но это не злит, а скорее создает какой-то особый настрой. Экспозиции различных подразделений Microsoft размещены на четырех пиратских галеонах стоящих на причале. Презентация новой версии давно ожидаемой операционной системы состоялась на флагманском «San Felipe» и провела ее CEO Lucy Southworth собственной персоной.
Читать полностью »

Linux From Scratch, не вдаваясь в детали

LFS — это книга о том, как собрать работающую операционную систему GNU/Linux из исходных кодов. Конечно, лучше самому собрать систему по этой книжке. Но если тратить несколько дней своего времени жалко, а познакомиться все же охота — попробую рассказать.
Читать полностью »

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

Прерывания и потоки

Хост-контроллеры оповещают софт о происходящих событиях, генерируя прерывания. Прерывание может прийти и оторвать процессор от текущей задачи в любой момент времени; это накладывает жёсткие требования на обработчик прерывания. Обработчик прерывания не может захватывать никакие блокировки — ведь вполне возможно, что прерванный код как раз завладел блокировкой и уже не сможет её освободить. Единственным исключением является вариант спинлока, запрещающий прерывания на время блокировки, но из-за глобальности эффекта спинлок стоит применять пореже и для очень коротких участков кода. На однопроцессорных конфигурациях такой вариант вырождается в пару cli/sti без собственно спинлока, на многопроцессорных внутри cli/sti остаётся обычный спинлок. Кроме того, контроллер прерываний во время обработки одного прерывания блокирует остальные с тем же или более низким приоритетом.

По этим двум причинам в KolibriOS обработчики прерываний от хост-контроллеров USB передают основную часть работы в выделенный под USB поток ядра, а сами ограничиваются сообщением хост-контроллеру «спасибо, сигнал принят». Сам USB-поток имеет наивысший приоритет, чтобы задумавшиеся пользовательские приложения не мешали обработке. Все функции вышележащих уровней, которые вызываются из уровня поддержки хост-контроллера, работают в контексте потока USB и, как следствие, вполне могут использовать примитивы синхронизации. Приятным побочным эффектом является автоматическая сериализация вызовов: ни обработчик завершения второй передачи из очереди канала, ни функция DeviceDisconnected не будут вызваны, пока не закончит работу обработчик завершения первой передачи из очереди канала, что есть логичное требование к API.

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

Разработчики и Microsoft: взгляды на будущееДовольно очевидно, что Windows используется большим количеством людей, и что всем им система нужна для выполнения различных задач: от создания корпоративного сервера и установки на POS-терминалы до использования её на домашнем компьютере, и не только для этого. Многие понимают, что когда Microsoft обновляет Windows, ей приходится принимать множество компромиссных решений для обеспечения корректной работы своей операционной системы. Существует, однако, ещё один тип компромиссов, о существовании которого многие люди, пусть даже они и называют себя продвинутыми пользователями или администраторами, даже не догадываются. Это конфликт между разработчиками/программистами и самой Microsoft.
Читать полностью »

Symbian Belle FP2 является завершающей стадией развития Symbian для таких смартфонов, как Nokia 808 PureView, 603, 700 или 701, а Refresh для E7, N8 и всех смартфонов первого поколения вышедших в 2010 году (кроме Nokia 500). Тем не менее, для всех сматфонов Symbian^3 продолжают выходить обновления, которые улучшают стабильность и добавляют новые функции, это заставляет задуматься, почему все считают Symbian таким умершим, забытым и заброшенным?

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

iOS 7 – прогресс или необходимость?"

«Если фирма не перестраивается и не изменяет свою структуру хотя бы раз в год, ее положение на рынке будет весьма сложным» К. Мацусит


Наблюдая за конференцией WWDC 2013, я уже ожидал жесткой критики не только от ненавистников продукции Apple, но и от ярых поклонников. Вызвано это все тем, что любое изменение и любая инновация воспринимается всегда в штыки. Стоит вспомнить iOS 6, в которой не поменялся дизайн, но первый оценки разработчиков носили отрицательный характер: говорили, что ничего нового, ничего удивительного, всё слизано с Android.Читать полностью »

Мнение: Google работает над мини компьютером Chromekey с ChromeOS

Обозреватели ресурса Geek делятся мнениями «неназванных источников»: поисковый гигант намерен выпустить на рынок мини-компьютер в известном форм-факторе «stick», который будет называться Chromekey, и, возможно, с операционной системой ChromeOS на борту, как можно предположить из названия.

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


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