> man operating_systems
Ядро Linux 2.6
Краткое описание новинок ядра 2.6
на Воскресенье, 18 Июль 2004, 21:11
добавил: Джозеф Праневич список авторов печатать элемент контента создать pdf-файл  элемент контента
категория Статьи > Unix
комментарии: 0
просмотров: 3746


Поддержка "".

В дополнение к нескольким новым процессорным архитектурам, поддерживаемым ядром 2.6., новая версия Линукса включает также новую концепцию, называемую "". Раньше Линукс чаще всего предполагал что тип процессора и тип его аппаратного окружения совпадают. То есть потомки i386 процессоров используются исключительно в PC/AT серверах. В ядре 2.4. это допущение было нарушено в отношении i386, с добавлением поддержки Визуальной Рабочей Станции от SGI, "без " платформы, работающей на чипах Intel (фактически, данный перелом произошел задолго до этого на многих других архитектурах. Например, m68k длительное время поддерживался на Amiga, Macintoshe и других платформах). Существенным изменением в ядре 2.6. стало то, что данные возможность и концепция были стандартизироваы так, чтобы все архитектуры оперировали ими одинаково и способом, позволяющим четко разделять только те компоненты, которые требуют данного разделения.

С этой стандартизациейприходит две новые платформы поддерживающие i386. Первая - архитектура NCR Voyager. Это SMP система (разработанная ранее и являющаяся сейчас стандартной спецификацией Intel MP) поддерживающая 486-686 процессоры в конфигурации вплоть до 32-х процессоров. Количество проданных конфигураций данной архитектуры довольно мало, и еще не все машины поддерживаются (наиболее старые не поддерживаются).Вторая поддерживаемая архитектура - более широко распространенна платформа PC-9800, разработанная фирмой NEC, донедавна практически доминирующая платформа PC в Японии. Оригинальные РС-9800 машины строились на базе 8086 процессорах и дальнейшем их развитии (параллельно с АТ-потомками) в итоге выросшем в процессоры Pentium-класса и появившаяся поддержка SMP (естественно поддержка для Линукса ограничена i386 или лучше (РАЗВЕ???)). Эта платформа была абсолютно не известна в США, до тех пор пока Microsoft не выпустила Windows 95, портированный на нее)))))))). Выпуск этой линейки был официально прекращен производителем в пользу более "" ПК-шек.

Формализация поддержки Линуксом этих "незначительно " аппаратные типов позволит более легко портировать ОС на другие системы, такие как выделенные хранилища данных и другие компоненты, используемые преимущественнов индустриальных типах процессоров. Для ясности скажем, что нельзя не учитывать эту категорию. Эта субархитектура была выделена потому, что низкоуровневые компоненты системы (такие как IRQ маршрутизация) более или менее различны. Вышесказанное отличается от Линукса, запущенного, например, на X-Box, потому что не драйвера или другие особенности, а нечто другое отличает эту систему от основных i386 систем. Поддержка X-Box не является субархитектурой

Масштабированиевверх - NUMA и Большое Железо.

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

Важнейшим изменением в этом отношении стала поддержка Линуксом серверов с NUMA. NUMA (или "Non-Uniform Memory Access" - неоднородный доступ к памяти) является шагом в сторону от традиционного SMP в многопроцессорнм мире, и это шаг вперед к эффективности систем, имеющих много процессоров. SMP системы были разработаны с некоторыми из тех же ограничений, что и их однопроцессорны коллеги. Одним из существенных ограничений при выборе такого дизайна является то, что он основан на едином пуле памяти, который разделяют между собой все процессоры системы.В многопроцессорнх системах это приводит к сильной конкуренции между процессорами, работающими на одной шине памяти, и является узким местом системы. NUMA серверы обходят данную проблему, представляя следующую концепцию: отдельному процессору предоставляется часть памяти, не доступная другим процессорам . Один простой путь (технически довольно корректный) состоит в том, чтобы представить, что вы имеете систему с платами расширения, содержащими процессоры, память и, возможно, другие компоненты (ввода-вывода и др.). Некоторое количество таких плат в системе могут "" общаться между собой, каждый процессор имеет свободный доступ к локальной памяти (кроме того доступ к памяти на плате процессора быстрее чем к памяти на выделенной плате). Во многом новая NUMA архитектура является примером очень сильно связанного кластера.

