Вопрос

Я хотел попасть в системы программирования для Linux и хотел узнать, как подойдет к этому и с чего начать. Я пришел с фона веб-разработки (Python, PHP), но я также знаю некоторые C и C ++.

По сути, я хотел бы знать:

  1. Какой язык (ы) учиться и преследуют (я думаю, в основном C и C ++)?
  2. Как / Где узнать эти языки, характерные для системных программиров? Книги, сайты, блоги, учебники и т. Д.
  3. Любые другие хорошие места, где я могу начать это из оснований?
  4. Любые хорошие библиотеки для начала?
  5. Какую настройку окружающей среды (или ок.) Мне нужно? Предполагая, что Linux должен быть там, но у меня есть поле Linux, которую я редко вошел в используемый GUI (всегда использовать SSH). GUI намного более полезным или редактором VI достаточно? (Пожалуйста, дайте мне знать, если эта часть вопроса должна идти на ServerFault.com)

PS: Просто чтобы уточнить, по системным программированию я имею в виду такие вещи, как писать драйверы устройства, системные инструменты, пишут собственные приложения, которые нет на платформе Linux, но находятся на других, играют с ядром Linux и т. Д.

Это было полезно?

Решение

Если вы играете с ядром, вы должны использовать C. Есть несколько книг, таких как необходимые драйверы устройств Linux, которые дают вам основы структур, где для запуска вашего кода и т. Д.

В общем, многие серверы написаны в C, а иногда и C ++. Популярные библиотеки включают Glib, LibEvent, Boost (для C ++).

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

Другие советы

Чтобы действительно попасть в систему Linux System, я говорю в сборке C и X86.

Для приложений Linux поддерживает множество языков, Python, C ++, Fortran, Perl и т. Д., поэтому выбрать, какой из них вы хотите использовать.

Ваш вопрос довольно широкий. «Нативные приложения, которые не присутствуют на Linux», охватывает такие вещи, как Office Suites, которые я не рассматриваю системное программирование. Я бы сосредоточился на одном (скажи драйверов устройств) в AA Time. Есть много существующих вопросов об этом, в том числе Книга программирования Linux, Какая IDE будет хорош для разработки драйвера ядра Linux, Есть ли рекомендуемые учебные пособия для записи драйверов для GNU / Linux?, а такжеUbuntu Linux, какие языки программирования я должен учиться?.

Для изучения C89 я бы определенно углубился в Язык программирования C (2-е издание).

Нано - мой любимый редактор. VI тоже приятно. Я не принял время, чтобы узнать его, но оба могут помочь в вашем опыте программирования. ONCES Он сводится к сложным ошибкам в коде, устанавливает диск SSH, а затем удаленно открыть файлы с любимой программой GUI.

Большая часть системного программирования выполняется в C, как уже упоминалось здесь. Некоторые из хороших книг, которые вам нужно обойтись, чтобы понять мышление, а праведный Unix / Linux способ делать вещи, будет «искусством программирования Unix» Eric Raymond, а также «Расширенное программирование в среде Unix» Richard Stevens. Есть несколько новых книг на рынке, такие как Robert Love Book «Программирование системы Linux», а также «Интерфейс программирования Linux», они UP2date, однако они не обсуждают первоначальные принципы и мысли, такие как те, которые я упоминал ранее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top