LINUX.ORG.RU

[C] Посоветуйте литературу

 


0

0

Для начинающего. Для совсем начинающего :) Хелловорлд, конечно, написать смогу, но дальше недалеко уеду.

Весьма приветствуется на великом и могучем, хотя можно и на английском.

Совсем хорошо будет, если будут еще и аспекты программирования под linux.

Заранее спасибо!

★★★★★

1)Керниган, Ричи
2)Фомин, Подбельский

Советую обе вместе. Первая написана математически строго и сжато, что
будет непонятно посмотришь во второй.

Лучше всего изучить синтаксис и засесть реализовывать какую-нибудь задачу,
например, печать подкаталогов или копирование со вложением.
Лучше всего язык изучается в работе.

ttnl ★★★★★
()

> Для начинающего. Для совсем начинающего :) Хелловорлд, конечно, написать смогу, но дальше недалеко уеду.

SICP must be your first experience. Amen.

anonymous
()
Ответ на: комментарий от anonymous

Не, ну не настолько. Опыт программинга есть (perl, java), хоть и небольшой.

madgnu ★★★★★
() автор топика

Для начинающих для Юниксов есть отличнейшая книга

Брюс Моли Unix/Linux: Теория и практика программирования

Bruce Molay Understanding Unix/Linux Programming

anonymous
()

«Как программировать на С» Дейтелов. Я по ней изучал.

Zitzy
()
Ответ на: комментарий от Insomnium

> Присоединяюсь по обоим пунктам. А дальше Шилдт. =)

О каком Шилдте может идти речь после K&R? Вы о чем?

anonymous
()
Ответ на: комментарий от Reset

Если совсем с нуля, то лучше начать с книжки Подбельский, Фомин.

++
я сам с неё начинал.

Boy_from_Jungle ★★★★
()

подробная книжка по autotools: http://sources.redhat.com/autobook/

вводные статьи, с примерами, что такое autotools и зачем: http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_autom... — на примере простого хелловорда мы сначала пишем мейкфайл вручную, потом пишем maintainer-friendly мейкфайл, потом выясняем, что это бы автолулзы сгенерировали автоматически; описывается порядок, workflow, жизненный цикл и логика работы autotools; генерируем мейкфайл automake; добавляем разделяемые библиотеки через libtool — в примере описано, как реализовывать поддержку плагинов, либо через dlopen/dlsym/dlclose, либо через libtool-ный ltdl, который оказывается умеет реализовывать загрузку/выгрузку разделяемых библиотек при статической линковке, то есть, грузит .a прилинкованный к бинарнику, как если бы это был .so

блог Ian Taylor, автора gold linker — описывает внутреннюю кухню работы линкера и загрузчика http://www.airs.com/blog/archives/38 (цикл статей, статей 30), и сложности/трудоёмкости адекватной реализации линкера С++-ного кода

хорошее вводное, популярное введение в предмет. Если хочется подробнее, чтобы понимать как всё работает в целом, полезно почитать книжку «Linkers and loaders» (гуглится, или app-doc/linkers-and-loaders в Gentoo)

gnu coding standarts, gcc internals, gcc plugin howto на сайте GNU — полезно почитать, чтобы понимать как работает компилятор и workflow разработки в целом. coding standarts описывает не только соглашения по форматированию, но и инструменты вроде autotools/gcc/make/m4 в целом, общую картину.

anonymous
()
Ответ на: комментарий от anonymous

http://wiki.osdev.org/Bare_bones описывает, как написать своё ядро на C. Остальные туториалы с того сайта тоже полезны чтобы понимать, как работает в целом ядро, standard (c,c++,d) runtime library, bootloader, linkers, loaders и т.п. Пример простенького загрузчика своего ядра на grub был в составе доки самого груба.

anonymous
()
Ответ на: комментарий от anonymous

по Plan 9 некоторым аналогом Lions book является книга «Notes on the Plan 9tm 3rd edition Kernel Source» by Francisco J Ballesteros nemo@lsub.org, http://plan9.lsub.org/who/nemo/9.pdf , также полезна книга http://plan9.escet.urjc.es/who/nemo/9.intro.pdf

описано ядро Plan 9, механизм работы сисколлов, общая идеология программирования под Plan9, но вторая книжка не особенно завязана именно на Plan 9, а разбирается учебный пример, где Plan 9 взят только для иллюстрации.

Plan 9 всё-таки ближе и понятнее, цельнее, структура логичнее для программиста на Си, чем Linux ядро.

Исходники Linux v0.01: http://digg.com/linux_unix/Download_the_Linux_kernel_v0_01_It_s_only_around_1...

anonymous
()

http://www.fh-jena.de/~kleine/history/languages/Ritchie-CHistory-HOPL2paper.pdf http://cm.bell-labs.com/cm/cs/who/dmr/chist.html

как Денис Ричи с Брайаном Керниганом дошли до жизни такой

сначала был интерпретируемый BCPL, потом B, потом слепили компилятор, а над указателями со структурами пару лет думали.

Керниган сам признаётся, что с указателями он не очень продуманно сделал, вот символы в лиспе это да, типизация сохраняется, а тут у нас костыли вроде void*

anonymous
()

я, например, в детстве в 6 лет язык Си (второй после Лого и паскаля) изучал по книжке http://publ.lib.ru/ARCHIVES/B/BOLSKI_M._I/_Bolski_M._I..html — нашёл на полке русско-болгарский разговорник, потом «разговорник на Си», и поразился, что в Си понимаю чуть больше, чем в болгарском :)) Хотя изучать с начала не советую, это словарик такой.

anonymous
()
Ответ на: комментарий от anonymous

Ух ты, спасибо огромное!

madgnu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.