- «Linux» это не просто Linux: 8 частей программного обеспечения, из которых состоят системы Linux
- Начальный загрузчик
- Ядро Linux
- Демоны
- Командная оболочка
- Утилиты командной оболочки
- Графический сервер X.org
- Среда рабочего стола
- Программы рабочего стола
- Аппаратные требования
- Основные требования
- Предустановленное программное обеспечение под Linux
- Аппаратное обеспечение, работающее только в среде Windows
- Клавиатура и мышь
- Аппаратное программное обеспечение linux
- Linux на платформах, отличных от Intel.
- А что внутри? Получение информации об аппаратном обеспечении компьютера в Linux
- Используемые термины
- Семейство утилит ls
- Что такое SMBIOS?
- Дополнительные утилиты с интерфейсом командной строки
- Утилиты с графическим интерфейсом
- Самостоятельная работа с содержимым файловых систем /proc и /sys
- Заключение
«Linux» это не просто Linux: 8 частей программного обеспечения, из которых состоят системы Linux
Дистрибутивы Linux не являются только ядром Linux. Все они содержат другие важные программы, такие как начальный загрузчик Grub, командная оболочка Bash, утилиты командной оболочки GNU, демоны, графический сервер X.org, среда рабочего стола и многое другое.
Все эти различные программы разрабатываются разными, независимыми группами разработчиков. Они объединены при помощи дистрибутивов Linux, где они собираются одна поверх другой с тем, чтобы создать полную операционную систему «Linux». Это отличие от системы Windows, которая разработана исключительно компанией Microsoft.
Начальный загрузчик
Когда вы включаете компьютер, прошивка BIOS или UEFI вашего компьютера загружает программное обеспечение с загрузочного устройства. Первая программа, которая загружает в любой операционной системе, является начальным загрузчиком. В Linux, это, как правило, начальный загрузчик Grub.
Если у вас установлено несколько операционных систем, то Grub предлагает меню, позволяющее выбирать одну из них — например, если у вас установлен Linux в конфигурации с двойной загрузкой, вы можете, когда происходит загрузка, выбрать либо Linux или Windows.
Если у вас установлена только одна операционная система, то Grub может загрузить систему Linux практически мгновенно, но он все еще продолжает обработку. Grub обрабатывает процесс непосредственной загрузки Linux, задает параметров командной строки и для того, чтобы устранить неполадки, позволяет вам загрузить Linux другими способами. Без начального загрузчика, дистрибутив просто не будет загружаться.
Ядро Linux
Определенная часть программного обеспечения, которое загружается с помощью Grub, является ядром Linux. Это та часть системы, которая на самом деле называется «Linux». Ядро является центральной частью системы. Он управляет вашим процессором, памятью и устройствами ввода/вывода, такими как клавиатуры, мыши и дисплеи. Поскольку ядро обращается непосредственно к оборудованию, многие драйверы оборудования являются частью ядра Linux и запускаются внутри ядра.
Все другое программное обеспечение работает выше ядра. Ядро является частью программного обеспечения, которое лежит на самом нижнем уровне и взаимодействует с аппаратным обеспечением. Он представляет собой слой абстракции над оборудованием, который имеет дело со всеми аппаратными причудами, тогда как остальная часть системы может почти совсем с ними не иметь дело. В Windows используется ядро Windows NT, а в Linux используется ядро Linux.
Демоны
Демоны, по существу, являются фоновыми процессами. Они часто запускаются как часть процесса начальной загрузки, поэтому они являются тем, что загружается после ядра и прежде, чем вы видите свой графический экран входа в систему. В Windows такие процессы называются «сервисами», в то время как в UNIX-подобных системах они называются «демонами» (прим.пер.: более точно — «даемонами» от английского « daemons»).
Например, crond, который управляет выплнением запланированных задач, является демоном — буква d в конце означает «демон». syslogd является еще одним демоном, который традиционно управляет вашим системным журналом. Серверы, такие как сервер sshd, работают как демоны фонового режима. Это гарантирует, что они всегда работают и прослушивают дистанционные подключения.
Демоны, по существу, являются всего лишь фоновыми процессами, но они являются процессами системного уровня, работу которых вы вообще не замечаете.
Командная оболочка
В большинстве систем Linux по умолчанию используется командная оболочка Bash. Командная оболочка обеспечивает интерфейс командного процессора, что позволяет управлять вашим компьютером с помощью ввода команд в текстовом режиме. В командной оболочке можно также запускать скрипты командного процессора, которые представляют собой набор команд и операций, выполняемых в тем порядке, который указан в скрипте.
Даже если вы пользуетесь только графическим рабочим столом, командные оболочки работают и используются в фоновом режиме. Когда вы откройте окно терминала, вы видите приглашение к работе, выдаваемое командной оболочкой.
Утилиты командной оболочки
В командной оболочке предоставляется некоторое количество основных встроенных команд, но большинство из команд командной оболочки, которыми пользуются пользователи Linux, не встроены в командную оболочку. Например, такие важные команды, как команда cp, используемая для копирования файлов, команда ls, используемая для получения списка файлов в каталоге, и команда rm, используемая для удаления файлов, являются частью пакета базовых утилит GNU Core Utilities.
Вот почему много споров относительно того, должен ли Linux действительно назваться «Linux» или «GNU/Linux». Критики названия «Linux» правильно отмечают, что большая часть программного обеспечения идет в составе типичных систем Linux, что часто не признается. Критики названия «GNU/Linux» правильно отмечают, что в типичную систему Linux также входит другое важное программное обеспечение, которое нельзя охватить названием «GNU/Linux».
Не все из утилит командной оболочки и программ, работающих из командной строки, разрабатываются в рамках проекта GNU. Некоторые команды и терминальные программы имеют свои собственные проекты, предназначенных специально для них.
Графический сервер X.org
Часть Linux, представляющая собой графический рабочий стол, не является частью ядра Linux. Она реализуется с помощью пакете специального вида, известного как «Сервер X», поскольку он реализует «Оконную систему X», которая возникла много лет назад.
В настоящее время наиболее популярным сервером X или графическим сервером является сервер X.org. Когда вы видите окно графического входа или появляется рабочий стол, то это свое волшебство проявляет сервер X.org. Работа всей графической системы осуществляется под управлением сервера X.org, который взаимодействует с вашей видеокарты, монитором, мышью и другими устройствами. X.org не предоставляет полную окружение рабочего стола, это просто графическая система, поверх которой могут быть созданы окружение и инструментарий рабочего стола.
Среда рабочего стола
То, что вы действительно используете на рабочем столе Linux, представляет собой рабочую среду. Например, в состав системы Ubuntu входит среда рабочего стола Unity, в состав системы Fedora входит GNOME, в Kubuntu входит KDE, в в состав системы Mint обычно входит Cinnamon or MATE. Эти окружения рабочего стола обеспечивают все, что вы видите — фон рабочего стола, панели, заголовки и границы окон.
Они также обычно включают в себя свои собственные утилиты, которые встроены для того, чтобы окружение рабочего стола выглядело как единое целое. Например, в GNOME и Unity входит файловый менеджер Nautilus, разработанный в рамках GNOME, а KDE включает в себя файловый менеджер Dolphin, разработанный в рамках проекта KDE.
Программы рабочего стола
Не каждая программа, работающая на рабочем столе, является частью среды рабочего стола. Например, программы Firefox и Chrome работают независимо от среды рабочего стола. Они просто являются программами, которые могут нормально работать поверх любой среды рабочего стола. Либо пакет OpenOffice.org, который является еще одним набор программ, которые не привязаны к конкретной среде рабочего стола.
Вы можете запускать любую программу Linux, предназначенную для рабочего стола, в любой графической среде, но те программы, которые предназначены для определенной рабочей среды, могут выглядеть не к месту или могут мешать другим процессам. Например, если вы пытаетесь запустить файловый менеджер Nautilus, предназначенный для GNOME, в среде KDE, он будет выглядеть не к месту, потребует от установки разнообразных библиотек GNOME, и, вероятно, когда вы откроете его, будет в фоновом режиме запускать процессы рабочего стола GNOME. Но он будет работать и его можно будет использовать.
Последний шаг остается за дистрибутивами Linux. Они берут все это программное обеспечение, объединяют его так, чтобы оно хорошо работало совместно, и добавляют свои собственные необходимые утилиты. Например, для дистрибутивов создаются их собственные инсталляторы операционной системы с тем, чтобы вы действительно смоли установить Linux, а также менеджеры пакетов для установки дополнительного программного обеспечения и поддержки установленного программного обеспечения в обновленном виде.
Источник
Аппаратные требования
К компьютеру, на который предполагается установка Linux, предъявляются, конечно, определенные требования.
Основные требования
Ваш компьютер, в первую очередь, должен отвечать требованиям к « железу ». В общем виде для любого дистрибутива требования примерно следующие:
Параметр | Минимум | Рекомендуется |
---|---|---|
Процессор | 400Mhz | ≥1000Mhz |
Память | 128MB | ≥256MB |
Место на диске | 2GB | ≥8GB |
Наиболее критичным фактором для работы компьютера в Linux является память. Работа с запущенной KDE при памяти менее 256MB совершенно не комфортна.
Если у вас старый компьютер, то не следует использовать тяжелые графические среды. Ведь и без всяких рюшек и анимации можно работать. Например, на старую машину (i430TX 166Mhz с памятью 64MB и винчестером 5,1GB) я устанавливал ALT Linux Compact 2.3 без KDE и GNOME. Затем я обновлял дистрибутив до Master 2.4. Проверялась работа следующих графических оболочек: WindowMaker, IceWM, FluxBox, Enlightenment, XFce.
Все «это хозяйство» работает и по сей день, даже XFce не дает никаких «тормозов».
Предустановленное программное обеспечение под Linux
Некоторые продавцы предлагают системы с уже установленным дистрибутивом Linux. Может за это вам придётся заплатить чуть больше, но это плата за душевный покой, так как в этом случае вы можете быть уверены в том, что данное аппаратное обеспечение хорошо поддерживается GNU/Linux.
Аппаратное обеспечение, работающее только в среде Windows
Появилась нездоровая тенденция выпускать Windows-зависимые модемы и принтеры. Из такого оборудования обычно удалены встроенные процессоры, а их функции перенесены в драйвер Windows, то есть на ваш основной процессор. Это еще один прием , которым Microsoft пытается привязать к своему программному обеспечению пользователей.
Следует избегать приобретения подобных кастрированных устройств по двум причинам:
- Аппаратный и программный интерфейс к устройству закрыт, а документация недоступна, что мешает использованию устройства для свободного программного обеспечения, где коды программ открыты.
- Когда из устройства удаляется встроенный процессор, операционная система должна выполнять работу встроенного процессора, часто с приоритетом реального времени, а это значит, что центральный процессор недоступен для работы других программ на время обслуживания таких устройств. В связи с тем, что обычный пользователь Windows не так интенсивно использует многозадачность как пользователь Linux, производители надеются, что он просто не заметит того, что тяжесть работы их устройств перенесена на центральный процессор. Однако, даже Windows 2000 или XP, страдают потерей производительности, когда производители периферийного оборудования урезают задачи, выполняемые самими устройствами.
Клавиатура и мышь
Возможно, что продавцы будут всячески расписывать вам необыкновенные достоинства клавиатур и мышей, заточенных под Windows и усыпанных дополнительными клавишами и кнопками. Все эти прибамбасы в Linux не нужны.
Не следует лишь отказываться от приобретения 3-х кнопочной мыши с колесом, т.к. графические среды Linux рассчитаны именно на них, а эмулировать среднюю кнопку не очень удобно.
Источник
Аппаратное программное обеспечение linux
Для работы Linux требуется компьютер PC 386, 486 или Pentium с 2 MB оперативной памяти (RAM) и одним флоппи диском. Такая конфигурация позволит запустить Linux. 4 MB RAM и 30 MB на жестком диске (HDD) — это тpебуемые ресурсы, когда можно сделать нечто реальное и полезное (без оконной системы X Window System). 4 MB RAM и 60 MB HDD — вместе с X Window System (X Windows, как ее часто называют в просторечии). Для эффективной работы системы X Windows требуется 8 MB RAM. Машину с 33-х МГц процессором 486 и памятью 8 MB RAM / 120 MB HDD Linux превращает в графическую рабочую станцию. На машине с 12 MB RAM окошки X Windows начинают «летать». Машина с 486 DX2 66 МГц и 16 MB RAM под Linux представляет собой мощную рабочую станцию и/или многопользовательский сетевой сервер. Машина Pentium 133 МГц и 64 MB RAM с ОС Linux сравнима с рабочей станцией SGI.
Linux поддерживает шины ISA, VESA и PCI. Шина MCA фирмы IBM (серия компьютеров PS) поддерживается не во всех конфигурациях.
Linux вместе с X Windows работает на большом количестве марок ноутбуков и лэп-топов.
На персональных компьютерах с процессорами 8086 и 80286 Linux не используется, но имеется вариант Linux, работающий на процессоре 8086, для применения в качестве встроенной системы.
Дистрибутив системы Linux содержит подробный перечень поддерживаемого оборудования, включая типы графических адаптеров, контроллеров, сетевых плат и т.д.
Linux на платформах, отличных от Intel.
Помимо платформы Intel Linux работает на компьютерах Amiga и Atari, построенных на процессорах серии Motorola 68000.
При поддержке фирмы DEC реализован и получает распространение Linux для платформы DEC AXP.
В стадии разработки находятся версии Linux для платформ MIPS, PowerPC и др. Разработка для Power Macintosh поддерживается фирмой Apple.
Источник
А что внутри? Получение информации об аппаратном обеспечении компьютера в Linux
Оригинал: What’s in the Box? Interrogate Your Linux Machine’s Hardware
Автор: Federico Kereki
Дата публикации: 16 февраля 2016 г.
Перевод: А. Панин
Дата перевода: 17 мая 2016 г.
Недавно я столкнулся с проблемой при установке драйвера для видеокарты производства NVIDIA. Оказалось, что в последней версии драйвера была прекращена поддержка моей видеокарты, поэтому после обновления версии ядра ОС я оказался без работающего видеодрайвера. Разумеется, тогда мне нужно было вспомнить ответ на один простой вопрос: «видеокарту какой модели я использую?». Но, к сожалению, я уже не помнил этого. Если вам нужно узнать название чипсета вашей материнской платы, модель центрального процессора или получить какую-либо другую информацию об аппаратном обеспечении вашего компьютера в Linux, вы всегда можете воспользоваться несколькими специализированными утилитами. В моем случае удалось достаточно быстро получить информацию о модели установленной видеокарты, выяснить, что ее использование будет связано с некоторыми проблемами в будущем и принять решение о целесообразности покупки новой.
В рамках данной статьи я постараюсь описать некоторые способы получения информации об аппаратном обеспечении вашей машины. Я продемонстрирую классические приемы работы с некоторыми утилитами с интерфейсом командной строки, но если вы предпочитаете использовать утилиты с графическим интерфейсом, вы также сможете найти в данной статье описания нескольких таких утилит. Если же вы желаете получить доступ к низкоуровневым интерфейсам для получения информации об аппаратном обеспечении, данная статья также будет небезынтересной для вас, ведь я буду упоминать о некоторых файлах виртуальных файловых систем /proc и /sys, содержащих данную информацию.
Используемые термины
В процессе работы с аппаратным обеспечением вы наверняка столкнетесь с некоторыми акронимами, причем я не могу не признать тот факт, что я использовал некоторые из них, даже точно не помня об их значении. Это список акронимов, которые вам несомненно понадобятся:
- ACPI (Advanced Configuration and Power Interface — усовершенствованный механизм управления конфигурацией и питанием): интерфейс для управления различными аспектами работы системы электропитания компьютера.
- AGP (Accelerated Graphics Port — ускоренный графический порт): порт, позволяющий подключить графическую карту (практически не используется после 2008 года).
- APM (Advanced Power Management — расширенный механизм управления электропитанием): интерфейс, использовавшийся до появления ACPI, также предназначенный для управления различными аспектами работы системы электропитания компьютера.
- ATA (AT Attachment — интерфейс подключения накопителей): стандарт «AT» из эры IBM AT, описывающий технологию подключения устройств хранения данных к машине, который был заменен на стандарт SATA в 2003 году.
- BIOS (Basic Input/Output System — базовая система ввода-вывода): прошивка, используемая в процессе загрузки Intel-совместимого персонального компьютера.
- DMA (Direct Memory Access — технология прямого доступа к памяти): технология, позволяющая аппаратному обеспечению использовать оперативную память независимо от центрального процессора.
- DMI (Desktop Management Interface — интерфейс доступа к данным аппаратного обеспечения для настольных систем): фреймворк для получения информации об устройствах компьютера.
- IDE (Integrated Drive Electronics — интерфейс подключения накопителей): стандарт, описывающий технологию подключения устройств хранения данных к машине, который позднее эволюционировал в ATA.
- IRQ (Interrupt ReQuest — запрос прерывания): аппаратный сигнал, который позволяет обработчику прерываний обработать определенное событие.
- PCI (Peripheral Component Interconnect — шина взаимосвязи периферийных компонентов): стандарт шины ввода-вывода для подключения различных периферийных устройств к компьютеру, разработанный в 1992 году.
- UEFI (Unified EFI — Extensible Firmware Interface — интерфейс расширяемой прошивки): разработанный в 2005 году стандарт прошивки, предназначенной для замены прошивки BIOS, который пришел на смену разработанному в 1998 году стандарту EFI.
- USB (Universal Serial Bus — универсальная последовательная шина): стандарт шины ввода-вывода, разработанный в 1995 году для предоставления возможности подключения к компьютеру периферийных устройств всех типов.
- PATA (Parallel ATA — параллельный интерфейс подключения накопителей): новое название стандарта ATA, введенное в обиход после появления стандарта SATA.
- PCIe (PCI Express — шина взаимосвязи периферийных компонентов третьего поколения): стандарт высокоскоростной последовательной шины, пришедший на смену стандартам PCI и AGP в 2004 году.
- RAID (Redundant Array of Independent (Inexpensive) Disks — избыточный массив независимых (недорогих) дисков): технология виртуализации хранилища данных, позволяющая комбинировать несколько дисков в рамках одного виртуального накопителя с целью повышения производительности или избыточности хранения данных. Существует несколько схем RAID, таких, как RAID 0 («массив с чередованием»), RAID 1 («зеркальный массив»), RAID 5 («массив с чередованием без выделенного диска для данных четности») и RAID 10 («зеркальный массив с чередованием»).
- SATA (Serial ATA — последовательный интерфейс подключения накопителей): интерфейс для подключения устройств хранения данных, который используется в данное время практически во всех компьютерах.
- SCSI (Small Computer System Interface — системный интерфейс для малых компьютеров, произносится «скази»): набор стандартов, описывающих технологию соединения устройств и передачи данных между компьютерами и периферийными устройствами.
Семейство утилит ls
Давайте начнем рассмотрение утилит с интерфейсом командной строки с нескольких утилит, имена которых начинаются с «ls» (Таблица 1). Некоторые из этих утилит позволяют получить информацию, которая предоставляется другими утилитами (например, lsdev и lshw ), однако, для получения исчерпывающей информации об аппаратном обеспечении компьютера рекомендуется использовать все приведенные в таблице утилиты.
Таблица 1. Утилиты из семейства ls позволяют получить доступ к информации обо всем аппаратном обеспечении компьютера
Утилита | Описание |
---|---|
lsblk | Выводит информацию обо всех блочных устройствах, таких, как жесткие диски, приводы DVD, а также других подобных устройствах. |
lscpu | Выводит информацию о количестве центральных процессоров, их ядер, потоков обработки инструкций, а также других параметрах центральных процессоров. |
lsdev | Выводит информацию обо всех устройствах, которые идентифицированы операционной системой. |
lshw | Выводит список аппаратного обеспечения компьютера, содержащий подробную информацию о каждом из устройств. |
lspci | Выводит информацию о шинах PCI вашего компьютера и подключенных ним устройствах, таких, как графические карты, сетевые адаптеры и другие устройства. |
lsscsi | Выводит информацию обо всех устройствах SCSI, соединенных с вашим компьютером, таких, как жесткие диски или приводы для чтения оптических дисков. |
lsusb | Выводит информацию обо всех шинах USB вашего компьютера и подключенных к ним устройствах. |
Давайте начнем с получения информации об используемом центральном процессоре. Утилита lscpu выведет всю информацию об установленном в вашем компьютере центральном процессоре. Вы можете сообщить утилите о необходимости вывода информации обо всех центральных процессорах, вне зависимости от того, задействованы они или нет, с помощью параметра —all , а также о задействованных и незадействованных центральных процессорах с помощью параметров —online и —offline соответственно. Параметр —parse позволяет выбрать характеристики центрального процессора, которые вас интересуют, такие, как количество ядер центрального процессора, количество центральных процессоров, объем кэша, минимальная и максимальная тактовые частоты (в МГц) и другие. Очевидно, что в моей машине установлен единственный не самый современный четырехядерный центральный процессор Intel Core 2 Quad с тактовой частотой 2.66 ГГц:
(Примечание: вы можете получить большую часть данной информации, прочитав содержимое файла /proc/cpuinfo или файлов из директорий /sys/bus/cpu/; обратитесь к разделу «Самостоятельная работа с содержимым файловых систем /proc и /sys» для ознакомления с дополнительной информацией.)
Давайте перейдем к блочным устройствам, таким, как жесткие диски или приводы CD-ROM и DVD-ROM. Утилита lsblk выводит информацию обо всех доступных блочных устройствах (пример вывода приведен в Листинге 1). Очевидно, что в моем компьютере установлены три жестких диска и привод DVD-ROM. Этим трем жестким дискам соответствуют файлы устройств /dev/sda, /dev/sdb и /dev/sdc, а приводу DVD-ROM — файл устройства /dev/sr0. Диски имеют объем 466 ГБ, 149 ГБ и 2.7 ТБ соответственно. Также утилита выводит немного информации о таблице разделов дисков; например, несложно заметить, что на двух первых дисках созданы разделы подкачки, а на третьем диске нет такого раздела. Кроме того, утилита выводит информацию о точках монтирования разделов трех дисков (/, /disk-laptop и /disk-data соответственно).
Листинг 1. Утилита lsblk выводит информацию обо всех блочных устройствах (или устройствах для хранения данных). Параметр —topology позволяет получить немного дополнительной информации; воспользуйтесь параметром —output-all, если даже этой информации не достаточно.
Утилита поддерживает множество дополнительных параметров, но чаще всего используются такие параметры, как параметр —paths , предназначенный для вывода путей к файлам устройств и параметр —topology , предназначенный для вывода значений таких низкоуровневых параметров устройства, как размер физического сектора, название планировщика ввода/вывода и других. Вы можете получить информацию о владельце, группе владельцев и правах доступа к файлу устройства с помощью параметра —perm таким образом, как показано ниже (если же вам нужно еще больше информации, вы можете воспользоваться параметром —output-all , который активирует режим вывода таблицы с практически 50 столбцами полезных данных):
Для получения информации о SCSI-устройствах может использоваться параметр —scsi утилиты lsblk , но при этом также не стоит забывать о существовании специализированной утилиты lsscsi . Эта утилита выводит базовую информацию обо всех используемых устройствах SCSI таким же образом, как показано ниже. В моем случае она выводит информацию о трех жестких дисках и устройстве для чтения оптических дисков, ранее обнаруженных с помощью утилиты lsblk , а также о трех кардридерах. Обратите внимание на то, что утилита также выводит информацию о производителях и моделях устройств. Например, в моем компьютере установлено два жестких диска производства Western Digital (WD5000AAKS и WD30EZRX), а также жесткий диск производства Maxtor (STM316021) и привод для чтения дисков DVD производства Sony (AD-7200S):
Вы можете ознакомиться со списком всех поддерживаемых параметров рассматриваемой утилиты, выполнив команду lsscsi —help . Таким образом вы сможете убедиться в том, что она позволяет получить практически всю информацию о каждом из устройств SCSI. А если вас интересует принцип работы данной утилиты, вам может быть полезна информация о том, что она осуществляет сканирование структуры дерева директорий файловой системы /sys (обратитесь к разделу «Самостоятельная работа с содержимым файловых систем /proc и /sys» для ознакомления с дополнительной информацией).
Давайте перейдем к рассмотрению других утилит. Утилита lsusb выводит информацию об устройствах, соединенных с компьютером посредством шины USB; пример вывода данной утилиты представлен в Листинге 2. (Альтернативой данной утилите является утилита usb-devices , которая выводит информацию об устройствах в более сложном формате и не поддерживает параметров конфигурации.) Если вы работаете с современным компьютером, у вас наверняка имеется множество устройств, подключенных к нему посредством рассматриваемой шины. В моем случае такими устройствами являются адаптер Bluetooth, веб-камера, клавиатура, мышь и некоторые другие. Вы можете получить информацию об определенных шине или устройстве с помощью параметра -s или выбрать устройства заданного производителя с помощью параметра -d ; если вы планируете использовать последний параметр, вам стоит ознакомиться с реестром идентификаторов устройств USB (ссылка на который приведена в разделе «Ресурсы»), содержащим все идентификаторы производителей и устройств с интерфейсом USB. Наконец, если вы желаете получить максимально подробную информацию обо всех используемых устройствах, вы можете воспользоваться параметром -v (verbose — подробный вывод), но сразу же приготовьтесь к продолжительному чтению. На моей машине в результате исполнения команды lsusb -v выводится более 1300 строк текста с информацией об устройствах.
Листинг 2. Утилита lsusb выводит информацию обо всех устройствах, подсоединенных к компьютеру посредством шины USB, в формате списка или дерева.
Другой утилитой, выводящей большой объем информации о подключенных к компьютеру устройствах, является утилита lspci , которая выводит всю информацию об используемых устройствах с интерфейсом PCI. И, фактически, это именно та утилита, которая помогла мне вспомнить модель установленной в компьютере видеокарты:
Попробуйте использовать параметры утилиты -v и -vv для получения подробного и очень подробного вывода соответственно. Для получения всей информации о моей (текущей) видеокарте я использовал команду, приведенную в Листинге 3. Изучив большой объем информации о параметрах устройства, несложно сделать вывод о том, что в данное время я использую видеокарту NVIDIA GeForce 740 с драйвером nouveau из состава ядра ОС. Разумеется, для полного понимания значения всех выведенных параметров устройства следует обладать опытом работы с PCI-устройствами. Попробуйте выполнить эту же команду, заменив параметр -v на параметр -vv и вы поймете, о чем я говорю.
Листинг 3. Параметр -v позволяет получить подробную информацию о заданном устройстве; параметр -vv позволяет увеличить объем выводимой информации.
Если вы неплохо разбираетесь в цифровой электронике, вы можете воспользоваться утилитой lsdev , которая выводит информацию об используемом аппаратном обеспечении вместе с номерами прерываний, номерами портов ввода-вывода, адресами в памяти и другими низкоуровневыми параметрами. Эта утилита не поддерживает параметров конфигурации и наверняка понадобится вам лишь в том случае, если вы будете работать непосредственно с аппаратным обеспечением компьютера. Сокращенный пример вывода рассматриваемой утилиты представлен в Листинге 4. Данная утилита читает содержимое файлов /proc/interrupts, /proc/ioports и /proc/dma таким образом, как описано в разделе «Самостоятельная работа с содержимым файловых систем /proc и /sys».
Листинг 4. Утилита lsdev выводит информацию о номерах прерываний, номерах портов ввода-вывода и адресах в памяти, используемых устройствами.
Наконец, если вы дочитали до этого абзаца, вам наверняка будет интересна утилита lshw , являющаяся универсальным инструментом, который способен предоставлять пользователю огромный объем информации обо всем используемом аппаратном обеспечении его компьютера. Параметр -short позволяет получить (в некоторой степени) сокращенный вариант списка аппаратного обеспечения компьютера (рассмотрите Листинг 5 и обратите внимание на интересные строки «To Be Filled By O.E.M.», которые обозначают, что сборщик моего компьютера не утруждал себя дополнительной работой по смене прошивки материнской платы). С помощью данной утилиты вы можете получить информацию о системе, шинах, памяти, процессоре, видеокарте, сетевом адаптере и любых других аппаратных устройствах.
Листинг 5. Утилита lshw выводит информацию обо всем используемом аппаратном обеспечении компьютера.
Обратите внимание на столбец «class» в Листинге 5. Благодаря наличию данного столбца вы можете получить полную информацию об устройстве определенного класса, использовав параметр -class . Например, ниже приведена подробная спецификация моей сетевой карты; в ней присутствует информация о производители и модели карты, а также большое количество других характеристик (примечание: вы получите аналогичный вывод лишь в том случае, если не будете использовать параметр -short ; при запуске утилиты lshw на моей машине без каких-либо параметров выводится более 500 строк текста):
Утилита lshw поддерживает и некоторые другие параметры конфигурации. Например, она может генерировать документы формата HTML или XML с информацией об используемом аппаратном обеспечении (для этого предназначены параметры -html и -xml соответственно); документ первого формата удобен для показа собранной информации в веб-браузере, второго формата — для сохранения или автоматизированной обработки собранной информации. На Рисунке 1 показан небольшой фрагмент сгенерированного документа с информацией обо всем аппаратном обеспечении моего компьютера. По соображениям безопасности утилита поддерживает параметр -santize , который позволяет удалить из генерируемого документа конфиденциальную информацию, такую, как серийные номера устройств. Утилита поддерживает даже параметр -X , позволяющий использовать графический интерфейс (о котором будет сказано позднее).
Рисунок 1. Утилита lshw может генерировать документы формата HTML или XML с информацией об аппаратном обеспечении; на рисунке показан документ первого формата, открытый с помощью веб-браузера.
На данный момент мы обсудили наиболее популярные утилиты из семейства ls и, хотя все они на самом деле и не принадлежат к одному «семейству», я считаю их очень полезными инструментами для администрирования системы. Их названия очень легко вспомнить, введя символы ls и воспользовавшись функцией автоматического дополнения команд командной оболочки. Однако, в вашем распоряжении имеются и другие механизмы получения информации об аппаратном обеспечении компьютера, поэтому давайте рассмотрим и их.
Что такое SMBIOS?
Но откуда Linux получает информацию об используемых устройствах? В 1995 году была разработана спецификация SMBIOS (System Management BIOS), описывающая методику доступа к данной информации, которая упразднила необходимость в осуществлении потенциально ошибочных операций, направленных на идентификацию различных устройств. Этот стандарт (используемый при реализации интерфейса DMI) был использован при разработке всех систем на основе 32-битных и 64-битных центральных процессоров производства компании Intel и совместимых центральных процессоров других производителей. На самом деле, в упомянутой спецификации описывается структура данных для хранения информации об устройствах всех типов, таких, как центральный процессор, оперативная память, системные слоты и других. В принципе, вы можете разобрать и декодировать эту таблицу самостоятельно, но некоторые из описанных выше утилит отлично справляются с данной задачей. Если же вас интересуют все аспекты упомянутого стандарта, вы можете перейти по соответствующим ссылкам из раздела «Ресурсы».
Дополнительные утилиты с интерфейсом командной строки
Давайте начнем с рассмотрения некоторых утилит общего назначения. Первой такой утилитой является утилита dmidecode , которая позволяет получить и декодировать содержимое таблицы DMI (или SMBIOS) компьютера и вывести его в читаемом человеком формате. В том случае, если соответствующая таблица обнаруживается, содержащиеся в ней записи последовательно выводятся в аналогичном формате:
Если вы не желаете просматривать содержимое всей таблицы (несколько сотен строк текста на моем компьютере), вы можете сообщить утилите о необходимости вывода лишь записей определенного типа, в соответствии с таблицей типов записей SMBIOS (обратитесь к Таблице 2).
Таблица 2. В рамках SMBIOS выделяются различные типы записей, которые вы можете использовать при работе с утилитой dmidecode.
Тип | Описание |
---|---|
0 | Информация о BIOS |
1 | Информация о системе |
2 | Информация о материнской плате |
3 | Информация о корпусе |
4 | Информация о центральном процессоре |
5 | Информация о контроллере памяти |
6 | Информация о модуле памяти |
7 | Информация о кэше |
8 | Информация о коннекторе порта |
9 | Информация о системных слотах |
10 | Информация о интегрированных устройствах материнской платы |
11 | Строки производителя |
12 | Параметры конфигурации системы |
13 | Информация о языке BIOS |
14 | Ассоциации групп |
15 | Системный журнал событий |
16 | Информация о массиве физической памяти |
17 | Информация о запоминающем устройстве |
18 | Информация об ошибке доступа к памяти в 32-битном режиме |
19 | Информация об адресе отображения массива памяти |
20 | Информация об адресе отображения запоминающего устройства |
21 | Информация о встроенном манипуляторе |
22 | Информация о батарее устройства |
23 | Информация о кнопке сброса |
24 | Информация о функциях безопасности аппаратного обеспечения |
25 | Информация о функциях управления электропитанием системы |
26 | Информация об устройстве для измерения напряжения |
27 | Информация об охлаждающем устройстве |
28 | Информация об устройстве для измерения температуры |
29 | Информация об устройстве для измерения тока |
30 | Информация о внеполосных данных удаленного администрирования |
31 | Информация о механизме обеспечения безопасности загрузки системы |
32 | Информация о загрузке системы |
33 | Информация об ошибке доступа к памяти в 64-битном режиме |
34 | Информация об управляющем устройстве |
35 | Информация о компоненте управляющего устройства |
36 | Информация граничных условиях работы с управляющим устройством |
37 | Информация о канале доступа к памяти |
38 | Информация об устройстве IPMI |
39 | Информация о блоке питания |
40 | Дополнительная информация |
41 | Расширенная информация об интегрированных устройствах материнской платы |
42 | Информация об интерфейсе контроллера управления |
126 | Деактивированный элемент |
127 | Специальный маркер окончания таблицы |
128-255 | Данные, специфичные для производителя |
Существуют и специальные ключевые слова, соответствующие сразу нескольким типам записей (обратитесь к Таблице 3).
Таблица 3. Вы также можете использовать специальные ключевые слова для получения соответствующей информации из таблицы SMBIOS.
Ключевое слово SMBIOS | Типы SMBIOS |
---|---|
bios | 0, 13 |
system | 1, 12, 15, 23, 32 |
baseboard | 2, 10, 41 |
chasis | 3 |
processor | 4 |
memory | 5, 6, 16, 17 |
cache | 7 |
connector | 8 |
slot | 9 |
Если бы существовала награда «Утилита с самым подробным выводом», она, без сомнения, была бы присуждена утилите hwinfo , которая, как и одна из рассмотренных ранее утилит, может осуществлять вывод информации обо всем аппаратном обеспечении вашего компьютера. На моей машине после запуска утилиты hwinfo без каких-либо параметров было сгенерировано около 12000 строк текста, включающих несколько дампов таблицы SMBIOS. Вы же можете получить более компактный вывод, воспользовавшись параметром —short (Листинг 6).
Листинг 6. Утилита hwinfo может генерировать очень подробный вывод; в случае использования параметра —short объем выводимого текста резко сокращается.
Вы можете сообщить утилите hwinfo о необходимости вывода информации лишь об определенном типе аппаратного обеспечения с помощью таких параметров, как —monitor или —printer . Для получения полного списка поддерживаемых параметров следует выполнить команду hwinfo —help . Например, я могу получить информацию об устройстве для чтения оптических дисков с помощью команды hwinfo —cdrom (Листинг 7). Параметр —listmd позволяет включить в вывод информацию об устройствах RAID, которые игнорируются по умолчанию.
Листинг 7. Утилита hwinfo может выводить информацию лишь об устройствах определенных типов, таких, как устройство для чтения оптических дисков.
Самой выразительной в плане расцветки вывода утилитой с интерфейсом командной строки из всех рассмотренных в данной статье по праву может считаться утилита inxi (Рисунок 2).
Рисунок 2. Утилита inxi — скорее всего, единственная утилита с интерфейсом командной строки, использующая несколько цветов для выделения важных фрагментов вывода.
При запуске без каких-либо параметров она выводит лишь строку с информацией об используемом центральном процессоре, ядре ОС, времени работы системы и некоторых других параметрах системы, аналогичную следующей:
Однако, вы можете использовать большое количество параметров для получения интересующей вас информации. Например, вы можете повлиять на подробность вывода с помощью одного из параметров из диапазона от -v0 (минимально подробный вывод) до -v7 (максимально подробный вывод). Параметр -x позволяет включать в вывод дополнительную информацию о некотором аппаратном обеспечении. Выполните команду inxi -h для ознакомления со списком всех поддерживаемых утилитой параметров. К примеру, вы можете получить информацию о звуковой карте с помощью команды inxi -A , о видеокарте — с помощью команды inxi -G и так далее:
А теперь давайте закончим статью, рассмотрев несколько утилит с графическим интерфейсом.
Утилиты с графическим интерфейсом
Начнем с утилиты usbview , которая является графическим эквивалентом таких описанных ранее утилит, как lsusb и usb-devices . Она очень проста в использовании, не позволяет изменить какие-либо системные настройки и не поддерживает каких-либо параметров. Окно утилиты разделено на две части: в левой части окна расположен древовидный список со всеми доступными устройствами с интерфейсом USB, в правой — текстовое поле, в котором выводится информация о выбранном устройстве. На Рисунке 3 представлен снимок окна утилиты, в котором выводится информация о моей клавиатуре с интерфейсом USB.
Рисунок 3. Утилита usbview выводит информацию обо всех устройствах с интерфейсом USB в формате древовидного списка.
Перейдем к ранее описанной утилите, которая помимо интерфейса командной строки позволяет использовать графический интерфейс: lshw с параметром -X . При использовании параметра -X данная утилита вместо вывода листинга (приведенного выше) отображает графический интерфейс с несколькими списками для выбора устройства в левой части. В правой части расположено текстовое поле, в котором выводится информация о выбранном устройстве. На Рисунке 4 показан результат анализа параметров моего привода для чтения и записи оптических дисков DVD; в текстовом поле выводится дополнительная информация о параметрах устройства, таких, как имя логического устройства, список его возможностей и другие данные.
Рисунок 4. В случае запуска утилиты lshw с параметром -X, она будет осуществлять взаимодействие с пользователем посредством графического интерфейса, позволяющего получить информацию обо всех устройствах системы.
Еще одной интересной утилитой с графическим интерфейсом является утилита hardinfo , которая, в соответствии с описанием на странице репозитория исходного кода на ресурсе GitHub (обратитесь к разделу «Ресурсы», если вам нужна ссылка), «не мертва, но требует сопровождения». В левой части окна этой утилиты расположен древовидный список с четырьмя основными разделами:
- Раздел «Компьютер» содержит большой объем информации о вашей машине: в нем выводится информация как об аппаратном, так и о программном обеспечении.
- Раздел «Устройства» содержит информацию обо всех устройствах вашего компьютера, причем каждому типу устройств соответствует отдельная категория.
- Раздел «Сеть» содержит информацию не только о сетевых картах, но и о некоторых структурах данных, необходимых для корректной работы сети, таких, как список серверов DNS или таблица маршрутизации.
- Раздел «Тесты» позволяет сравнить производительность вашей машины с производительностью других компьютеров, но из-за долгого отсутствия обновлений утилиты имеется возможность сравнения производительности лишь с производительностью компьютеров с устаревшими центральными процессорами.
На Рисунке 5 представлен снимок окна утилиты.
Рисунок 5. Утилита hardinfo предоставляет дополнительные данные, не всегда относящиеся к аппаратному обеспечению компьютера.
В рассматриваемой утилите реализованы и другие функции. Пункт меню «Информация» позволяет выбрать интересующие вас параметры системы и сгенерировать отчет в формате HTML или в обычном текстовом формате. Пункт меню «Обновление через сеть. » предназначен для обновления данных утилиты, включающих результаты тестирования новых компьютеров, но в моем случае при его активации постоянно выводится сообщение об ошибке «Подключение к центральной базе данных Hardinfo (ошибка)».
Давайте закончим обзор утилит с графическим интерфейсом, предназначенных для получения информации об аппаратном обеспечении компьютера, рассмотрением утилиты из состава окружения рабочего стола KDE под названием kinfocenter . Эта утилита очень похожа на описанные выше утилиты (на Рисунке 6 представлен снимок ее окна с информацией об использовании оперативной памяти), поэтому, по аналогии с другими утилитами, в левой части ее окна содержится древовидный список с категориями параметров системы, а в правой части — поле для вывода информации о выбранном параметре системы.
Рисунок 6. Утилита kinfocenter из состава окружения рабочего стола KDE выводит информацию не только об аппаратном обеспечении, но и о множестве параметров системы.
Данная утилита, помимо вывода информации об аппаратном обеспечении компьютера, также выводит дополнительную информацию о состоянии компонентов системы, такую, как «Статус сервера Samba», «Информация об энергопотреблении» или «Статус X-Сервера».
Самостоятельная работа с содержимым файловых систем /proc и /sys
Файловая система Linux содержит большое количество различных директорий и файлов, но директории /proc и /sys являются особенными. На самом деле их не существует на жестком диске, но в то же время вы имеете возможность просматривать их содержимое без каких-либо сложностей. Они содержат множество на первый взгляд пустых файлов, но вы можете открыть каждый из этих файлов и просмотреть его содержимое. Директория /proc появилась перед директорией /sys и в данное время содержит всю информацию об исполняющихся процессах (отсюда и имя /proc). Со временем в нее было добавлено большое количество файлов, подавляющая часть которых являлась «виртуальными» файлами, отсутствующими на жестком диске и создающимися в процессе открытия. (Большинство виртуальных файлов содержит текущую метку времени, которая указывает на то, что их содержимое постоянно обновляется и поддерживается в актуальном состоянии.) Директория /sys является более современной разработкой. Она была введена в строй в момент выпуска первой версии ядра Linux ветки 2.6 с целью лучшего структурирования данных, которые ранее размещались в директории /proc, разросшейся до невероятных размеров. Многие файлы (но не все) из директории /proc дублируются в директории /sys и, если это возможно, вы должны отдавать предпочтение файлам из последней. Директория /sys содержит несколько поддиректорий:
- Директория block/ является отправной точкой для получения параметров каждого из блочных устройств.
- Директория bus/ содержит директории, соответствующие каждому из типов шин, которые, в свою очередь, содержат по две поддиректории: devices/ и drivers/. Первая содержит директорию с параметрами каждого из устройств со ссылкой на файл устройства, а вторая — директорию с параметрами каждого драйвера, который был загружен для работы с устройством на данной шине.
- Директория class/ содержит директории, соответствующие каждому из типов объектов; примерами таких директорий являются block/, graphics/, net/, sound/ и другие.
- Директория dev/ содержит директории, соответствующие каждому из типов устройств (например, dev/block/ и dev/char/), каждая из которых содержит директорию с параметрами соответствующего устройства.
- Директория devices/ содержит структуру директорий, сформированную в соответствии с глобальной иерархической структурой устройств вашей системы.
- Директория firmware/ содержит директории объектов, специфичных для микропрограмм; например, acpi/ или memmap/, причем директории на вашем компьютере будут зависеть от используемых на уровне ядра ОС микропрограмм.
- Директория fs/ содержит директории, соответствующие всем поддерживаемым типам файловых систем на вашей машине, причем каждая из этих директорий, в свою очередь, содержит директории, соответствующие каждому из устройств с той или иной файловой системой; например, у меня в системе имеется директория /sys/fs/ext4/sda2, так как на разделе диска, представленном файлом устройства /dev/sda2, используется файловая система ext4.
- Директория kernel/ содержит несколько файлов, связанных с используемым в данный момент ядром ОС.
- Директория module/ содержит поддиректории, соответствующие каждому из модулей, загруженных ядром ОС.
- Директория power/ представляет подсистему управления электропитанием.
При перемещении на глубинные уровни каждой из ветвей описанной файловой системы вы наверняка обнаружите большое количество отдельных файлов, в которых содержатся доступные для чтения значения различных атрибутов заданного объекта. Что это за файлы? Ну, это сложный вопрос, так как список файлов и содержимое каждого из них зависят от посещаемой вами ветви файловой системы, поэтому вам придется проделать небольшую работу для того, чтобы получить информацию о том или ином устройстве из файлов файловой системы /sys. (В разделе «Ресурсы» вы можете найти ссылки на спецификации данной файловой системы.) Также помните о том, что вы можете записывать данные в некоторые из этих файлов, причем в результате будут изменяться значения соответствующих параметров того или иного устройства — делайте это с особой осторожностью! Однако, в том случае, если вы в конце концов разберетесь со структурой данной файловой системы, вы сможете дублировать в рамках своих приложений функции большинства описанных в статье утилит, работающих именно с ней.
Заключение
Я описал большое количество утилит, позволяющих взаимодействовать с ядром ОС Linux с целью получения некоторого объема информации обо всех используемых устройствах. При этом в случае необходимости вы можете получить данную информацию и самостоятельно, создав собственный инструмент для исследования аппаратного обеспечения.
Источник