Чем отличается uname a от uname
Перейти к содержимому

Чем отличается uname a от uname

  • автор:

UNAME Структура

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

Microsoft.VisualBasic.Compatibility.* classes are obsolete and supported within 32 bit processes only. http://go.microsoft.com/fwlink/?linkid=160862

Предоставляет Structure , отражающую указатель на свойство Name в приложении, обновленном с Visual Basic 6.0.

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

public value class UNAME
[System.Runtime.InteropServices.ComVisible(false)] public struct UNAME
[System.Runtime.InteropServices.ComVisible(false)] [System.Obsolete("Microsoft.VisualBasic.Compatibility.* classes are obsolete and supported within 32 bit processes only. http://go.microsoft.com/fwlink/?linkid=160862")] public struct UNAME
[] type UNAME = struct
[] [] type UNAME = struct
Public Structure UNAME

Наследование

Комментарии

Функции и объекты пространства имен Microsoft.VisualBasic.Compatibility.VB6 используются в средствах, предназначенных для обновления версии Visual Basic 6.0 до Visual Basic. В большинстве случаев эти функции и объекты дублируют функциональные возможности, реализованные в других пространствах имен в .NET Framework. Они необходимы только в том случае, если модель кода Visual Basic 6.0 значительно отличается от реализации .NET Framework.

Поля

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Является устаревшей.

Содержит указатель IntPtr для внутренней структуры UNAME.

Команда Linux uname

В Linux команда uname используется для печати базовой системной информации. Обычно она вызывается с опцией -a для отображения всей доступной информации.

Использование команды Linux uname с примерами

