Программирование системы Linux [Закрыто
-
04-10-2019 - |
Вопрос
Я хотел попасть в системы программирования для Linux и хотел узнать, как подойдет к этому и с чего начать. Я пришел с фона веб-разработки (Python, PHP), но я также знаю некоторые C и C ++.
По сути, я хотел бы знать:
- Какой язык (ы) учиться и преследуют (я думаю, в основном C и C ++)?
- Как / Где узнать эти языки, характерные для системных программиров? Книги, сайты, блоги, учебники и т. Д.
- Любые другие хорошие места, где я могу начать это из оснований?
- Любые хорошие библиотеки для начала?
- Какую настройку окружающей среды (или ок.) Мне нужно? Предполагая, что 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, однако они не обсуждают первоначальные принципы и мысли, такие как те, которые я упоминал ранее.