Есть такая задача:
на винте находится ОС unix/linux (может быть несколько).
Винт просматривается из другой ОС (необязательно unix).
Необходимо определить что за ОС находятся на винте и их основные параметры, скажем версию ядра.
С названием дистрибутива и номером версии приблизительно ясно - по идее на каждой unix-like системе есть файлы /etc/sytem_name-release, из которых можно вытащить название и версию.
(Как крайний вариант - файл "issue").
А как определить, скажем, версию ядра?
Просматривал исходники "uname", примерно ясно, что происходит - sys_call - uname, в котором просто читаются данные из какой-то структуры в ядре (которая заполняется, очевидно, при старте системы). Но в многочисленных переопределениях этих структур и переплетении исходных файлов подзапутался, найти откуда собственно берется эта инфа не смог.
Может кто знает ответ?
программное определение параметров системы
Модератор: Модераторы разделов
-
estarchak
- Сообщения: 1368
- Статус: Оракловод
Re: программное определение параметров системы
как насчет файловой системы /proc?
Дети любят тигра больше, чем Пржевальский лошадей. © Тимур Шаов.
Топик не читал, но внимательно просмотрел.
Топик не читал, но внимательно просмотрел.
-
alastor
- Сообщения: 844
- Статус: ARCH'еноид
- ОС: Arch Linux current
Re: программное определение параметров системы
Так речь то идет не о рабочей в текущей момент системе а о лежащий на винте - /proc не прокатит
-
d_n_k
- Сообщения: 636
- ОС: Gentoo GNU/Linux
Re: программное определение параметров системы
смотришь на то какой загрузчик, потом на его конфиг, получаешь путь к ядру, смотришь на его название или ищешь в ядре строку идентификации.
или ищешь загрузочный раздел и далее читаешь все что нужно о ядрах на этом разделе.
или ищешь загрузочный раздел и далее читаешь все что нужно о ядрах на этом разделе.
все сказанное есть имхо...