headermask image


Advertisement

LPI 101. Аппаратные средства и архитектура. Параметры BIOS

Мы начнем с общего обзора современных персональных компьютеров, а затем обсудим вопросы настройки компьютера. Мы сосредоточимся на компьютерах, использующих процессоры семейства x86, такие как Intel® Pentium® или AMD Athlon, и шину PCI, поскольку они наиболее распространены в настоящее время.

Многие затронутые здесь темы имеют множество пересечений с рабочими программами LPI для специфической периферии. В следующих разделах этого учебника мы будем ссылаться на этот раздел, как на базовый материал.

Обзор компьютеров и BIOS

Современный персональный компьютер (или ПК) состоит из центрального процессора (ЦП или CPU) для выполнения вычислений, а также некоторого объема памяти для хранения данных, которые используются процессором. Для того, чтобы такое устройство было полезным мы подключаем к нему периферийные устройства, такие как клавиатура, “мышь”, монитор, жесткий диск, CD или DVD привод, принтер, сканер и сетевая карта, позволяющие нам вводить, хранить, печатать, отображать и передавать данные.

В описанном компьютере память, используемая процессором, называется памятью с произвольным доступом (Random Access Memory — RAM) [Прим.пер.: В русскоязычной литературе также широко используется термин ОЗУ -- Оперативное Запоминающее Устройство]. В стандартном ПК эта память является временной, то есть для хранения данных ей необходимо электричество. Выключите компьютер и эта память очистится. Посмотрим с другой стороны: когда мы выключаем ПК, мы превращаем его в набор устройств, которые ничего не делают, до тех пор, пока не будут перепрограммированы. Перепрограммирование происходит в момент включения машины; этот процесс назван начальной загрузкой или загрузкой компьютера.

Процесс начальной загрузки и BIOS

Процесс загрузки включает в себя загрузку операционной системы с внешнего устройства хранения информации, такого как floppy-диск (дискета), CD, DVD, жесткий диск, ключа защиты. Программа, выполняющая эту начальную загрузку постоянно хранится в компьютере и называется Базовой системой ввода/вывода (Basic Input Output System — BIOS). BIOS хранится в постоянной памяти, иногда называемой Память только для чтения (Read Only Memory — ROM) [Прим.пер.: В русскоязычной литературе также широко используется термин ПЗУ -- Постоянное Запоминающее Устройство]. В ранних ПК ROM-чип (микросхема ROM) был впаян или вставлен в специальное гнездо материнской платы). Обновление BIOS означало замену микросхемы ROM. Позднее стали использовать электрически перепрограммируемую память только для чтения (Electrically Erasable Programmable Read Only Memories — EEPROMs). EEPROM позволяет обходиться без специального оборудования при обновлении BIOS. Сегодня наиболее часто встречающейся формой постоянной памяти является Flash-память, которая используется также и в цифровых камерах и ключах защиты. Flash-память также позволяет обновлять BIOS. [Прим.пер.: Изначально под ПЗУ понималась память именно постоянная, то есть микросхемы памяти, содержимое которых нельзя было изменить. Именно поэтому в старых материнских платах при обновлении BIOS необходимо было менять саму микросхему, а не микрокод, как в настоящее время. Микросхемы же, допускавшие возможность перепрограммирования, назывались ППЗУ -- Перепрограммируемое Постоянное Запоминающее Устройство]

Кроме управления начальной загрузкой ПК, в настоящее время, программа BIOS обычно позволяет пользователю установить или проверить некоторые параметры конфигурации компьютера. Это включает в себя проверку установленных устройств, таких как RAM, жесткий диск, оптический привод, клавиатура, “мышь”, и, возможно, встроенный монитор, звуковую карту и сетевые соединения. Пользователь может разрешить или запретить некоторые функции. Например, можно отключить встроенную в материнскую плату звуковую подсистему, чтобы использовать установленную звуковую карту. Пользователь также может выбрать устройство, с которого следует загружать систему, и установить пароль на доступ к компьютеру.

Чтобы получить доступ к экрану настройки BIOS вам потребуется подключенная к компьютеру клавиатура. При включении компьютера выполняется Power On Self Test [Самотестирование при включении] или POST. На некоторых компьютерах выводится сообщение с просьбой нажать определенную клавишу, чтобы запустить настройку, в противном случае будет продолжена нормальная загрузка, на других вы должны сами знать какую клавишу следует нажать до того, как запустится процесс стандартной загрузки, в то время как сообщение не появляется вообще или исчезло вследствии предыдущего изменения настроек. На некоторых компьютерах вам могут быть предложены и другие варианты кроме запуска программы настройки BIOS, например, как показано на Рисунке 1. В итоге вы должны увидеть окно вроде показанного на Рисунке 2.
fig1.gif
fig2.gif

