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

Давайте сделаем еще одну ОС!

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

Но что если мы возьмем архитектуру, где не нужен загрузчик, и при некотором умении вообще не придется ни одной строчки писать на ассемблере?

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

(В недавнем обзоре истории OS/2 давалась очень обобщенная картина разработки ОС. Надеюсь его хорошо дополнит взгляд изнутри самой IBM, воспоминания рядового тестера OS/2.)

Богопротивный альянс IBM и Microsoft выпустил OS/2 25 лет назад, чтобы заменить Windows, Unix и DOS. В то время я был рядовым солдатом этой войны: тестером, работающим в Синем Гиганте по договору. Жестокая судьба и еще более жестокий редактор хотят, чтобы 25 лет спустя я написал статью о том, стоит ли вам сейчас посвящать свою карьеру Microsoft. И меня до сих пор поражает то, насколько не знающие историю люди обречены ее повторять.

В конце 1980-х большая часть PC все еще выполняла только одну программу за раз, хотя многие из них были заражены сражавшимися друг с другом резидентными программами. Графические интерфейсы уже пришли на PC, но Windows-приложения работали просто ужасно: даже если вы просто включали Windows PC и больше ничего не делали, была немалая вероятность того, что он зависнет сам по себе.

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

IBM была патологически скрытной. Мое собеседование в основном состояло из вопросов в духе «итак, Доминик, расскажите о себе» без малейших намеков на то, чем мне предстоит заниматься. Так как я принимал участие в проекте Microsoft Unix для Intel x86, я ответил: «В определенном смысле моя работа заключалась в том, что я портил жизнь Microsoft». Сотрудник отдела кадров IBM сказал, что как правило их начальству требуется «должное количество времени» для принятия решения, но в этот раз предложение работы пришло на мой автоответчик еще до того, как я вернулся домой.
Читать полностью »

Windows NT сегодня исполнилось 20 лет

У сисадминов со стажем сегодня тоже есть что отметить: легендарной операционной системе Windows NT исполнилось 20 лет!
Читать полностью »

Парни из Редмонда привыкли удивлять мир неожиданными идеями. Часто они садятся в лужу и терпят провалы с новаторскими продуктами (Vista, Windows Phone), часто не замечают основных тенденций и не могут упредить моду, в отличие от парней из Купертино (iPod, iPhone, iPad).

Так продолжается из года в год. Довольно долго в «Окнах» был аскетичный интерфейс, лишенный излишеств (пардон за тавтологию) — без дизайнерских примочек. Что говорить, классическая тема Windows актуальна и поныне. Мы, пользователи, как-то смирились с этим, свыклись, тем более что альтернативы, считай, и не было. В провинции-то. Win98, 2000, XP. «Линуксы» тогда еще кусались, в силу того что были уделом энтузиастов. Как и «Макинтоши». С течением времени в наш мир ворвался широкополосный интернет, да и операционные системы шагнули вперед. Понимая моральную устарелость XP, прежде всего в плане облика, в Редмонде подготовили радикально новую ОС — «Висту». Которая, правда, вышла в лучших традициях АвтоВАЗа, сырой то есть, недоделанной. Хотя интерфейс Aero поражал, и многие, в т.ч. я, ставили на XP Inspiration Pack или XP Life, чтобы прикоснуться к свежей оболочке. Затем свет увидела «Семёрка», при создании которой были учтены ошибки с «Вистой».

Мне нравится Windows 7. После трех лет ее активного использования уверен, что это лучшая ОС от Microsoft на данный момент. Лучшая и с точки зрения удобства, и с точки зрения дизайна. Но вынужден признать, что даже теперешний Linux может превзойти Windows в этих аспектах. Долгие годы едва ли не первое, что устанавливаю на новый комп — RocketDock, который за счет создания стэков позволяет получить мгновенный доступ к наиболее часто используемым программам, не захламляя Рабочий стол. На ноуте я переместил панель задач влево, и теперь трудно представить, как я жил прежде без этого. Т.к. экран широкоформатный, то прикрепление панели задач к боковому краю позволило освободить пространство и использовать все вертикальные пиксели для окон программ. RocketDock по той же причине прикреплен к правой стороне. Но Win7 кое-чего все-таки не хватает.Читать полностью »

Новая книга Кофлера. Linux. Установка, настройка, администрирование

Название оригинала: Linux 2013
Автор: М. Кофлер
Перевод книги: О. Сивченко
Дата выхода: сентябрь 2013

Осенью у нас выходит новая книга известного Линукс-гуру Майкла Кофлера.

Аннотация:

Linux наряду с Microsoft Windows и Apple OS X является одной из важнейших операционных систем для ПК. Системы Linux установлены на многих крупных серверах (в частности, Google и Amazon используют Linux). Linux применяется на многочисленных смартфонах и планшетах, работающих на базе Android, а также во встраиваемых системах (прошивках для приборов, которые совсем не похожи на компьютеры? — например, таковы ADSL-модемы, WLAN-роутеры и жесткие диски NAS).
Читать полностью »

Внимание: эта статья относится только к людям старше двадцати лет. Если вы младше — смело закрывайте вкладку браузера, такого удовольствия от нее вы не получите.
Также про это мог кто-то знать, но почему-то я не нашел никаких материалов о том, насколько это круто работает. Если кто-то может меня дополнить — милости прошу.
Моя идея в том, чтобы дать счастье играть в старые игры максимально большому кругу лиц, сделать это максимально простым и качественным. По моему я нашел самый лучший способ, без больших усилий, в максимальном качестве играть в классические игры где угодно и когда угодно. Также быстро и просто как установить современную игру и играть.
Если для чего-то нужны очень серьезные знания — не все это оценят. А играть в старые игры становится все сложнее, а для некоторых — почти совсем невозможно.
Но не теперь.
Читать полностью »

Двадцать пять лет назад 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, отталкиваясь, естественно, от доступной сейчас предварительной версии. На каждую возможность постараюсь потратить буквально несколько предложений, чтобы пояснить ее смысл, оставив детали реализации для последующих публикаций. Таким образом, главная цель – составить у вас общее представление о том, что интересного привнесет новый сервер, а дальше вы уже решите, что из этого наиболее применимо к вашим конкретным задачам. В общем, текста будет много, картинок не будет вообще.Читать полностью »


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