- Программирование для linux pdf
- Марк Митчелл — Программирование для Linux. Профессиональный подход
- Описание книги «Программирование для Linux. Профессиональный подход»
- Нейл Мэтью — Основы программирования в Linux
- Описание книги «Основы программирования в Linux»
- Похожие книги на «Основы программирования в Linux»
Программирование для linux pdf
Physics.Math.Code запись закреплена
Linux API исчерпывающее руководство [2019] Майкл Керриск
Linux Programming Interface – исчерпывающее руководство по программированию приложений для Linux и UNIX. Описанный здесь интерфейс применяется практически с любыми приложениями, работающими в операционных системах Linux или UNIX.
В этой авторитетной книге эксперт по Linux Майкл Керриск подробно описывает библиотечные вызовы и библиотечные функции, которые понадобятся вам при системном программировании. Вся теория сопровождается объяснениями на примерах четких и понятных полнофункциональных программ.
В этой книге представлено практически полное описание API системного программирования под управлением Linux. Ее одержимое применимо к широкому диапазону Linux-платформ, начиная с обычных серверов, универсальных компьютеров и настольных систем и заканчивая большим разнообразием встроенных устройств (в том числе работающих под управлением операционной системы Android), на которых в настоящее время запускается ОС Linux.
Англоязычное издание этой книги вышло в конце 2010 года. С того времени было вы пущено несколько обновлений ядра Linux (их было примерно по пять за год). Несмотря на это, содержимое оригинала книги, а следовательно, и данного перевода, не утратило актуальности и сохранит ее еще на долгие годы. Тому есть две причины.
Во-первых, несмотря на стремительность разработки ядра Linux, API, связанный с пользовательским пространством ядра, изменяется гораздо медленнее. Такая консервативность — естественное следствие того факта, что ядро разработано с целью обеспечить стабильную основу для приложений, выполняемых в пространстве пользователя. Скоротечность развития API пространства пользователя неприемлема для тех программ, которым следует запускаться на нескольких версиях ядра.
Во-вторых, изменения вносятся в виде дополнений к интерфейсам, рассматриваемым в книге, а не модификаций уже существующих функциональных свойств, описанных в ней же. (Хочу еще раз отметить, что это вполне естественный ход разработки ядра Linux: специалисты прилагают большие усилия к тому, чтобы ничего не нарушить в уже существующем API пользовательского пространства.) Со дня выхода оригинала книги в данный API были внесены изменения.
Источник
Марк Митчелл — Программирование для Linux. Профессиональный подход
99 Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания.
Скачивание начинается. Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Описание книги «Программирование для Linux. Профессиональный подход»
Описание и краткое содержание «Программирование для Linux. Профессиональный подход» читать бесплатно онлайн.
Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.
Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.
Программирование для Linux
Марк Митчелл (Mark Mitchell) получил степень бакалавра вычислительной техники в Гарвардском университете в 1994 году и степень магистра — в Станфордском университете в 1999 году. Его научные исследования касались теории сложности вычислений и компьютерной безопасности. Марк принимал участие в разработке коллекции GNU-компиляторов (GCC).
Джеффри Оулдем (Jeffrey Oldham) получил степень бакалавра вычислительной техники в университете Райс в 1991 году. После работы в Центре исследования параллельных вычислений он получил степень доктора философии в Станфордском университете в 2000 году. Его научные исследования касались теории алгоритмов. В настоящее время он продолжает разработку коллекции GNU-компиляторов и пишет программы для научных расчетов.
Алекс Самьюэл (Alex Samuel) окончил физический факультет Гарвардского университета в 1995 году. Он работал инженером-программистом в компании BBN, после чего вернулся к изучению физики в Станфордском университете. Алекс является администратором проекта Software Carpentry и занимается рядом других проектов, в частности оптимизацией коллекции GCC.
Марк и Алекс основали компанию CodeSourcery LLC в 1999 году. Джеффри пришел в компанию в 2000 году. Целями компании являются создание средств разработки для GNU/Linux и других операционных систем; превращение семейства GNU-утилит в стандартный набор средств разработки промышленного качества; выполнение работ под заказ и предоставление консультаций. Адрес Web-узла компании: www.codesourcery.com.
О научных консультантах
Эти люди внесли значительный вклад в написание книги. Они просмотрели материал книги на предмет технической грамотности и организации. Их советы и рецензии позволили авторам убедиться в том. что они не обманут ожидания читателей.
Гленн Бекер (Glenn Becker) имеет много научных степеней, все в области театрального искусства. В настоящее время он работает онлайн-продюсером в SCIFI.COM — интерактивном компоненте канала SCI FI в Нью-Йорке. Дома у него установлена система Debian Linux, и он интересуется такими темами, как системное администрирование, безопасность. локализация программного обеспечения и XML.
Джон Дин (John Dean) получил степень бакалавра естественных наук в Шеффилдском университете в 1974 году. В 1986 г. он получил степень магистра систем автоматического управления в Институте наук и технологий в Кранфилде. Работая в компании Roll Royce and Associates, Джон разрабатывал программное обеспечение для систем автоматизированного управления ядерной техникой. После ухода из компании в 1978 г. он работал в нефтехимической промышленности, занимаясь созданием систем управления технологическими процессами. С 1996 по 2000 гг. Джон был добровольным разработчиком компании MySQL, после чего перешел на работу в эту компанию. Джон занимается переносом MySQL в Windows и написанием нового графического клиента MySQL для платформ Windows и X11.
Мы выражаем глубокую признательность Ричарду Сталлману (Richard Stallman), без которого никогда не было бы проекта GNU, и Линусу Торвальдсу (Linus Torvalds) без которого никогда не было бы ядра Linux. Огромное число -людей внесло свой вклад в операционную систему Linux и мы благодарим их всех.
Мы благодарим преподавателей университетов Гарварда, Станфорда и Райс, которые учили нас. Без них мы никогда не рискнули бы учить других!
Ричард Стивенс (W. Richard Stevens) написал три великолепные книги по программированию в UNIX, которыми мы постоянно пользуемся. Роланд Маграт (Roland McGrath), Ульрих Дреппер (Ulrich Drepper) и многие другие написали GNU-библиотеку языка С и превосходную документацию к ней.
Роберт Бразил (Robert Brazile) и Сэм Кендалл (Sam Kendall) просмотрели ранние наброски нашей книги и дали советы по ее направленности и содержанию. Наши научные консультанты и рецензенты (особенно Гленн Бекер и Джон Дин) находили ошибки и оказывали нам техническую поддержку. Естественно, оставшиеся ошибки — целиком на нашей совести!
Благодарим сотрудников издательства New Riders: Энн Куинн (Ann Quinn) — за решение всех вопросов, связанных с публикацией книги: Лору Ловолл (Laura Loveall) — за то, что помогла нам уложиться в сроки; Стефани Уолл (Stephanie Wall) — за то что вдохновила нас на написание этой книги.
Операционная система Linux вихрем ворвалась в мир компьютеров. Было время, когда выбор пользователей был ограничен коммерческими операционными системами и приложениями. У пользователей не было возможности исправлять или улучшать эти программы и часто они были вынуждены принимать довольно жесткие лицензионные условия. С появлением GNU/Linux и других систем с открытым кодом все изменилось. Теперь в распоряжении пользователей, администраторов и разработчиков есть бесплатная операционная система с множеством утилит приложений и со всеми исходными текстами.
Большая доля успеха GNU/Linux приходится на открытую природу этой системы. Поскольку исходные тексты программ общедоступны, любой может принять участие в их разработке, либо путем исправления незначительной ошибки либо путем распространения целого приложения. Это подвигло тысячи разработчиков во всем мире на создание новых программных компонентов и улучшение операционной системы до такой степени, что она сравнялась по своим возможностям с любой коммерческой ОС. В дистрибутивы Linux входят тысячи программ и приложений.
Своим успехом ОС Linux обязана также философии UNIX, Многие программные компоненты. появившиеся в AT&T UNIX и BSD UNIX, продолжили свое существование в Linux и заложили основу для написания новых программ. Философия UNIX, заключающаяся в организации взаимодействия множества небольших утилит командной строки, является главным принципом организации ОС Linux, делающим эту систему столь мощной. Даже когда программы оснащены пользовательским интерфейсом, лежащие в их основе команды доступны для написания сценариев автоматизации. Множество сложных задач можно решить, объединяя существующие команды и программы в простых сценариях.
Операционная система Linux названа в честь Линуса Торвальдса, ее автора и создателя ядра системы. Ядро — это программа, которая выполняет основные функции операционной системы. Оно взаимодействует с аппаратными устройствами, выделяет память и другие ресурсы, позволяет нескольким программам работать одновременно, управляет файловыми системами и т.д.
Ядро само по себе не располагает средствами взаимодействия с пользователями. Оно не может выдать даже простую строку приглашения на ввод команд. Ядро не позволяет пользователям редактировать файлы, взаимодействовать с другими компьютерами или писать программы. Для решения всех этих задач требуется большое число других программ, включая интерпретаторы команд, редакторы и компиляторы. Многие из этих программ пользуются библиотеками функций общего назначения, не включенными в ядро.
В системах GNU/Linux большинство таких программ разработано в рамках проекта GNU.[1] Многие из них были написаны раньше чем появилось ядро Linux. Цель проекта GNU — «создание полноценной операционной системы наподобие UNIX оснащенной бесплатным программным обеспечением» (цитата с Web-узла www.gnu.org).
Ядро Linux и GNU программы составляют очень мощную комбинацию которую чаще всего называют просто «Linux». Но без GNU-программ система не будет работать, как и без ядра. Поэтому во многих случаях мы говорим GNU/Linux.
Общая лицензия GNU
Исходные тексты программ, приведенные в этой книге, распространяются на условиях общей лицензии GNU (GPL, GNU General Public License), которая приведена в приложении Е, «Общая лицензия GNU». Таким же способом лицензируется большинство бесплатных программ, особенно в рамках GNU/Linux, например ядро системы. Прежде чем использовать представленные исходные тексты, ознакомьтесь с условиями данной лицензии.
Общая лицензия GNU обсуждается на Web-узле www.gnu.org/copyleft наряду с другими лицензиями на бесплатное распространение программного обеспечения. Найти информацию о лицензиях на распространение программ с открытым кодом можно по адресу http://www.opensourсе.org/licenses/index.html.
Для кого предназначена эта книга
Эта книга предназначена для трех категорий читателей.
■ Возможно, наш читатель является разработчиком, имеющим опыт создания программ для GNU/Linux и стремящимся узнать о более сложных возможностях и особенностях системы. Таких читателей заинтересуют главы, посвященные программированию процессов и потоков, а также межзадачному программированию и взаимодействию с аппаратными устройствами. Мы поможем им сделать свои программы быстрее, надежнее и безопаснее.
■ Возможно, наш читатель является разработчиком, имеющим опыт программирования для другой UNIX-системы и желающим создавать программы для GNU/Linux. Такой читатель уже знаком со стандартными API-функциями, и ему нужно узнать об особенностях системы, ее ограничениях, дополнительных возможностях и специфических соглашениях.
Источник
Нейл Мэтью — Основы программирования в Linux
99 Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания.
Скачивание начинается. Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Описание книги «Основы программирования в Linux»
Описание и краткое содержание «Основы программирования в Linux» читать бесплатно онлайн.
В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стандартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым.
Для начинающих Linux-программистов
Основы программирования в Linux
Нейл Мэтью (Neil Matthew) интересуется компьютерами и пишет для них программы с 1974 г. Выпускник университета г. Ноттингема по специальности «Математика», Нейл по-настоящему увлекается языками программирования и любит искать новые пути решения компьютерных проблем. Им разработаны системы программирования на языках BCPL, FP (Functional programming), Lisp, Prolog и структурированном BASIC. Он даже написал эмулятор микропроцессора 6502 для выполнения в системах UNIX программ для микрокомпьютера ВВС.
Что касается опыта работы в UNIX, начиная с конца 1970 гг., Нейл испробовал все варианты, включая BSD UNIX, AT&T System V, Sun Solaris, IBM AIX, многие другие и, конечно, Linux. Он может утверждать, что занимается ОС Linux с августа 1993 г., когда обзавелся дистрибутивом из Канады Software Landing (SLS) на дискетах с версией ядра 0.99.11. Он применял компьютеры на базе Linux дома и на работе для осваивания языков С, С++, Icon, Prolog, Tcl и Java.
Все «домашние» проекты Нейла разработаны на базе Linux. Он утверждает, что Linux гораздо проще, поскольку поддерживает множество функциональных возможностей других систем, поэтому программы, предназначенные для систем BSD и System V, как правило, компилируются с небольшими изменениями или вообще без каких-либо изменений.
Сейчас Нейл работает в компании Celesio AG как архитектор ПО компании (Enterprise Architect), специализирующийся на разработке стратегии информационных технологий. У него есть профессиональный опыт технического консультирования, разработки программного обеспечения и контроля качества. Нейл также писал программы на языках С и С++ для встроенных систем реального времени.
Нейл женат на Кристине, у них двое детей, Александра и Адриан. Он живет в перестроенном амбаре (barn) в графстве Нортгемптоншир в Англии. К его любимым занятиям относятся решение головоломок на компьютере, музыка, научная фантастика, сквош и горный велосипед, только не подражайте ему в этом последнем.
Ричард Стоунс (Richard Stones) начал программировать в школе (раньше, чем он может вспомнить) на микрокомпьютере ВВС, оснащенном микропроцессором 6502, который с помощью нескольких запчастей продолжал функционировать следующие 15 лет. Он закончил университет г. Ноттингема по специальности «Электроника», но решил, что программное обеспечение увлекательнее.
Он работал в разных компаниях, начиная от очень маленьких с десятком сотрудников и заканчивая очень большой, включая гиганта IT-сервисов, компанию EDS.
В эти годы он занимался рядом проектов, будь то коммуникации в режиме реального времени для систем бухгалтерского учета или большие справочные настольные системы. В настоящее время Рик работает архитектором информационных технологий, действуя как технический руководитель разных крупных проектов в большой панъевропейской компании.
Будучи отчасти лингвистом в программировании он писал программы на разных ассемблерах, на чистом, патентованном языке телекоммуникаций, названном SL-1, нескольких диалектах языка FORTRAN, языках Pascal, Perl, SQL и чуть-чуть на Python, С++ и С. (Под давлением он даже признался, что одно время считался не без оснований специалистом в Visual Basic, но старается не афишировать это временное помрачение рассудка.)
Рик живет в деревне графства Лестершир в Англии с женой Анной, детьми Дженнифер и Эндрю и кошкой. В свободное от работы время он увлекается классической музыкой, особенно старинной духовной музыкой, и фотографией и прилагает максимум усилий, чтобы найти время для игры на пианино.
Авторы хотели бы поблагодарить многих людей, помогавших сделать возможным издание книги.
Нейл хотел бы поблагодарить свою жену Кристину за понимание и своих детей Александру и Адриана, не слишком жаловавшихся на то, что отец проводит так много времени в своем кабинете, занимаясь писательством.
Рик благодарен своей жене Анне и своим детям, Дженнифер и Эндрю за их долготерпение по вечерам и в выходные дни, когда отец опять и опять принимался за работу над книгой.
Мы хотели бы выразить признательность сотрудникам издательства Wiley, которые помогли подготовить это четвертое издание к печати. Спасибо Кэрол Лонг (Carol Long) за запуск этого процесса и улаживание проблем, связанных с контрактами, особая благодарность Cape Шлаер (Sara Shlaer) за исключительную редакторскую работу и Тимоти Борончику (Timothy Boronczyk) за отличные технические рецензии, Мы также хотим поблагодарить Дженни Ватсон (Jenny Watson) за поиск средств для оплаты неожиданно возникавших дополнительных расходов и сопровождение книги на всех административных уровнях, Биллу Бартону (Bill Barton) за обеспечение надлежащих организации и презентации и Киму Коферу (Kim Cofer) за тщательную корректуру. Мы также очень признательны Эрику Фостеру-Джонсону (Eric Foster-Johnson) за его фантастическую работу над главами 16 и 17. Мы можем сказать, что благодаря стараниям всех вас книга стала лучше.
Мы также хотели бы поблагодарить наших работодателей, компании Scientific Generics, Mobicom и Celesio за поддержку во время подготовки всех четырех изданий книги.
В заключение нам хотелось бы выразить глубокую признательность двум важнейшим инициаторам, сделавшим возможным появление книги. Во-первых, Ричарду Столлмену (Richard Stallman) за отличные средства проекта GNU и идею среды со свободно распространяемым программным обеспечением, ставшей в наши дни реальностью благодаря GNU/Linux, и во-вторых, Линусу Торвальдсу (Linus Torvalds) за начатую и продолженную им совместную разработку, которая дает нам все улучшающееся ядро системы Linux.
У всех программистов есть своя груда записей и черновиков. Они собирают собственные примеры текстов программ, накопившиеся за время героических погружений в многочисленные руководства или добытые из сети Usenet, в которой порой даже дураки боятся блуждать. (Другая точка зрения состоит в том, что у всех дураков свободный доступ к Usenet, и они используют ее безостановочно.) Поэтому довольно странно, что так мало книг выпущено в подобном стиле. В интерактивном мире существует множество коротких документов, касающихся конкретных проблем программирования и администрирования по существу. В рамках проекта по созданию документации Linux выпущено множество документов, посвященных самым разным темам, начиная с установки ОС Linux и Windows на одной машине и заканчивая написанием вашей виртуальной машины Java для Linux. На самом деле, загляните на Web-сайт Linux Documentation Project (проект документации Linux) по адресу http://www.tldp.org.
С другой стороны, книжный мир кажется состоящим в основном из подробных и самых полных научных томов, читать которые у вас нет времени, или книг для новичков, которые вы покупаете в шутку друзьям. Есть очень немного книг, которые пытаются рассмотреть основы целого ряда полезных проблем. Предлагаемая книга — одна из них, это набор расшифрованных (попробуйте прочесть что-нибудь, написанное программистом от руки), отредактированных и собранных в логически оправданную структуру заметок и черновиков программистов.
Данное издание книги было проверено и исправлено в соответствии с современным уровнем разработок в ОС Linux.
Алан Кокс (Alan Сох)
Введение
Рады предложить вам легкое в использовании руководство по разработке программ для Linux и других UNIX-подобных операционных систем.
В этой книге мы стремимся дать вам представление о разнообразных понятиях, важных для разработчика, применяющего систему Linux, так сказать, основы. Слово «основы» скорее относится к ее содержимому, чем к уровню подготовки читателя. Мы построили книгу так, чтобы, несмотря на уже приобретенный вами опыт, вы узнали больше о том, что может предложить Linux. Программирование в ОС Linux — обширная область, и мы стараемся представить достаточно сведений, касающихся различных тем, чтобы дать вам прочные «основы» для усвоения каждой из них.
Для кого эта книга?
Если вы программист, стремящийся повысить квалификацию за счет функциональных возможностей, предлагаемых разработчикам Linux (или UNIX), уделить больше внимания программированию и расширить применение ваших приложений в системе Linux, вы выбрали нужную книгу. Понятные объяснения и практический на основе пошаговых проверок подход поможет вам быстро повысить профессиональный уровень и освоить все ключевые методы.
Мы полагаем, что у вас есть некоторый опыт программирования на языках С и/или С++ в ОС Windows или какой-нибудь другой операционной системе, но мы старались сохранить простоту приведенных в книге примеров, чтобы для их понимания не требовалось слишком высокой квалификации в программировании на С. Все явные сопоставления методов программирования в Linux с приемами программирования на языках C/C++ отмечены в тексте книги.
Похожие книги на «Основы программирования в Linux»
Книги похожие на «Основы программирования в Linux» читать онлайн или скачать бесплатно полные версии.
Источник