риведенные иллюстрации – это примеры того, что вы можете увидеть, вообще экраны настроек BIOS весьма разнообразны, поэтому не удивляйтесь, если на вашем компьютере они будут выглядеть иначе.

Рисунок 2 показывает нам, что Flash EEPROM (или система BIOS) имеет версию 24KT52AUS и датируется 4 Марта, 2004 тогда как текущая дата — 9 Июня, 2005. Проверка сайта поддержки производителя (IBM) показывает, что имеется несколько версий BIOS, вышедших позднее, так что, возможно, хорошей мыслью будет обновить системную BIOS.

На Рисунке 2 можно увидеть несколько других пунктов меню. Мы рассмотрим их в следующих разделах этого учебника. Перед тем как сделать это, давайте еще поговорим о внутренней работе ПК.

Шины, порты, IRQ, и DMA.

Шины PCI и ISA

Периферийные устройства, включая те, что могут быть встроены в материнскую плату, взаимодействуют с процессором посредством шины. Наиболее широко используемый в настоящее время тип шины это шина Peripheral Component Interconnect (связь периферийных компонентов) или PCI которая практически заменила более раннюю шину Industry Standard Architecture (Стандартная промышленная архитектура) или ISA. Шина ISA иногда обозначалась как шина AT после IBM PC-AT в котором она была использована впервые в 1984. Во время перехода с ISA на PCI, многие компьютеры содержали обе шины со слотами (гнездами), позволявшими использовать или ISA, или PCI периферию.
Шина ISA поддерживала 8-битные и 16-битные карты, тогда как шина PCI поддерживает 32-битные устройства.

Существует еще пара стандартных шин, о которых вы также должны знать. Многие компьютеры имеют слот Accelerated Graphics Port (Ускоренный графический порт) или AGP, являющийся специальным слотом, основанным на спецификациях шины PCI 2.1, но оптимизированным по пропускной способности и скорости отклика, что необходимо для графических карт. Он медленно вытесняется новой шиной PCI Express или PCI-E, которая лишена многих ограничений базовой конструкции PCI.

Многое о файловых системах Linux мы узнаем в последующих учебниках этой серии, но сейчас мы рассмотрим файловую систему /proc. Это не реальная файловая система на диске, а “псевдо-файловая система”, предоставляющая информацию о работающем компьютере. В этой файловой системе файл /proc/pci содержит информацию об устройствах, подключенных к шине PCI. Ниже приводятся некоторые соображения о том как избежать работы с этим специфичным файлом, поскольку команда lspci предоставляет ту же информацию. Выполните команду cat /proc/pci.

Вы можете сравнить это с результатом получаемым по команде lspci. Обычно суперпользователь (root) не указывает путь для запуска этой команды, но обычным пользователям скорее всего потребуется его указать: /sbin/lspci. Попробуйте выполнить это на своей машине.

Порты ввода/вывода (IO Ports)

Когда процессору необходимо связаться с периферийными устройствами, он делает это через порт ввода/вывода (иногда его называют просто порт). Когда процессору необходимо передать данные или управляющую информацию для периферии он записывает ее в порт. Когда на устройстве есть данные или оно имеет статус готовности для процессора, то процессор читает данные или статус из порта. Большинство устройств имеют больше одного порта, ассоциированных с ними, обычно из число измеряется первыми степенями двойки, такими как 8, 16 или 32. Передача данных обычно производится одним или двумя байтами. Устройства не могут использовать порты одновременно, поэтому если у вас есть ISA-карты, вы должны убедиться, что каждое устройство имеет связанный с ним порт или порты. Изначально это делалось при помощи переключателей и перемычек на карте, некоторые поздние ISA-карты использовали систему под названием Plug and Play (Подключи и Работай) или PnP, которая будет обсуждаться позже в этом же разделе. PCI-карты все имеют PnP-настройки.

В файловой системе /proc, файл /proc/ioports говорит нам о портах ввода/вывода доступных в системе. Выполните команду cat /proc/ioports, чтобы увидеть результат

