как создать файл на hdd из user space — всё просто — open и вперёд.
Из kernel module этот фокус не проходит
а надо писать файл из модуля ядра.
Имеем: linux 2.6.17
/dev/sda
/dev/sda1
cоответственно:
/ # lsmod | grep sd
sd_mod 15184 0 — Live 0xc0254000
scsi_mod 86796 2 sd_mod,libata, Live 0xc021f000
Неимеем: опыта писания модулей ядра
Можем:
-отфармотировать: # jfs_mkfs /dev/sda1
-подмантировать к каталогу /hdd : # mount -t jfs /dev/sda1 /hdd
-писать файл туда но это всё в user space
плиз хелп ... где читать об этом????
Re: создание файла на жёстком диске из kernel module в Linux
G>как создать файл на hdd из user space — всё просто — open и вперёд. G>Из kernel module этот фокус не проходит G>а надо писать файл из модуля ядра.
G>Имеем: linux 2.6.17 G>/dev/sda G>/dev/sda1 G>cоответственно: G>/ # lsmod | grep sd G>sd_mod 15184 0 — Live 0xc0254000 G>scsi_mod 86796 2 sd_mod,libata, Live 0xc021f000
G>Неимеем: опыта писания модулей ядра
G>Можем: G>-отфармотировать: # jfs_mkfs /dev/sda1 G>-подмантировать к каталогу /hdd : # mount -t jfs /dev/sda1 /hdd G>-писать файл туда но это всё в user space
G>плиз хелп ... где читать об этом????
G>как создать файл на hdd из user space — всё просто — open и вперёд. G>Из kernel module этот фокус не проходит G>а надо писать файл из модуля ядра.
Писать файл из модуля ядра концептуально неправильно, подобный приём фактически разрушает нормальную систему организации доступа к ресурсам в Linux. Возможно вам поможет добавление нового системного вызова в ядро.
Если вы часто пишете программы и постоянно мучаете себя вопросом, почему нету такого хорошего вызова XYZ в ядре, то эта статья для вас. Она научит вас как самим реализовать этот хороший вызов XYZ, и возможно, вы поймете, что он не такой и хороший... да и вовсе не нужный
Здравствуйте, gnutha, Вы писали:
G>как создать файл на hdd из user space — всё просто — open и вперёд. G>Из kernel module этот фокус не проходит G>а надо писать файл из модуля ядра.
Каковы причины того, что файл писать нужно только из ядра? Или иницициатор события, реакцией на которое должно быть создание файла, находится в ядре? Тогда сделайте демона в юзерспейсе, который будет ожидать событие из ядра и по нему создавать и писать файл.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[2]: создание файла на жёстком диске из kernel module в Li
Здравствуйте, MShura, Вы писали:
G>>как создать файл на hdd из user space — всё просто — open и вперёд. G>>Из kernel module этот фокус не проходит G>>а надо писать файл из модуля ядра.
MS>Если очень хочется, то можно. MS>Работает на многих платформах.
Спасибо огромное!!!
работает и у меня то же
щаз буду анализировать этот способ и смотреть что за функции я дёргаю
Санкс!!!
Re[2]: создание файла на жёстком диске из kernel module в Li
Здравствуйте, ДимДимыч, Вы писали:
ДД>Здравствуйте, gnutha, Вы писали:
G>>как создать файл на hdd из user space — всё просто — open и вперёд. G>>Из kernel module этот фокус не проходит G>>а надо писать файл из модуля ядра.
ДД>Каковы причины того, что файл писать нужно только из ядра? Или иницициатор события, реакцией на которое должно быть создание файла, находится в ядре? Тогда сделайте демона в юзерспейсе, который будет ожидать событие из ядра и по нему создавать и писать файл.
демон в user space это запасной вариант
Re[2]: создание файла на жёстком диске из kernel module в Li
Здравствуйте, Michael7, Вы писали:
M>Здравствуйте, gnutha, Вы писали:
G>>как создать файл на hdd из user space — всё просто — open и вперёд. G>>Из kernel module этот фокус не проходит G>>а надо писать файл из модуля ядра.
M>Писать файл из модуля ядра концептуально неправильно, подобный приём фактически разрушает нормальную систему организации доступа к ресурсам в Linux. Возможно вам поможет добавление нового системного вызова в ядро.
M>
M>Если вы часто пишете программы и постоянно мучаете себя вопросом, почему нету такого хорошего вызова XYZ в ядре, то эта статья для вас. Она научит вас как самим реализовать этот хороший вызов XYZ, и возможно, вы поймете, что он не такой и хороший... да и вовсе не нужный
Здравствуйте, Dio Elaclaire, Вы писали:
DE>Здравствуйте, gnutha, Вы писали:
G>>как создать файл на hdd из user space — всё просто — open и вперёд. G>>Из kernel module этот фокус не проходит G>>а надо писать файл из модуля ядра.
G>>Имеем: linux 2.6.17 G>>/dev/sda G>>/dev/sda1 G>>cоответственно: G>>/ # lsmod | grep sd G>>sd_mod 15184 0 — Live 0xc0254000 G>>scsi_mod 86796 2 sd_mod,libata, Live 0xc021f000
G>>Неимеем: опыта писания модулей ядра
G>>Можем: G>>-отфармотировать: # jfs_mkfs /dev/sda1 G>>-подмантировать к каталогу /hdd : # mount -t jfs /dev/sda1 /hdd G>>-писать файл туда но это всё в user space
G>>плиз хелп ... где читать об этом????
DE>Не стоит писать файлы из кернел мода
спасибо за ссылку
Re[2]: создание файла на жёстком диске из kernel module в Li
Здравствуйте, Michael7, Вы писали:
M>Писать файл из модуля ядра концептуально неправильно, подобный приём фактически разрушает нормальную систему организации доступа к ресурсам в Linux.
В качестве замены того же в userland — да.
Во всех случаях — нет, нет и нет.
Ядро корку пишет — оно при этом что-то разрушает?
Квоты используют спецфайлы в корне FS — при этом что-то разрушается?
Спецлог писать — что при этом разрушается?