Я работал над средами * nix в течение последних четырех лет в качестве разработчика приложений (в основном на C).
Пожалуйста, предложите несколько книг / блогов и т. Д. Для улучшения моих внутренних знаний * nix.
Я работал над средами * nix в течение последних четырех лет в качестве разработчика приложений (в основном на C).
Пожалуйста, предложите несколько книг / блогов и т. Д. Для улучшения моих внутренних знаний * nix.
Ответы:
Вот несколько советов о том, как понять «дух» Unix, в дополнение к прекрасным рекомендациям, которые были сделаны в предыдущих постах:
«Среда программирования Unix» Кернигана и Пайка: старая книга, но она показывает суть среды Unix. Это также поможет вам стать эффективным пользователем оболочки.
«Unix для нетерпеливых» - это полезный ресурс, чтобы научиться ориентироваться в среде Unix. Один из любимых.
Если вы хотите стать опытным пользователем, нет ничего лучше, чем «Unix Power Tools» от O'Reilly, который состоит из коллективных советов и трюков от профессионалов Unix.
Еще одна книга, о которой я не упомянул, - это забавный свет и учебное чтение - книга «Операционные системы, проектирование и реализация», книга Энди Таненбаума, включающая исходный код полной операционной системы Unix в 12 тысяч строк кода.
Вы определенно хотите прочитать Стивенс: «Расширенное программирование в среде Unix» . Не позволяйте заголовку Advanced пугать вас, он очень читабелен.
Книги / сайты / руководства, которые я часто использую:
Ядро Linux : эта книга опубликована в сети как часть TLDP (Проект документации Linux). Это не современное и не внутреннее руководство, но предоставляет полезную информацию и вводные материалы о принципах и механизмах ядра.
Понимание ядра Linux: ИМХО, это лучшая книга для начинающих, которые имеют представление о дизайне и концепции операционных систем. Он принят как актуальный, охватывает версию 2.6 ядра. В Интернете есть HTML-версия книги, но я думаю, что она наиболее вероятна.
При изучении внутренних компонентов ядра Linux вам, как правило, необходимо узнать, как работает аппаратное обеспечение и какое оборудование оно предоставляет абстрактно. У Intel есть отличные руководства для этого.
Руководства разработчика программного обеспечения для архитектуры Intel 64 и IA-32 : актуальная подробная информация.
Справочное руководство для программиста Intel 80386 : я знаю, что это немного устарело, но я многому научился из этого руководства.
Если вам необходимо изучить дизайн и концепцию операционных систем, я предлагаю следующую книгу: Концепции операционной системы .
Ядро O'REILLY Linux в двух словах
и драйверы устройств O'REILLY Linux
Программирование систем Linux или любая другая книга Роберта Лава (все это книги О'Рейли):
Я согласен со всеми остальными и должен сказать, что APUE Стивенса (у меня второе издание) - это классика. Я также хотел бы добавить, что « Искусство программирования в UNIX» Эрика Рэймонда стоит в одном ряду с Стивенсом в моем списке.
Что касается BSD Unices, есть проект и реализация операционной системы 4.4BSD, части которой теперь, по-видимому, доступны бесплатно по адресу http://www.freebsd.org/doc/en/books/design-44bsd/.
Драйверы устройств Linux - еще один хороший ресурс. Это даст вам другой способ проникнуть во внутреннюю работу. Из предисловия:
На первый взгляд, это книга о написании драйверов устройств для системы Linux. Это достойная цель, конечно; поток новых аппаратных продуктов вряд ли замедлится в ближайшее время, и кому-то придется заставить все эти новые гаджеты работать с Linux. Но эта книга также о том, как работает ядро Linux и как адаптировать его работу к вашим потребностям или интересам. Linux - открытая система; мы надеемся, что благодаря этой книге она станет более открытой и доступной для более широкого сообщества разработчиков.
Чтобы понять, почему и для чего предназначено ядро, взгляните на «Искусство программирования Unix » Эрика Рэймонда. Это берет вещи на довольно высоком, философском уровне, но это будет соответствовать мелким деталям других книг.
Могу ли я предложить следующие две книги (помимо других):
Я подробно описал первый (если бы у меня была лучшая память, и у меня было больше времени, я бы знал намного больше, чем сейчас; но это уже другая история). Я сейчас читаю второй.