0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
02f8-02ff : serial(auto)
0376-0376 : ide1
0378-037a : parport0
03c0-03df : vga+
03f6-03f6 : ide0
03f8-03ff : serial(auto)
0cf8-0cff : PCI conf1
1800-181f : Intel Corp. 82801DB USB (Hub #1)
1800-181f : usb-uhci
1820-183f : Intel Corp. 82801DB USB (Hub #2)
1820-183f : usb-uhci
1840-185f : Intel Corp. 82801DB USB (Hub #3)
1840-185f : usb-uhci
1860-186f : Intel Corp. 82801DB Ultra ATA Storage Controller
1860-1867 : ide0
1868-186f : ide1
1880-189f : Intel Corp. 82801DB/DBM SMBus Controller
18c0-18ff : Intel Corp. 82801DB AC'97 Audio Controller
18c0-18ff : Intel ICH4
1c00-1cff : Intel Corp. 82801DB AC'97 Audio Controller
1c00-1cff : Intel ICH4
2000-203f : Intel Corp. 82801BD PRO/100 VE (LOM) Ethernet Controller
2000-203f : e100

Порты нумеруются при помощи шестнадцатиричный чисел. Без сомнения из того, что вы увидите, кое-что вам покажется знакомым, например клавиатура (keyboard), таймер (timer), параллельный порт (parallel — принтер), последовательный порт (serial — модем) и видеокарта (vga+). Сравните это со некоторыми стандартными ассоциациями портов ввода/вывода, показанными на Листинге 3. Следует отметить, что, например, первый параллельный порт (parport0) владеет адресами в диапазоне от 0378 до 037A, что отображено в листинге /proc/ioports, но стандарт (LPT1) допускает использование для него диапазона от 378 до 37F.

1FO-1F8 - Hard Drive Controller, 16-bit ISA
200-20F - Game Control
210 - Game I/O
220 - Soundcard
278-27F - LPT2
2F8-2FF - COM2
320-32F - Hard Drive Controller, 8-bit ISA
378-37F - LPT1
3B0-3BF - Monochrome Graphics Adapter (MGA)
3D0-3DF - Colour Graphics Adapter (CGA)
3F0-3F7 - Floppy Controller
3F8-3FF - COM1

Прерывания

Итак, как процессор узнает когда заканчивается последний вывод или когда появляются данные для чтения? Обычно эта информация берется из регистра статуса, который может быть доступен при чтении из одного (или нескольких) портов, связанных с устройством. Но тут возникают две очевидные проблемы. Во-первых, процессор тратит время на проверку статуса. Во-вторых, если на устройстве есть данные, которые откуда-то поступают, вроде модема, то данные должны быть своевременно считаны, в противном случае они будут перезаписаны следующей порцией данных..

Эти две проблемы: бесполезных пустых циклов процессора и уверенности в своевременном считывании или записи данных решается посредством концепции прерываний. Прерывания также называются Запросы на прерывание или IRQ. Если с устройством происходит что-то о чём должен знать процессор, устройство вызывает прерывание и процессор временно останавливается, чтобы он не делал в настоящий момент.

Вспоминая материал предыдущего раздела, вряд ли будет удивительно, что информация о прерываниях также хранится в файловой системе /proc, в /proc/interrupts. Выполните команду command cat /proc/interrupts

Теперь прерывания нумеруются при помощи десятичных чисел в диапазоне от 0 до 15. И вновь сравните свой результат со стандартным распределением прерываний для ПК, показанным в Листинге 5.

IRQ 0 - System Timer
IRQ 1 - Keyboard
IRQ 2(9) - Video Card
IRQ 3 - COM2, COM4
IRQ 4 - COM1, COM3
IRQ 5 - Available (LPT2 or Sound Card)
IRQ 6 - Floppy Disk Controller
IRQ 7 - LPT1
IRQ 8 - Real-Time Clock
IRQ 9 - Redirected IRQ 2
IRQ 10 - Available
IRQ 11 - Available
IRQ 12 - PS/2 Mouse
IRQ 13 - Math Co-Processor
IRQ 14 - Hard Disk Controller
IRQ 15 - Available

Изначально каждое устройство имеет свое собственное IRQ. Заметим, например, что Листинге 5 IRQ5 часто используется или звуковой картой, или вторым параллельным портом (принтер). Если вам необходимы оба устройства, вы можете найти карты, которые могут быть настроены (обычно при помощи перемычек) на использование другого прерывания, например, IRQ15.

В настоящее время, PCI-устройства используют IRQ совместно, таким образом, когда что-то останавливает процессор, обработчик прерывания проверяет ему ли предназначено это прерывание и если нет, то передает следующему в цепочке. Листинги 4 и 5 не говорят нам об этом совместном использовании. Мы изучим команду grep в следующем учебнике, но сейчас мы сможем использовать ее для фильтрации вывода результата команды dmesg чтобы увидеть сообщения начальной загрузки о прерываниях (IRQ), как показано в Листинге 6, в котором совместно используемые прерывания мы выделили.

Листинг 6. Прерывания, обнаруженные при начальной загрузке.
[ian@lyrebird ian]$ dmesg | grep -i irq
PCI: Discovered primary peer bus 01 [IRQ]
PCI: Using IRQ router PIIX [8086/24c0] at 00:1f.0
PCI: Found IRQ 5 for device 00:1f.1
PCI: Sharing IRQ 5 with 00:1d.2
Serial driver version 5.05c (2001-07-08) with MANY_PORTS MULTIPORT
SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS0 at 0x03f8 (irq = 4) is a 16550A
ttyS1 at 0x02f8 (irq = 3) is a 16550A
PCI: Found IRQ 5 for device 00:1f.1
PCI: Sharing IRQ 5 with 00:1d.2
ICH4: not 100% native mode: will probe irqs later
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
PCI: Found IRQ 11 for device 00:1d.0
PCI: Sharing IRQ 11 with 00:02.0
usb-uhci.c: USB UHCI at I/O 0x1800, IRQ 11
PCI: Found IRQ 10 for device 00:1d.1
usb-uhci.c: USB UHCI at I/O 0x1820, IRQ 10
PCI: Found IRQ 5 for device 00:1d.2
PCI: Sharing IRQ 5 with 00:1f.1
usb-uhci.c: USB UHCI at I/O 0x1840, IRQ 5
PCI: Found IRQ 9 for device 00:1d.7
ehci-hcd 00:1d.7: irq 9, pci mem f885d000
parport0: irq 7 detected
PCI: Found IRQ 9 for device 02:08.0
PCI: Found IRQ 9 for device 02:08.0
parport0: irq 7 detected
PCI: Found IRQ 11 for device 00:02.0
PCI: Sharing IRQ 11 with 00:1d.0
PCI: Found IRQ 9 for device 00:1f.5
PCI: Sharing IRQ 9 with 00:1f.3
i810: Intel ICH4 found at IO 0x18c0 and 0x1c00, MEM 0xc0080c00 and
0xc0080800, IRQ 9

DMA

Ранее мы упоминали, что связь с периферийными устройствами через порты ввода/вывода производится одним или двумя байтами одновременно. Для быстрых устройств обслуживание прерываний может поглотить большую часть возможностей процессора. Более быстрым методом является использование Direct Memory Access (Прямого доступа к памяти) или DMA, при котором несколько инструкций ввода/вывода сообщают устройству куда в оперативной памяти (ОЗУ) можно писать или откуда читать данные и затем контроллер DMA осуществляет низкоуровневое управление реальными потоками данных между ОЗУ и периферийными устройствами.

Поднимите руку те, кто догадался где можно найти информацию об используемых каналах DMA. Если вы сказали, что в /proc/dma, то вы правы. Выполните команду cat /proc/dma Чтобы увидеть нечто подобное Листингу 7.

4: cascade

Это все? Важно запомнить, что большинство устройств будут использовать только один из ограниченного числа DMA-каналов при реальных приеме/передаче, поэтому /proc/dma часто будет выглядеть практическим пустым, как в нашем примере. Мы также можем просканировать сообщения загрузки для выявления DMA-совместимых устройств также, как мы делали это в предыдущем случае с IRQ. Листинг 8 показывает типичный результат.

Листинг 8. /proc/dma

[ian@lyrebird ian]$ dmesg | grep -i dma
ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:DMA, hdd:DMA
hda: 312581808 sectors (160042 MB) w/8192KiB Cache,
CHS=19457/255/63, UDMA(100)
hdc: 398297088 sectors (203928 MB) w/7936KiB Cache,
CHS=24792/255/63, UDMA(33)
ehci-hcd 00:1d.7: enabled 64bit PCI DMA

Plug and play

Ранние ПК обладали фиксированным числом потров и IRQ для отдельных устройств, таких как клавиатура или параллельный порт принтера. Это осложняло добавление новых устройств или даже использование двух однотипных, вроде двух модемов или двух принтеров, первый последовательный порт обычно назывался COM1, а второй — COM2. Linux обычно ссылается на них как ttyS0 и ttyS1. Некоторые карты можно было настраивать при помощи перемычек, которые позволяли модему, например, работать по порту COM1 или COM2. По мере увеличения устройств, исходного количества выделяемых адресов под порты и прерывания стало не хватать, и была разработана технология Plug and Play или PnP. Идея заключалась в разрешении устройству сообщать системе сколько и каких ресурсов ему необходимо, а BIOS затем сообщала устройству какие из имеющихся ресурсов ему следует использовать. Это полуавтоматическое конфигурирование было представлено в IBM PS/2 который использовал шинную архитектуру, названную microchannel. Позднее, эта идея и имя plug and play было использовано и в ISA-картах, в основном в модемах и звуковых картах, которые были наиболее популярными картами-расширениями в то время. Шина PCI продвинула идею дальше и все PCI-устройства от рождения являются plug and play.

Если вам случится работать за компьютерами с ISA PnP устройствами, то помните, что вам следует избегать конфликтов портов и прерываний между устройствами. Порты не могут быть использованы двумя устройствами одновременно; каждое устройство должно иметь свой собственный порт. Это же имеет место и для DMA каналов. За некоторыми исключениями, ISA-устройства не могут совместно использовать и IRQ. Если у вас есть не-PnP устройства, то вы должны вручную сконфигурировать каждое устройство, чтобы оно не пересекалось с другими. PnP должно выполнять конфигурирование автоматически. Однако, с некоторыми ISA-устройствами это не всегда хорошо работает. Вы можете разрешить конфликты, используя isapnptools, обсуждаемую ниже, или вы можете переназначить некоторые порты и IRQ не PnP устройствам, чтобы система заработала.

Для систем на основе ядер, предшествующих 2.4, пакет isapnptools позволял пользователям настраивать PnP-устройства. Команда isapnp считывает файл конфигурации (обычно /etc/isapnp.conf) для настройки PnP-устройств. Обычно это выполняется во время загрузки Linux. Команда pnpdump сканирует PnP-устройства и формирует список ресурсов, которые или необходимы, или предпочтительны для использования вашими PnP-картами. Формат полученного списка подходит для использования командой isapnp, как только вы раскомментируете команды, которые хотите использовать. Вы должны убедиться, что конфликты ресурсов устранены. Обратитесь к man-страницам команд isapnp и pnpdump для дополнительной информации по их использованию

Начиная с ядра 2.4, поддержка PnP внедрена в ядро и пакет isapnptools стал не нужен. К примеру, он был удален из Red Hat 7.3, выпущенной в мае 2002. Поддержка PnP схожа с поддержкой PCI, описанной ранее. Вы можете использовать команду lspnp (часть пакета kernel-pcmcia-cs) для отображения информации о PnP-устройствах. Эта информация содержится в файле /proc/bus/pnp. Этот файл отсутствует в системах, содержащих только PCI.

Жесткие диски IDE

В современных ПК наиболее распространены жесткие диски Integrated Drive Electronics или IDE [Прим.пер.: На самом деле сейчас (середина 2006 г.) наиболее распространены диски SATA, обсуждаемые ниже, а IDE медленно исчезают]. Они также известны как AT Attachment или ATA диски, что появилось после IBM PC-AT. Другим используемым типом дисков является также достаточно популярный интерфейс Small Computer System Interface или SCSI, особенно на серверах. IDE диски имеют преимущество низкой цены, а SCSI интерфейс позволяет подключить большее количество дисков, с большим потенциалом перекрытия операций для различных дисков на одной шине и, как следствие, большей производительностью.

Недавно на рынке появился новый тип дисков, под названием Serial ATA или SATA. Спецификации SATA призваны устранить некоторые ограничения спецификаций ATA, обеспечив хорошую совместимость с ATA.

BIOS и размер IDE дисков

IDE диски разбиты на сектора (sector), единица данных в 512 байт. Жесткий диск может состоять из нескольких вращающихся дисков-пластин, так что сектора располагаются в концентрических окружностях, каждая из которых называется цилиндром (cylinder). Данные с каждого отдельного диска считываются или записываются при помощи головки (head). Чтобы найти некоторый сектор, диск перемещает набор головок, связанных с цилиндром, выбирает соответствующую головку и ждет когда требуемый сектор окажется под головкой. Отсюда возникает термин CHS (Cylinder [Цилиндр], Head [Головка] и Sector [Сектор]). Можно также услышать другое название геометрия диска.

К сожалению, исторически, ранние BIOS содержали ограничение величины каждого из параметров C, H и S, а DOS, популярная операционная система для ПК, содержала дополнительные ограничения. На протяжении 1990-ых, размеры дисков быстро превзошли искусственные ограничения CHS, накладываемые BIOS и DOS. Привлекались различные стратегии для перевода реальных значений CHS в “виртуальные”, из-за чего возникали проблемы связанные либо с самой BIOS, либо с низкоуровневыми приложениями типа Ontrack Disk Manager.

Даже без искусственных ограничений BIOS или DOS, идея CHS допускала максимум 65536 цилиндров, 16 головок, и 255 секторов/дорожек. Это ограничивает вместимость 267386880 секторами, или приблизительно 137 ГБ. Заметьте, что размер дисков, в отличие от других размеров в ПК измеряется в степенях 10, так что 1ГБ=1,000,000,000 байт.

Идея была в том, чтобы система игнорировала геометрию и оставляла ее обработку самому диску. Вместо обращения к значению CHS, система просто запрашивает Logical Block Address (Адрес Логического блока) или LBA, а электроника диска вычисляет к какому реальному сектору идет обращение на чтение/запись. Этот процесс был стандартизирован в 1996 с принятием стандарта ATA-2 (ANSI стандарт X3.279-1996, AT Attachment Interface with Extensions [Интерфейс AT с расширениями]).

Как говорилось ранее, BIOS необходима для загрузки системы, поэтому ей необходимо знать об организации диска, чтобы загрузить стартовую программу. Старые BIOS, не понимающие LBA-диски могут иметь ограничение по загрузке с первых 1024 цилиндров диска, или, по крайней мере, с первых 1024 цилиндров, в понимании геометрии диска самой BIOS! Такие BIOS вероятно в настоящее время весьма редки, но если вам необходимо работать с одной из них, она может иметь установки для поддержки LBA, а также вам, вероятно, понадобится разместить каталог /boot в разделе в первых 1024 цилиндрах. Даже когда ваша система будет прекрасно загружаться с самого конца самого большого диска, многие инструменты разбивки диска в Linux будут предупреждать вас о том, что раздел находится за пределами первых 1024 цилиндров.

На Рисунке 3 показана информация, доступная в BIOS моей материнской платы Intel для 250ГБ IDE диска на одной из моих Linux-систем.
fig3.gif

По умолчанию ПК загружается с первого IDE диска компьютера. Некоторые компьютеры имеют пункты BIOS, позволяющие изменить это, однако большинство загружаются именно так. Сначала компьютер загружает маленький кусочек кода из master boot record (главной загрузочной записи) которая, в свою очередь, предоставляет информацию с какого раздела грузиться. Мы рассмотрим подробнее начальные загрузчики для Linux в следующих учебниках.

Имена дисков Linux

Большую часть о том, как Linux использует диски мы рассмотрим в последующих учебниках данной серии. Однако, сейчас хорошо бы представить вам другую важную файловую систему Linux — /dev. Это, подобно /proc, псевдо-файловая система описывающая устройства, которые могут быть в Linux системах. Внутри файловой системы /dev вы обнаружите такие записи, как /dev/hda, /dev/hda5, /dev/sda, /dev/sdb1 и так далее. Вы также найдете множество других записей для других типов устройств, но сейчас давайте взглянем на те из них, которые начинаются или с /dev/hd, или с /dev/sd.

Устройства, начинающиеся с /dev/hd, такие как /dev/hda или /dev/hda5 ссылаются на IDE-диски. Первый диск первого контроллера IDE это /dev/hda, а второй, если имеется, это /dev/hdb. Точно также первый диск второго контроллера IDE это /dev/hdc, а второй — /dev/hdd. Как видно из Листинга 10, в /dev прописано намного больше, нежели имеется в вашей системе.

Листинг 10. Записи /dev/hd? и /dev/sd?

[ian@lyrebird ian]$ ls /dev/hd?
/dev/hda /dev/hdd /dev/hdg /dev/hdj /dev/hdm /dev/hdp /dev/hds
/dev/hdb /dev/hde /dev/hdh /dev/hdk /dev/hdn /dev/hdq /dev/hdt
/dev/hdc /dev/hdf /dev/hdi /dev/hdl /dev/hdo /dev/hdr
[ian@lyrebird ian]$ ls /dev/sd?
/dev/sda /dev/sde /dev/sdi /dev/sdm /dev/sdq /dev/sdu /dev/sdy
/dev/sdb /dev/sdf /dev/sdj /dev/sdn /dev/sdr /dev/sdv /dev/sdz
/dev/sdc /dev/sdg /dev/sdk /dev/sdo /dev/sds /dev/sdw
/dev/sdd /dev/sdh /dev/sdl /dev/sdp /dev/sdt /dev/sdx

Также как и для IRQ ранее, мы можем использовать команду dmesg, чтобы узнать какие дисковые устройства обнаружены во время загрузки, Вывод для одной из моих машин приведен в Листинге 11.

Листинг 11. Жесткие диски, обнаруженные при загрузке

[ian@lyrebird ian]$ dmesg | grep "[hs]d[a-z]"
Kernel command line: ro root=LABEL=RHEL3 hdd=ide-scsi
ide_setup: hdd=ide-scsi
ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:DMA, hdd:DMA
hda: WDC WD1600JB-00EVA0, ATA DISK drive
hdc: Maxtor 6Y200P0, ATA DISK drive
hdd: SONY DVD RW DRU-700A, ATAPI CD/DVD-ROM drive
hda: attached ide-disk driver.
hda: host protected area => 1
hda: 312581808 sectors (160042 MB) w/8192KiB Cache,
CHS=19457/255/63, UDMA(100)
hdc: attached ide-disk driver.
hdc: host protected area => 1
hdc: 398297088 sectors (203928 MB) w/7936KiB Cache,
CHS=24792/255/63, UDMA(33)
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 >
hdc: hdc1 < hdc5 hdc6 hdc7 hdc8 >
hdd: attached ide-scsi driver.

Из Выделенных строк Листинга 11, мы можем видеть, что в системе имеется два IDE-диска (hda и hdc), а также привод DVD-RW (hdd). Заметьте, hdb нет, что говорит о том, что на первом IDE-контроллере второго диска нет. Диск может иметь четыре основных раздела (primary) и неограниченное количество логических (logical). Рассмотрев диск hdc Листинга 11, мы можем увидеть, что он имеет один primary-раздел (hdc1) и четыре логических (hdc5, hdc6, hdc7, и hdc8). В теме 104 в последующем учебнике этой серии мы увидим, что на самом деле hdc1 это контейнер (или расширенный (extended) раздел) для логических разделов.

Исторически такие устройства, как sda и sdb являлись SCSI-дисками, которые мы рассмотрим далее, при изучении настройки SCSI-устройств для ядра 2.4, IDE CD и DVD устройства обычно управляются через эмуляцию SCSI. Такие устройства часто появляются в /dev похожие на /dev/cdrom, что является символьной ссылкой на эмулируемое SCSI-устройство. Для описанной системы, Листинг 12 показывает, что /dev/cdrom это ссылка на /dev/scd0, а не на /dev/hdd, как можно было бы ожидать. Заметьте, что параметр ядра hdd=ide-scsi в Листинге 11 является указанием, что ide-scsi привод был присоединен к hdd.

Листинг 12. IDE SCSI-эмуляция

[ian@lyrebird ian]$ ls -l /dev/cdrom
lrwxrwxrwx 1 root root 9 Jan 11 17:15 /dev/cdrom -> /dev/scd0

Сейчас вы убедитесь, что и USB, и SATA устройства хранения обозначаются как sd, а не hd.

Стандартная периферия

Выше мы упоминали такую периферию, как последовательный и параллельный порты, которые обычно интегрированы в материнскую плату, и рассмотрели некоторые стандартные порты ввода/вывода, а также IRQ ассоциируемые с этими устройствами. Последовательные порты, в действительности, использовались для соединения различных устройств и исторически трудно настраиваются. С появлением устройств стандарта IEEE 1394, известного также, как Firewire и Universal Serial Bus (Универсальной шины данных) или USB, автоматическая настройка и “горячее” подключение устройств повсеместно заменило рутину корректной настройки последовательных и параллельных портов. Фактически, legacy-free (свободные от наследства) системы не поддерживают стандартные последовательный и параллельный порты. В них не поддерживается ни флоппи-драйв, ни PS/2 клавиатура, ни PS/2 “мышь”.

Теперь мы обсудим некоторые основные настройки BIOS, которые вам может понадобиться изменить.

Serial ports (COMn) [Последовательные порты]

Стандартные последовательные порты нумеруются от COM1 до COM4. Если в вашей системе есть единственное гнездо последовательного порта (изначально 25-контактный DB25 разъем, но в настоящее время обычно 9-контактный разъем DB9), то вероятно используются стандартные для COM1 адреса и прерывания (IRQ), а именно порт ввода/вывода (IO port) 3F8 и IRQ 4.

Таблица 3. Параметры последовательного порта
Имя Адрес

IRQ

COM1 3F8-3FF 4
COM2 2F8-2FF 3
COM3 3E8-3EF 4
COM4 2E8-2EF 3

Вы можете заметить, что COM1 и COM3 совместно используют IRQ 4, а COM2 и COM4, в свою очередь, IRQ 3. Поскольку драйвер и устройство в действительности не могут совместно использовать прерывания, и устройство не может вообще не использовать прерывание, то это означает, что реальная система использует только COM1 и COM2.

Изредка, вам может понадобиться или отключить встроенный последовательный порт, или настроить его на использование другого адреса и IRQ. Наиболее вероятной причиной сделать это является конфликт между PnP модемом и ISA-слотом или желание использовать PnP-модем на COM1. Мы рекомендуем изменять это только в том случае, если Linux не может определить вашу конфигурацию.

Parallel ports (LPTn) [Параллельные порты]

Стандартные параллельные порты нумеруются от LPT1 до LPT4, хотя обычно присутствует только два. Если в вашем компьютере есть единственное гнездо параллельного порта, то он, вероятно, по умолчанию использует адрес и IRQ для LPT1, а именно порт ввода/вывода 378 и IRQ 7. Стандартные адреса портов ввода/вывода и IRQ для параллельных портов приведены в Таблице 4.

Таблица 4. Параметры параллельного порта
Имя Адрес

IRQ

LPT1 378-37F 7
LPT2 278-27F 5
LPT* 3BC-3BE

Заметьте, что порты ввода/вывода 3BC-3BE изначально использовались графическим адаптером Hercules, который также имеет параллельный порт. Многие системы BIOS присваивают этот диапазон LPT1 и затем два других диапазона становятся LPT2 и LPT3 соответственно, вместо LPT1 и LPT2.

Многие системы не используют прерываний для принтеров, поэтому IRQ реально может использоваться, а может и нет. Не редкость также совместное использование IRQ 7 для печати и звуковой карты (совместимой с Sound Blaster).

Параллельные порты изначально обычно использовались для печати с данными, поступающими на принтер и несколькими линиями, зарезервированными для отчета о статусе. Позднее, параллельные порты использовались для подсоединения различных устройств (включая ранние CD-ROM и ленточные приводы), в связи с чем направленность только на вывод данных сменилась двунаправленным потоком данных.

Текущий стандарт параллельных портов это IEEE Std. 1284-1994 Standard Signaling Method for a Bi-Directional Parallel Peripheral Interface for Personal Computers (Стандарт Метода Передачи сигналов для Двунаправленного Параллельного Интерфейса Периферии Персонального Компьютера), который определяет пять сигнальных режимов. Ваш BIOS во время настройки может предоставить вам на выбор один из них bi-directional (двунаправленный), EPP, ECP и EPP and ECP. ECP расшифровывается как Enhanced Capabilities Port (Порт с Расширенными Возможностями) и разработан для использования с принтерами. EPP расшифровывается как Enhanced Parallel Port (Улучшенный Параллельный Порт) и разработан для таких устройств, как CD-ROMы и ленточный приводы, которым необходим значительный поток данных в обоих направлениях. Выбор BIOS по умолчанию скорее всего это ECP. Как и для последовательных портов, изменять это следует только если у вас есть устройство, не функционирующее должным образом.

Порт Floppy дисковода

Если в вашей системе присутствует стандартный контроллер floppy диска, то он использует порты 3F0-3F7. Если вы установите стандартный floppy-дисковод в компьютер, который продавался без него, то вам необходимо будет включить соответствующие опции в BIOS. Просмотрите документацию производителя для выяснения деталей.

Клавиатура и “мышь”

Контроллер клавиатура/”мышь” использует порты 0060 и 0064 для стандартной клавиатуры и “мыши”, подсоединенных к гнезду PS/2. Многие системы выдают ошибку Power-On-Self-Test (POST) [Самотестирование При Включении], если клавиатура не подключена. Большинство машин разработанных для использования в качестве серверов и многие настольные в настоящее время имеют опции BIOS для нормального запуска без клавиатуры.

Работать на компьютере без клавиатуры (или “мыши”) проблематично. Но сервера часто работают именно так. Управление осуществляется посредством сети используя инструменты web-администрирования или интерфейс командной строки, такой как telnet или (предпочтительнее) ssh.

Установка безклавиатурной системы обычно подразумевает использование терминала (или эмулятора терминала), подсоединенного к последовательному порту. Обычно вам необходима клавиатура и монитор, чтобы убедиться, что BIOS настроена правильно и последовательный порт включён. Также вам может потребоваться сформированный загрузочный диск или CD для осуществления установки Linux.

Другой подход используется в системах JS20 blade server это эмуляция последовательного соединения в сети.

Взято на ibm.com

Похожие посты
  • LPI 101. Аппаратные средства и архитектура. Коммуникационные устройства
  • Когда не нужно перепрошивать BIOS. Основные ошибки
  • Настройка VMware Distributed Power Management
  • LPI 101. Аппаратные средства и архитектура. Настройка SCSI-устройств
  • LPI 101. Аппаратные средства и архитектура. Модемы и звуковые карты
  • LPI 101. Аппаратные средства и архитектура. USB устройства
  • FAQ по BIOS
  • Установка Windows Server 2008 в Xen HVM завершается ошибкой
  • Оптимизация настроек BIOS
  • Открытые системы BIOS для Linux
  • 2 Trackbacks

    1. [...] LPI 101. Аппаратные средства и ар

    2. [...] LPI 101. Аппаратные средства и ар

    Комментарии

    Your email is never published nor shared. Required fields are marked *

    *
    *