Титла: /dev/initctl и /dev/log Публикувано от: bop_bop_mara в Oct 20, 2010, 12:00 Имам няколко въпроса за тези два файла. Не, че не рових из интернет, но обикновено намирах някакви теми, свързани с проблеми и без добри обяснения, така че подозирам, че тук може да получа по-хубави отговори.
1. За какво се използва всеки от тези два файла, каква информация има вътре, кой пише в тях и кой (и защо) ги чете :) 2. Защо /dev/initctl е fifo файл? 3. Защо /dev/log е socket? (Отговорът на 1 логично трябва да определя и отговорите на 2 и 3:)) 4. (offtopic) Мрежовите сокети (тези, дето създаваме с домейн AF_INET) считат ли се също за тип файл (на базата на това, че ги достъпваме по файлов дескриптор и пишем и четем с read() и write()) или само Unix domain сокетите се считат за тип файл? Тук нямам предвид дали участват във файловата система в някоя директория под някакво име, а примерно дали за всеки отделен екземпляр се заделя inode. Например според wikipedia неименуваният pipe не е вид файл, а само именувания, но нас са ни учили, че и двете са, просто първото остава "скрито", иначе си има inode и всички нужно. Титла: Re: /dev/initctl и /dev/log Публикувано от: romeo_ninov в Oct 20, 2010, 12:22 Базирано на знанията ми по соларис:
/dev/log е файл, който може да се използва като устройство към което да се изпращат логовете, за да се опрости операцията и да се унифицира. П.П. Предупреждавам че горното не е задължително да има нещо общо с действителността в Линукс :) П.П.П. По дефиниция файла трябва да се намира във файлова система, така че мрежовите сокети не би трябвало да се считат (в Линукс) за файлове в общия смисъл на думата Титла: Re: /dev/initctl и /dev/log Публикувано от: bop_bop_mara в Oct 20, 2010, 12:26 П.П.П. По дефиниция файла трябва да се намира във файлова система, така че мрежовите сокети не би трябвало да се считат (в Линукс) за файлове в общия смисъл на думатаМоже ли линк към дефиницията :) Значи файл не е всичко, за което заделяме inode, така ли? Титла: Re: /dev/initctl и /dev/log Публикувано от: romeo_ninov в Oct 20, 2010, 14:08 За съжаление дефиницята е моето разбиране на нещата :)П.П.П. По дефиниция файла трябва да се намира във файлова система, така че мрежовите сокети не би трябвало да се считат (в Линукс) за файлове в общия смисъл на думатаМоже ли линк към дефиницията :) Значи файл не е всичко, за което заделяме inode, така ли? Титла: Re: /dev/initctl и /dev/log Публикувано от: bop_bop_mara в Oct 20, 2010, 14:20 За съжаление май и това е официалната дефиниция :D
Титла: Re: /dev/initctl и /dev/log Публикувано от: triel в Oct 20, 2010, 20:34 Имам няколко въпроса за тези два файла. Не, че не рових из интернет, но обикновено намирах някакви теми, свързани с проблеми и без добри обяснения, така че подозирам, че тук може да получа по-хубави отговори. /sbin/telinit използва /dev/initctl, за да комуникира със /sbin/init. За повече информация: man 8 init /dev/log се използва от user space програми, за да предават информация към syslogd. Устройството бива отворено за писане при извикване на openlog() (ако се използва флаг LOG_NDELAY), или при първото използване на syslog() от дадена програма. От своя страна syslogd (или syslog-ng, etc.) отварят /dev/log за четене още при стартиране. Тук не мога да посоча източник на информацията, тъй като тя е събирана от различни места с течение на времето. Евентуално man 3 syslog би могъл да помогне донякъде. 2. Защо /dev/initctl е fifo файл? Логично би трябвало да го определи, но... в един идеален свят. Имам някакво мнение по въпроса, но е чиста спекулация, така че ще го запазя за себе си. 4. (offtopic) Мрежовите сокети (тези, дето създаваме с домейн AF_INET) считат ли се също за тип файл (на базата на това, че ги достъпваме по файлов дескриптор и пишем и четем с read() и write()) или само Unix domain сокетите се считат за тип файл? Тук нямам предвид дали участват във файловата система в някоя директория под някакво име, а примерно дали за всеки отделен екземпляр се заделя inode. Например според wikipedia неименуваният pipe не е вид файл, а само именувания, но нас са ни учили, че и двете са, просто първото остава "скрито", иначе си има inode и всички нужно. AFAIK, AF_INET sockets също си имат inodes (under the hood, разбира се), т.е. по твоята дефиниция би трябвало да са файлове. А ако погледнем по-широко на нещата и разгледаме операционна система като Plan9 например, то там нещата не се случват "под капака", а всичко си е достъпно чрез файловата система, включително и AF_INET sockets. |