LINUX.ORG.RU

Получение информации о компьютере с помощью API ядра Linux и языка Си

 ,


0

1

В ОС Windows информацию по АО и самой ОС можно получить в реестре, к примеру, используя WinAPI и язык Си.
Есть ли в ядре Linux, API функции для вывода примерно следующего:
- дата биос'а;
- дата видеокарты;
- производитель процессора;
- объем физической памяти;
- имя компьютера и пользователя;

Ответ на: комментарий от MKuznetsov

Неплохо. Скоро будет systemd-snmpd-withd-kittiesd-undd-Schmetterlingd, вот тогда заживём!

nanoolinux ★★★★
()

И никто не предложил брать имя юзера и компьютера из переменных окружения?

loz ★★★★★
()
Ответ на: комментарий от loz

А как на счёт интерфейса Desktop Management Interface? Сегодня наткнулся.
Каким образом ещё можно получить дату bios'а? Придется программу Dmidecode разобрать по кусочкам

TRomario
() автор топика
Ответ на: комментарий от TRomario

Каким образом ещё можно получить дату bios'а?

Это зависит от специфики твоего дистрибутива. Например, можно опрашивать мнение пользователей о дате Биоса при логине, и при наборе значимой выборки показаний от интерактивных пользователей, считать действительной дату, за которую высказалось набольшее их число. Такой подход наилучшим образом отвечает конституции Дебиана, не веришь - спроси у Joey Hess'a.

anonymous
()

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

gh0stwizard ★★★★★
()
Ответ на: комментарий от MKuznetsov

Агрегатор snmp можешь посоветовать? или как правильно назвать. Что бы выводился список доступных на указанном хосте snmp-данных и запрашивал указанные данные. Хостов несколько, они заранее неизвестны, типа приходишь с ноутом в неизвестную серверную и хочешь побыстрому собрать инфу о свичах, серваках и т.п. Спасибо.

Deleted
()
Ответ на: комментарий от Eddy_Em

согласен, не нужны, но получить можно,

igor@sia:(~) sudo dmidecode -q
BIOS Information
	Vendor: American Megatrends Inc.
	Version: 0601   
	Release Date: 04/18/2011

на сколько я понял ТС хочет сделать велосипед который до него сделали уже раз 10.

CHIPOK ★★★
()
Ответ на: комментарий от gh0stwizard

Дело не в баше, а в том что есть куча программ для работы с текстом, от cat/less до sed/awk, ну я уверен ты сам их все знаешь. Для бинарных данных таких распространенных и функциональных аналогов нет.

loz ★★★★★
()
Ответ на: комментарий от Eddy_Em

Думаю, уж эти сведения стопудово нафиг не нужны.

Иначе я бы не спрашивал! Мне необходимо с помощью программы, которую собираюсь написать, собрать сведения о компьютере. Практическая работа такая, по предмету ОС. От Вас хотел послушать, какие методы для этого можно использовать

TRomario
() автор топика
Ответ на: комментарий от loz

вот что делает dmidecode:

нужно найти, прочесть и распарсить табличку dmi.

первый пункт — найти. если система с uefi, то адрес dmi в памяти написан в systab, см. http://wiki.phoenix.com/wiki/index.php/EFI_CONFIGURATION_TABLE

дальше нужно, действительно, обратиться по указанному адресу в физической памяти (что из юзерспейса делается путём чтения из /dev/mem).

теперь самое сложное: нужно распарсить прочитанное. вот спека: http://www.dmtf.org/sites/default/files/standards/documents/DSP0005.pdf

всё это, соответственно, можно почитать в исходниках dmidecode при желании (у меня его не было, когда было надо, писал по спеке, в целом не рекомендую)

anonymous
()
Ответ на: комментарий от loz

Вобщем, я поищу линк. Проект был направлен на искорнение проблемы парсинга procfs (если в теме, то там изменения происходят относительно часто) и чтобы не было такого, написал парсер, а под ядро 3.99 он уже не пашет.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: комментарий от gh0stwizard

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

loz ★★★★★
()
Ответ на: комментарий от loz

Да, вижу) Буду изобретать..)
Спасибо всем! :)

TRomario
() автор топика
Ответ на: комментарий от Deleted

у cacti есть такая фича..discover - тыкаешь ноут в сеть и уходиш травить анекдоты, а он всеми доступными силами (в т.ч. snmp) собирает данные про хосты

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

по ЛЮБОЙ ОС единообразно информацию можно (и нужно) получать по протоколу SNMP.

А! а! а..

дистроделов не включающих snmp по умолчанию, а также горе-админов которые её отключают надо убиват.

а, не, это действительно просто бред.

t184256 ★★★★★
()
Ответ на: комментарий от MKuznetsov

у вас видимо неленивые админы, любят посещать сервера и юзеров.

У нас обученные и из 21ого века, не привыкшие куда не попадя тащить самые дырявые решета 20ого века. Дай бог здоровья и адекватным мейнтейнерам дистрибутивов, кстати.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Неосиляторы. Давно есть snmpv3, с приличным уровнем защиты/надёжности.

Не скажу, что SNMP это панацея. Просто это один вариант решения задач по управлению, мониторингу устройств. Другой вариант — агенты, как у забикса на перле жрут проц почем зря и память гигабайтами (sic!). И у того и другого подхода есть свои плюсы/минусы. По сути же оба делают тоже самое и являются одним классом программ (демоны). Для snmpd также можно писать шелл-скрипты, модули на сях и т.п. При этом это стандарт (ASN.1, IANA numbers).

gh0stwizard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.