программное определение параметров системы

Модератор: Модераторы разделов

Amouse
Сообщения: 59

программное определение параметров системы

Сообщение Amouse »

Есть такая задача:
на винте находится ОС unix/linux (может быть несколько).
Винт просматривается из другой ОС (необязательно unix).
Необходимо определить что за ОС находятся на винте и их основные параметры, скажем версию ядра.

С названием дистрибутива и номером версии приблизительно ясно - по идее на каждой unix-like системе есть файлы /etc/sytem_name-release, из которых можно вытащить название и версию.
(Как крайний вариант - файл "issue").

А как определить, скажем, версию ядра?
Просматривал исходники "uname", примерно ясно, что происходит - sys_call - uname, в котором просто читаются данные из какой-то структуры в ядре (которая заполняется, очевидно, при старте системы). Но в многочисленных переопределениях этих структур и переплетении исходных файлов подзапутался, найти откуда собственно берется эта инфа не смог.
Может кто знает ответ?
Спасибо сказали:
Аватара пользователя
estarchak
Сообщения: 1368
Статус: Оракловод

Re: программное определение параметров системы

Сообщение estarchak »

как насчет файловой системы /proc?
Дети любят тигра больше, чем Пржевальский лошадей. © Тимур Шаов.

Топик не читал, но внимательно просмотрел.
Спасибо сказали:
Аватара пользователя
alastor
Сообщения: 844
Статус: ARCH'еноид
ОС: Arch Linux current

Re: программное определение параметров системы

Сообщение alastor »

estarchak писал(а):
06.07.2006 21:09
как насчет файловой системы /proc?

Так речь то идет не о рабочей в текущей момент системе а о лежащий на винте - /proc не прокатит
Спасибо сказали:
d_n_k
Сообщения: 636
ОС: Gentoo GNU/Linux

Re: программное определение параметров системы

Сообщение d_n_k »

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