Чтобы должным образом поддерживать новые NUMA машины, необходимо было адаптировать Линукс сразу в нескольких направлениях, чтобы новая модель стала эффективной. Для начала был создан API внутренней топологии, позволяющий ядру понять, один процессор или один пул памяти связаны с устройствами ввода-вывода и как они связаны между собой. Опираясь на эту информацию, планировщик процессов Линукса теперь может понять эти взаимосвязи и оптимизировать выполнение задач с наиболее выгодным распределением локальных ресурсов. Кроме того, многие NUMA машины построены таким образом, что имеют "" в линейном адресном пространстве между узлами. Новое ядро решает эту проблему разумным способом. Было сделано множество других внутренних изменений, которые позволят Линуксу работать с этими новыми хай-энд машинами, и в целом - это направление, определяющее дальнейшее совершенствоване ядра. В течение следующего года мы можем ожидать новые доработки и усовершенствоваия поддержки Линуксом этих высокопроизводиельных систем.

Внутренняя организация Линукса

В дополнение к поддержке нового оборудования, в ядре 2.6. также усовершенствоваа поддержка уже существующих платформ. Сюда входит оптимизация, специфичная для процессоров Transmeta Crusoe; Intel Pentium 4 Xeon, Pentium 3-M, и Pentium 4-M, а также мобильные процессоры AMD. Новые версии Линукса также могут обходить проблемы, имеющие место в некоторых Athlon-ах. И хотя большинство пользователей не замечают некоторых проблем, Линукс 2.6. решает проблему, возникающую в некоторых системах с более чем 16-ю процессорами при загрузке.

Hyperthreading

Хотя это не новинка Линукса 2.6., поддержка Hyperthreading появилась еще в ядре 2.4.17 (данная возможность описывается здесь потому, что начальный релиз 2.4. не поддерживал Hyperthreading, а также потому, что с того времени сделано много серьезных изменений). Hyperthreading - это способность одного процессора маскироваться под два (или больше) процессора от ОС. Удивительно то, что Линукс - первая ОС, которая вышла на рынок с поддержкой этой возможности, несмотря на то, что Intel выпустил процессоры с Hyperthreading всего около года назад. Говорят что Майкрософт колеблется в вопросе лицензирования таких процессоров: лицензировать как один или же как два (уже парешили). Открытая модель Линукса (и отсутствие лицензирования за процессор) позволили различным дистрам стать первыми в поддержке Hyperthreading (ура товагищи!). Естественно процессор претендующий быть "двумя", все же остается одним процессором и производительноть растет не сильно.

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

Вопросы Размера - Усовершенствоваие Масштабируемост

Кроме поддержки NUMA, Линукс 2.6. реализовал и другие изменения касающиеся серверов Intel, стоящих на верхушке "пищевой ". Первое - это полная поддержка PAE ("Physical Address Extension" - расширение физического адреса), которая позволяет новейшим 32-битным х86 системам адресовать до 64 Гбайт ОЗУ, но, в страничном режиме. Кроме того, посредством улучшенной поддержки APIC и других изменений, было существенно улучшено распределение IRQ в многопроцессорнх системах.

Во многих других отношениях были расширены пределы других внутренних ограничений. Так, количество уникальных пользователей и групп системы Линукс возросло с 65000 до более чем 4 миллиардов (с 16 до 32 бит). Это позволит Линуксу работать на больших файл-серверах и серверах аутентификации, где ранее, возможно, поджимали предыдущие ограничения. Точно так, максимальное количество PID-ов (ID процесса) было увеличено с 32000 до 1 миллиарда. Это изменение, совместно с другими усовершенствоваиями в PID-подсистеме, улучшит производительноть запуска приложений на очень занятых или долго работающих системах. Хотя максимальное количество открытых файлов не было увеличено, ядро 2.6. более не требует вашего вмешательства в установление этого предела заблаговременно а самомасштабируе это количество. И, наконец, Линукс 2.6. включает улучшенную поддержку 64 бит на блочных устройствах, поддерживающих работу в данном режиме, даже на 32-битных платформах, таких как i386. Это позволяет создавать файловые системы, размером до 2 Тбайт.



© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.