Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы...
А то недавно прочёл одну книжку, и понял, что мои представления о внутреннем устройстве OS несколько однобокие и больше склоняються к архитектуре NT.
И ещё маааленький вопрос :
Почему нужно явно создавать файлы устройств с помощъю mknod (вроде). Почему не сделано так — файлы сами появляються когда драйвер загружен ?
Здравствуйте, Sergey J. A., Вы писали:
SJA>Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы...
Sei4as Besplatno!!! (blin, a kogtato sa bolshie dengi pokupal)
SJA>И ещё маааленький вопрос : SJA>Почему нужно явно создавать файлы устройств с помощъю mknod (вроде). Почему не сделано так — файлы сами появляються когда драйвер загружен ?
Esli u tebja jadro s funktionalnostju "devfs", to oni sami pojavljajutsja, i tolko dlja
sagruzhenyh draiverov.
Здравствуйте, Sergey J. A., Вы писали:
SJA>Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы...
Она в сорсах идет, что еще надо?
Я сам ищу такую вещь: в "Unix для профессионалов" в гритсах покойным в самом начале упомянту некий Лайонз. И написано, что он в свое время выпустил книгой комментарии более чем к 10 тыс. строк кода Юникс. Потом из-за проблем с авторскими правами книгу изъяли, но она еще долго циркулировала в виде самиздата. Говорят, что можно найти где-то в сети, но я уже год ищу без толку. SJA>И ещё маааленький вопрос : SJA>Почему нужно явно создавать файлы устройств с помощъю mknod (вроде). Почему не сделано так — файлы сами появляються когда драйвер загружен ?
makedev? butcher щас поправит...
В некоторых появляется. Например в FreeBSD 5.x
Здравствуйте, Sergey J. A., Вы писали:
SJA>Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы...
У меня была такая проблемма. Читай исходники. Если проблем с си нет начни с 2.2. А затем 2.4. В сети ОГРОМНОЕ количество материала комметирующее те или иные моменты исходного кода ядра. Авторы — собственно те кто писали исходный код. Я так вполне сносно освоил создание и управление процессов в 2.2 — 2.4.
Здравствуйте, glyph, Вы писали:
G>Здравствуйте, Sergey J. A., Вы писали:
SJA>>Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы... G> Она в сорсах идет, что еще надо?
Ага... Изучать всю эту тучу кода ? У меня столько времени нету...
G> Я сам ищу такую вещь: в "Unix для профессионалов" в гритсах покойным в самом начале упомянту некий Лайонз. И написано, что он в свое время выпустил книгой комментарии более чем к 10 тыс. строк кода Юникс. Потом из-за проблем с авторскими правами книгу изъяли, но она еще долго циркулировала в виде самиздата. Говорят, что можно найти где-то в сети, но я уже год ищу без толку. SJA>>И ещё маааленький вопрос : SJA>>Почему нужно явно создавать файлы устройств с помощъю mknod (вроде). Почему не сделано так — файлы сами появляються когда драйвер загружен ? G> makedev? butcher щас поправит... G> В некоторых появляется. Например в FreeBSD 5.x
Здравствуйте, duan, Вы писали:
D>Здравствуйте, Sergey J. A., Вы писали:
SJA>>Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы...
D>У меня была такая проблемма. Читай исходники. Если проблем с си нет начни с 2.2. А затем 2.4. В сети ОГРОМНОЕ количество материала комметирующее те или иные моменты исходного кода ядра. Авторы — собственно те кто писали исходный код. Я так вполне сносно освоил создание и управление процессов в 2.2 — 2.4.
Проблес с С нету. Есть большие проблемы со временем... Да и не настолько подробно мне это нужно знать. Хочу просто посмотреть, как там что внутри работает, без особых подробностей на уровне кода. Хочу сравнить структуру с NT-шной...
У самого дома подобные "Inside Windows 2000" книги:
Ю. Вахалия "UNIX изнутри"
У. Стивенс "UNIX: взаимодействие процессов"
У. Стивенс "UNIX: разработка сетевых приложений"
Книгами доволен
SJA>Ага... Изучать всю эту тучу кода ? У меня столько времени нету...
Так только кажется. Возьми ядро попроще 1.#.# и описание именно от тех кто писал эти строки кода.
На http://www.opennet.ru/docs/ есть например дока с названием "Управление процессами и прерываниями". Это про ядро 2.4. Точно меньше чем у руссиновича. Лично для меня, кода из ядра только ускорил процесс понимания.
Ну уж точно не дольше, чем прочитать книгу руссиновича. И уж точно точнее.
Да, кстати архитектура довольно серьезно менялась от ядра к ядру.
Здравствуйте, Сергей Глазунов, Вы писали:
СГ>Здравствуйте, Sergey J. A., Вы писали:
СГ>У самого дома подобные "Inside Windows 2000" книги: СГ>Ю. Вахалия "UNIX изнутри" СГ>здесь была картинка
Попробую её купить в эти выходные, пока зарплату не пропил Название у неё самое подходящее Если найду, конечно её у нас в Минске...
Здравствуйте, Sergey J. A., Вы писали:
SJA>Здравствуйте, Сергей Глазунов, Вы писали:
SJA>Попробую её купить в эти выходные, пока зарплату не пропил Название у неё самое подходящее Если найду, конечно её у нас в Минске...
G> Я сам ищу такую вещь: в "Unix для профессионалов" в гритсах покойным в самом начале упомянту некий Лайонз. И написано, что он в свое время выпустил книгой комментарии более чем к 10 тыс. строк кода Юникс. Потом из-за проблем с авторскими правами книгу изъяли, но она еще долго циркулировала в виде самиздата. Говорят, что можно найти где-то в сети, но я уже год ищу без толку.
Не эту случайно? К сожалению эта страничка заброшена и я также не нашел ее ни в одном он-лайн магазине мира. Контактировал их. Сказали, что возможно новое издание появится, но пока не слышно.
А вообще, тот код, что изложен в этой книге есть в сети. Там вся ОСь с утилитами и директории Кена Томпсона и Денниса Ритчи. Кода не так уж и много по сравнению со всеми этими FreeBSD, Линуксами... Я бы сказал, что даже мало.
Автору: читай Маккузика, Баха, Вахалию а также Рубини и Энди Танненбаума. Есть еще книга по устройству Солариса, но автора не помню.
Вы писали 17 мая 2004 г., 18:01:39:
SJA>>Почему нужно явно создавать файлы устройств с помощъю mknod SJA>>(вроде). Почему не сделано так — файлы сами появляються когда SJA>>драйвер загружен ? g> makedev? butcher щас поправит... g> В некоторых появляется. Например в FreeBSD 5.x
Много не скажу, не слишком компетентен, скажу что знаю.
Файлы устройств в /dev служат для создания интерфейса между
приложениями пользователя и драйверами устройств.
В Линухах на сколько я знаю, довольно давно есть поддержка devfs,
которая избавляет пользователя от этой мороки. В 4STABLE и 5-ой
версии FreeBSD тоже используется devfs.
На счёт создания этих "файлов", да, создаются они командой mknod, во
многих юнихах есть шелл скрипт /dev/MAKEDEV который "знает" какие
параметры передавать в mknod для создания файла определённого
устройства.
--
С уважением, butcher
Здравствуйте, Sergey J. A., Вы писали:
SJA>Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы...
SJA>А то недавно прочёл одну книжку, и понял, что мои представления о внутреннем устройстве OS несколько однобокие и больше склоняються к архитектуре NT.
SJA>И ещё маааленький вопрос : SJA>Почему нужно явно создавать файлы устройств с помощъю mknod (вроде). Почему не сделано так — файлы сами появляються когда драйвер загружен ?
Андрей Робачевский "Операционная система UNIX" — очень хорошая книга по архитектуре и программированию UNIX основанных систем.
Марк Митчелл, Джеффри Оулдем, Алекс Самьюэл "Программирование для Linux. Профессиональный подход" — просто хорошая книга, рекомендуется всем.
Здравствуйте, Sergey J. A., Вы писали:
SJA>Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы...
SJA>А то недавно прочёл одну книжку, и понял, что мои представления о внутреннем устройстве OS несколько однобокие и больше склоняються к архитектуре NT.
Вообще, если вдуматься, принципиальных отличий между NT и Unix нет. Хочешь разнообразия почитай о таких вещах как AS/400 .
SJA>И ещё маааленький вопрос : SJA>Почему нужно явно создавать файлы устройств с помощъю mknod (вроде). Почему не сделано так — файлы сами появляються когда драйвер загружен ?
А почему драйвер должен это делать? В общем случае нет никаких правил, определяющих как должен называться (где должен располагаться) файл устройства.
Конечно, многим (всем) хочется, чтобы при обнаружении в системе устройства, грузился бы драйвер для него и создавался соответствующий файл. Юниксы решают это по-разному. Например, в linux 2.6 такую работу системы обеспечивают sysfs (виртуальная файловая система, представляющая в виде обычных файлов структуры ядра, описывающие устройства), hotplug (скрипты, вызываемые ядром при обнаружении нового устройства в системе) и udev (програмулина, вызываемая hotplug'ом, создающая файлы устройств по заданным пользователям правилам).
Здравствуйте, stasik_garifulin, Вы писали:
_>Здравствуйте, Sergey J. A., Вы писали:
SJA>>Может кто подскажет какую ссылочку на описание архитектуры Linux. Что-нибудь наподобие "Inside Windows 2000" от М.Руссинович и Д.Соломона. Много встречал доков, которые описывают архитектуру, но поверхносно... Хотелось бы знать как допустим организованы драйвера, как поддерживается PnP, потоки, процессы...
SJA>>А то недавно прочёл одну книжку, и понял, что мои представления о внутреннем устройстве OS несколько однобокие и больше склоняються к архитектуре NT. _>Вообще, если вдуматься, принципиальных отличий между NT и Unix нет. Хочешь разнообразия почитай о таких вещах как AS/400 .
Я по Unix-у найти не могу, а уж о AS/400 и говорить нечего... По крайней мере у нас на книжном рынке я ничего такого не встречал...
SJA>>И ещё маааленький вопрос : SJA>>Почему нужно явно создавать файлы устройств с помощъю mknod (вроде). Почему не сделано так — файлы сами появляються когда драйвер загружен ? _>А почему драйвер должен это делать? В общем случае нет никаких правил, определяющих как должен называться (где должен располагаться) файл устройства.
Файлы устройства могут располагаться не в /dev/ ? Хм... Не слышал я что-то такого....
Вы писали 20 мая 2004 г., 13:31:43:
s> Вообще, если вдуматься, принципиальных отличий между NT и Unix s> нет. Хочешь разнообразия почитай о таких вещах как AS/400 .
Всётаки отличия я думаю есть..
s> А почему драйвер должен это делать? В общем случае нет никаких s> правил, определяющих как должен называться (где должен s> располагаться) файл устройства.
Правила есть, на счёт их точно сказать не могу, но покрайней мере
существует договорённость (возможно даже на уровне стандарта), как,
где и какие должный быть файлы устройств.
--
С уважением, butcher
Вы писали 20 мая 2004 г., 13:49:11:
SJA> Файлы устройства могут располагаться не в /dev/ ? SJA> Хм... Не слышал я что-то такого....
На сколько я знаю, например в Solaris они находятся в каталоге
/devices, хотя есть симлинк /dev
--
С уважением, butcher