Содержание

  • Синтаксис
  • Опции
  • Примеры использования команды uname в Linux
    • Использование с опцией -a
    • Использование с определённой опцией
    • Комбинирование опций

    Синтаксис

    uname [ПАРАМЕТР]

    Опции

    -a, —all Вывести всю информацию -s, —kernel-name Вывести имя ядра -n, —nodename Вывести имя машины в сети (имя хоста) -r, —kernel-release Вывести информацию о выпуске ядра -v, —kernel-version Вывести версию ядра -m, —machine Вывести тип оборудования машины -p, —processor Вывести тип процессора -i, —hardware-platform Вывести тип аппаратной платформы -o, —operating-system Вывести название операционной системы

    При вызове без каких-либо параметров uname выведет имя ядра, как если бы был указан параметр -s .

    Примеры использования команды uname в Linux

    Использование с опцией -a

    Обычно команда используется с опцией -a для вывода всей доступной информации:

    oleg@mobile:~:$ uname -a Linux mobile 5.18.14-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 23 Jul 2022 11:46:17 +0000 x86_64 GNU/Linux oleg@mobile:~:$ 

    Вывод включает в себя следующую информацию:

    Linux Имя ядра moble Имя хоста 5.18.14-arch1-1 Выпуск ядра #1 SMP PREEMPT_DYNAMIC Sat, 23 Jul 2022 11:46:17 +0000 Версия ядра x86_64 Имя аппаратного обеспечения машины GNU/Linux Название операционной системы

    Использование с определённой опцией

    Информация, отображаемая командой uname с опцией -a некоторым может быть трудна для чтения. В этом случае можно использовать лишь конкретные необходимые вам опции.

    Например, если вам нужна конкретная информация о ядре вашей системы, например номер версии ядра, используйте uname с опцией -r :

    oleg@mobile:~:$ uname -r 5.18.14-arch1-1 oleg@mobile:~:$ 

    Комбинирование опций

    Опции можно комбинировать друг с другом для получения желаемого результата. Чтобы узнать, например, какая версия ядра Linux работает в вашей системе, используйте следующие опции -s , -r , -m :

    oleg@mobile:~:$ uname -srm Linux 5.18.14-arch1-1 x86_64 oleg@mobile:~:$ 

    При использовании нескольких параметров информация, содержащаяся в выводе, находится в том же порядке, что и при использовании параметра -a . Положение заданных опций не имеет значения.

    Выводы

    Команда uname в Linux очень эффективна и позволяет получить всю возможную информацию об операционной системе, оборудовании, ядре и процессоре. Чтобы выяснить, почему часть программного обеспечения не работает должным образом, вам необходимо знать версию ядра, операционную систему и основные сведения об оборудовании. Следовательно, уметь работать с этой утилитой необходимо.

    Чем отличается uname a от uname

    Вы можете получить исходные тексты с помощью анонимного ftp с ftp.funet.fi в директории /pub/Linux/PEOPLE/Linus , с его зеркала, или с другого сервера. Они обычно обозначены как linux-x.y.z.tar.gz , где x.y.z номер версии. Более новые (лучшие?) версии и заплатки (patches) обычно находятся в поддиректориях, таких как ` v1.1 ‘ и ` v1.2 ‘. Самый большой номер имеет последняя версия и обычно является «тестовой версией», это значит, что если вы нелегко плохо чувствуете себя с альфа или бета версиями, то вы должны использовать стабильную версию.

    Я настоятельно рекомендую вам использовать сервера-зеркала вместо использования ftp.funet.fi. Здесь приведен короткий список серверов-зеркал и других серверов:

    USA: sunsite.unc.edu:/pub/Linux/kernel USA: tsx-11.mit.edu:/pub/linux/sources/system UK: sunsite.doc.ic.ac.uk:/pub/unix/Linux/sunsite.unc-mirror/kernel Austria: ftp.univie.ac.at:/systems/linux/sunsite/kernel Germany: ftp.Germany.EU.net:/pub/os/Linux/Local.EUnet/Kernel/Linus Germany: sunsite.informatik.rwth-aachen.de:/pub/Linux/PEOPLE/Linus France: ftp.ibp.fr:/pub/linux/sources/system/patches Australia: sunsite.anu.edu.au:/pub/linux/kernel

    В общем зеркало сервера sunsite.unc.edu является хорошим местом, где можно взять исходные тексты ядра. Файл /pub/Linux/MIRRORS содержит список известных серверов-зеркал. Если у вас нет доступа к ftp, то список систем BBS, которые распространяют linux периодически посылается в группу comp.os.linux.announce; постарайтесь получить его.

    Если вы ищете общую информацию о Linux и его дистрибутивах, то посмотрите на http://www.linux.org .

    Войдите в систему как администратор или выполните команду su , и перейдите в директорию /usr/src .Если вы устанавливали исходные тексты ядра при установке linux (как делает большинство), то том у вас уже есть директория названная ` linux ‘, которая содержит полное дерево устаревших исходных текстов. Если у вас есть свободное дисковое пространство, то вы можете сохранить эту директорию. Хорошая идея&nbsp— определить какая версия ядра запущена и соответственно переименовать директорию. Команда ` uname -r ‘ выдает номер текущей версии ядра. Поэтому, если команда ` uname -r ‘ выдала ` 1.0.9 ‘, то вы должны переименовать (с помощью ` mv ‘) ` linux ‘ в ` linux-1.0.9 ‘. Если вы не чувствуете, что поступаете опрометчиво, то просто сотрите всю директорию. В любом случае убедитесь, что никакой директории ` linux ‘ в /usr/src до распаковки полного исходного кода ядра.

    Теперь распакуйте в /usr/src исходные тексты, пользуясь командой ` tar zxpvf linux-x.y.z.tar.gz ‘ (если вы получили просто файл .tar без расширения .gz на конце, то работает команда ` tar xpvf linux-x.y.z.tar ‘). Содержимое архива будет распаковано. После окончания процесса, будет существовать новая директория ` linux ‘ в /usr/src . Перейдите linux и посмотрите файл README . Там будет раздел с заголовком ` INSTALLING the kernel (Установка ядра) ‘. Выполните соответствующие инструкции&nbsp— символические ссылки должны быть на своем месте, удалите старые .o файлы, и т.п.

    Замечание : Некоторое из этого являются повторенниями/пояснениями подобного раздела файла README поставляемого Linus.

    Команда ` make config ‘ выполненная в /usr/src/linux запускает скрипт настройки, которая задает вам много вопросов. Она требует наличия bash, так что проверьте что bash находятся в /bin/bash , /bin/sh , или $BASH .

    Существуют некоторые альтернативы команде ` make config ‘ и вы можете найти их более удобными и легкими для использования. Те, кто работает в X могут попробовать ` make xconfig ‘, если у вас установлен Tk (`click-o-rama’ — Nat). ` make menuconfig ‘&nbsp— это для тех, у кого установлен (n)curses и предпочитает текстовые меню. Эти интерфейсы имеют одно явное преимущество: если вы сделали неправильный выбор в течении настройки, то очень легко вернуться и исправить ее.

    Теперь вы готовы отвечать на вопросы, обычно ответы выглядят как ` y ‘ (да) или ` n ‘ (нет). Драйвера устройств обычно имеют опцию ` m ‘. Это означает «module (модуль)», обозначая, что система будет компилировать этот драйвер, но не вставит его прямо в ядро, а сделает загружаемым модулем. Более комично эта опция описывается как «maybe (может быть)». Некоторые более ясные и некритичные опции здесь не описаны; смотрите раздел «Другие опции настройки» для их краткого описания.

    В версиях 2.0.x и более поздних, существует опция `?’, которая обеспечивает краткое описание параметра настройки. Эта информация скорее всего наиболее свежая.

    Эмуляция математических функций ядром

    Если у вас нет математического сопроцессора (у вас голый 386 или 486SX), то вы должны ответить ` y ‘ на этот вопрос. Если у вас есть сопроцессор и вы все равно ответили ` y ‘, то не беспокойтесь&nbsp— сопроцессор все рано будет использоваться, а эмуляция будет проигнорирована. Единственное следствие этого в том, что ядро будет больше (расход ОЗУ). Я упоминал о том, что эмуляция очень медлена; хотя это не очень часто влияет, но все равно вспомните это, если столкнетесь с малой производительностью системы X-windos.

    Поддержка обычных (MFM/RLL) дисков и дисков/cdrom IDE

    Вам вероятно необходима эта поддержка; это означает, что ядро будет поддерживать стандартные жесткие диски PC, которые имеет большинство людей. Этот драйвер не включает поддержку SCSI дисков; их выбор идет далее в настройке.

    Затем у вас спросят о драйверах «old disk-only (только старых дисков)» и «new IDE (новых IDE)». Вы захотите выбрать один из них; основное отличие в том, что старые диски поддерживают только два диска на одном интерфейсе, а новые поддерживают вторичный (secondary) интерфейс и накопители IDE/ATAPI cdrom. Новый драйвер на 4k больше старого и также предположительно «улучшен», убирая некоторое количество ошибок, он может улучшить производительность вашего диска, особенно если у вас новое оборудование (типа EIDE).

    Поддержка сети

    В принципе вы должны ответить ` y ‘, если ваша машина подключена к сети, такой как internet, или вы хотите использовать SLIP, PPP, term и т.п. для dial up доступа к internet. Однако много пакетов (таких как оконная система X) требует поддержку сети, даже если вы не подключены ни к какой сети, вы должны сказать ` y ‘. Позже у вас спросят, хотите ли вы поддержку TCP/IP; далее скажите ` y ‘, если вы абсолютно уверены в своем выборе.

    Ограничить память до менее 16MB

    Существуют работающие с ошибками контролеры DMA на машинах с процессором 386, которые имеют проблемы с адресацией больше 16 Мб ОЗУ; вы можете ответить ` y ‘ в случае (редком) если у вас такой контроллер.

    System V IPC

    Одно из лучших определений IPC (Interprocess Communication, Межпроцессного сообщения) данов в глоссарии книги по Perl. Не удивительно, что некоторые программисты на Perl используют этот механизм чтобы позволить процессу общаться с другими процессами, так же как и другие пакеты (самый заметный из них это DOOM), так что ответ n не является хорошей идеей, пока вы не будете точно уверены в том, что вы делаете.

    Тип процессора (386, 486, Pentium, PPro)

    (в старых ядрах: используйте флаг -m486 для оптимизации для процессора 486)

    Традиционно, это делает некоторую оптимизацию для выбранного процессора; ядра работают быстрее, но ядро может быть несколько больше. В новых ядрах, это однако больше не является правдой, так что вы должны ввести процессор для которого вы компилируете ядро. Ядро для «386» будет работать на всех машинах.

    Поддержка SCSI

    Если у вас есть устройства SCSI, то ответьте ` y ‘. У вас запросят дополнительную информацию, такую как поддержку CD-ROM, дисков, и какой тип адаптера SCSI у вас имеется. Смотрите SCSI-HOWTO для дополнительной информации.

    Поддержка сетевых устройств

    Если у вас есть сетевая карта, или вы хотите использовать SLIP, PPP, или адаптер параллельного порта для подключения к Internet, то ответьте ` y ‘. Скрипт настройки запросит у вас тип карты и какие протоколы вы хотите использовать.

    Файловые системы

    Затем настроечный скрипт запросит у вас поддержку для каких файловых систем вы хотите иметь в своей системе:

    Стандартная (minix) — Более новые дистрибутивы не создают файловые системы minix, и много людей не используют ее, но все равно хорошая идея настроить ее. Некоторые программы с «дисками для восстановления (rescue disk)» используют ее и все еще много гибких дисков могут использовать файловую систему minix, поскольку файловая система minix менее мучительная для использования на гибких дисках.

    Extended fs — это была первая версия расширенной файловой системы, которая сейчас не является широко используемой. Если вы не знаете точно, что она вам нужна и сомневаетесь, то скорее всего она вам не нужна.

    Second extended — эта файловая система широко используется в новых дистрибутивах. У вас скорее всего она есть и вам нужно ответить ` y ‘.

    файловая система xiafs — одно время она не была необычно, но во время написания этого документа я не знал никого использующего эту файловую систему.

    msdos — если вы хотите использовать разделы вашего жесткого диска с MS-DOS, или монтировать гибкие диски, отформатированные под MS-DOS, то ответьте ` y ‘.

    umsdos — эта файловая система расширяет возможности файловой системы MS-DOS обычными Unix-подобными возможностями, такими как длинные имена. Это не является полезным для людей (таких как я), кто «не работает в DOS.»

    /proc — одна из величайших вещей со времен изобретения порошкового молока (я так предполагаю, идея была бесстыдно украдена у Bell Labs). Она не создает файловую систему proc на диске; она является интерфейсом в виде файловой системы к ядру и процессам. Много программ, выдающих список процессов (таких как ` ps ‘) используют ее. Как нибудь попробуйте выполнить ` cat /proc/meminfo ‘ или ` cat /proc/devices ‘. Некоторые командные процессоры (в частности rc) используют /proc/self/fd (известный как /dev/fd в других системах) для ввода/вывода. Вы должны почти всегда ответить ` y ‘ на этот вопрос; много важных утилит для linux зависят от этого выбора.

    NFS — если ваша машина работает в сети и вы хотите использовать файловые системы находящиеся на других машинах с помощью NFS, то ответьте ` y ‘.

    ISO9660 — имеется на большинстве CD-ROM. Если у вас есть привод CD-ROM и вы хотите использовать его в Linux, то ответьте ` y ‘.

    OS/2 HPFS — во время написания работает как файловая система только для чтения для OS/2 HPFS.

    System V и Coherent — для разделов машин с System V и Coherent (это другие варианты Unix для PC).

    Но я не знаю какие файловые системы мне нужны!

    Хорошо, наберите команду ` mount ‘. Ее вывод будет выглядеть примерно так:

    blah# mount /dev/hda1 on / type ext2 (defaults) /dev/hda3 on /usr type ext2 (defaults) none on /proc type proc (defaults) /dev/fd0 on /mnt type msdos (defaults)

    Посмотрите на каждую строку; слово идущее за словом ` type (тип) ‘ является типом файловой системы. В моем примере мои файловые системы / и /usr являются файловыми системами типа second extended, я использую /proc , и есть гибкий диск смонтированный используя файловую систему msdos.

    Вы можете попробовать выполнить ` cat /proc/filesystems ‘, если у вас в настоящее время разрешено использование /proc ; эта команда перечислит файловые системы, поддержку которых имеет ваше ядро.

    Настройка редко используемых, не критических файловых систем может вызвать раздувание вашего ядра; смотрите раздел о модулях чтобы избежать этого и раздел «Ловушки» о том, почему раздувшееся ядро является нежелательным.

    Символьные устройства

    В этом разделе вы выбираете драйвера для вашего принтера (параллельного принтера), шинной мыши, мыши для PS/2 (многие notebook используют протокол мыши PS/2 для своих встроенных трекболов), некоторые ленточные накопители и другие такие же «символьные» устройства. Ответьте ` y ‘ где необходимо.

    Замечание: Selection это программа, которая позволяет вам использовать мышь вне системы X window для вырезания и вставки между виртуальными консолями. Она работает довольно хорошо, если у вас мышь для последовательного порта, потому-что она хорошо работает с X, но вам необходимо выполнить некоторые действия, для того чтобы работали другие типы мышей. Поддержка Selection одно время была опцией настройки, но сейчас она является стандартом.

    Замечание 2: Сейчас Selection считается устаревшей. Имя новой программы «gpm». Она может делать более фантастические вещи, такие как трансляцию протокола мыши, работать с несколькими мышами, ..

    Звуковые карты

    если вы чувствуете огромное желание слышать рявканье biff , то ответьте ` y ‘, и далее другая программа настройки будет скомпилирована и будет задавать вам вопросы о вашей звуковой карте. (Примечание о настройке звуковой карты: когда программа спросит у вас устанавливать ли полную версию драйвера, то ответьте ` n ‘ и сохраните некоторое количество памяти в ядре выбором только необходимых возможностей драйвера). Я сильно рекомендую вам посмотреть в Sound-HOWTO для более детальной информации о поддержке звука, если у вас есть звуковая карта.

    Другие опции настройки

    Не все опции настройки перечислены здесь потому-что они слишком часто меняются или являются очевидными (например, поддержка 3Com 3C509 для компиляции драйвера для данной карты ethernet). Существует довольно полный список всех опций (плюс способ поместить их в скрипт Configure ), который собран Axel Boldt ( axel@uni-paderborn.de ) по следующему адресу:

    http://math-www.uni-paderborn.de/~axel/config_help.html

    или через анонимный FTP по адресу:

    ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz

    где x.yz это номер версии.

    Для последних ядер (2.0.x и более поздних), этот список был интегрирован в дерево исходных текстов.

    Работа над ядром (Kernel hacking)

    Из Linus README:

    действие опции настройки «kernel hacking» обычно проявляется в более большом или медленном ядре (или оба симптома), и может даже сделать ядро менее стабильным из-за настройки некоторых подпрограмм на попытку активно сломать плохой код, чтобы найти проблемы с ядром (kmalloc()). Таким образом вам скорее всего надо ответить `n’ на этот вопрос для «production» ядер.

    После того как make config выдаст сообщение о том, что ваше ядро было настроено, вы можете «проверить (настроить) основной Makefile для дополнительных настроек», и т.п.

    Теперь вы можете посмотреть в Makefile . Вам вероятно не понадобится изменять его, но вы не повредите его если посмотрите. Вы можете также изменить опции в нем с помощью команды ` rdev ‘ после того как поместите ядро на его место.

    Чем отличается uname a от uname

    Размеры массивов в struct utsname не определены (см. ЗАМЕЧАНИЯ); поля завершаются байтом с null (‘\0’).

    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

    При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.

    ОШИБКИ

    EFAULT Значение buf не определено.

    СООТВЕТСТВИЕ СТАНДАРТАМ

    POSIX.1-2001, POSIX.1-2008, SVr4. Вызов uname() отсутствует в 4.3BSD. Поле domainname (доменное имя NIS или YP) является расширением GNU.

    ЗАМЕЧАНИЯ

    Это системный вызов, и операционная система, предположительно, знает своё имя, номер выпуска и версию. Она также знает, на каком аппаратном обеспечении она работает. Таким образом, четыре поля структуры несут полезную информацию. С другой стороны, поле nodename её не несет: оно указывает имя машины в некой неопределённой сети, но обычно машины находятся в более чем одной сети и имеют несколько имён. Более того, ядро не может каким-либо образом получить информацию о таких вещах, поэтому ему необходимо сообщить что же возвращать в этом поле. То же относится и к дополнительному полю domainname. С этой целью в Linux используются системные вызовы sethostname(2) и setdomainname(2). Обратите внимание, что хотя не существует стандарта, который бы указывал, что имя машины, установленное sethostname(2), является той же строкой, что возвращается в поле nodename при вызове uname(), для Linux это именно так (в действительности некоторые системы позволяют 256-символьное имя машины и 8-символьное имя узла). То же относится и к setdomainname(2) и полю domainname. Длина полей в структуре может быть различна. Некоторые операционные системы или библиотеки используют жёстко заданные значения 9, 33, 65 или 257. Другие используют константы SYS_NMLN, _SYS_NMLN, UTSLEN и _UTSNAME_LENGTH. Несомненно, идея использовать эти константы не очень хороша — можно просто использовать sizeof(. ). Часто выбирается 257 для того, чтобы имелось достаточно места для хранения имени машины в сети интернет. Часть информации из структуры utsname может быть получена также через /proc/sys/kernel/ ostype, hostname, osrelease, version, domainname>.

    Отличия между библиотекой C и ядром

    Со временем, увеличение размера структуры utsname последовательно привело к трём версиям uname(): sys_olduname() (слот __NR_oldolduname), sys_uname() (слот __NR_olduname) и sys_newuname() (слот __NR_uname). В первой длина каждого поля равна 9; во второй 65; в третьей также 65, но добавилось поле domainname. Обёрточная функция uname() в glibc скрывает эти подробности от приложений, вызывая самую новую версию системного вызова, предоставляемого ядром.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *