LINUX.ORG.RU

Системное программирования.

 , ,


4

5

Только знакомлюсь с системный программированиям в среде Линукс. Сейчас читаю книжку Роберта Лав «Системное программирования» (1 издания Питер 2008). Знаю, что уже есть 2 издания, но пока в интернете оно на анг., а покупать не хочу. ( С английским туго. ) Может у кого есть скан 2 издания?

В этой книжке идется о программировании на Си и соответственно есть проблемы с С++.

Я понимаю, что программист С++ должен знать Си, но ...

Есть какая нибудь хорошая книжка о системном программировании С++? Или лучше книжка, где проводится сравнения системного программирования Си и С++?

Чтобы параллельно ее читать вместе с Робертом Лав.



Последнее исправление: beastie (всего исправлений: 3)

Теренс Чан - Системное программирование на C++ для Unix
Системное программирование на C++ это в первую очередь использование RAII, т.е. написание классов-оболочек aka boost'овские asio или thread. Можешь почитать исходники Haiku.

Shadow1251
()

Теренс Чан - Системное программирование на C++ для Unix. Но в целом, нет смысла смешивать эти темы.

cord
()

С английским туго

Бери переводчик и читай, без английского никак. А нормальных переводчиков единицы, остальных хочется либо избить, либо расстрелять.

timuaz
()

Есть какая нибудь хорошая книжка о системном программировании С++

Крайне полезно. Мы берём кресты и пишем - либо говно, либо выкидываем всё то, ради чего мы брали кресты, чтобы не писать говно. Дак в чем смысл брать кресты?

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

У Страуструппа (на его сайте(на викепедиях без тура)) 4 актуальных кодекса: тур, pl, принципыПрактика,философия.

Выбирай адекватное(будь честен) себе и вперёд

anonymous
()

Я понимаю, что программист С++ должен знать Си

если допустить, что «программист С++» знает С++, то отсюда будет следовать, что он знает Си

MyTrooName ★★★★★
()

Я понимаю, что программист С++ должен знать Си

Очень жаль, что таких людей как ты, очень мало.

sT331h0rs3 ★★★★★
()
Ответ на: комментарий от kim-roader

Прошу прощения, использовать пространство имён вместо функций? Использовать std вместо std::printf?

Ну хочешь скажу так: Использовать операторы ввода-вывода (cout и cin) пространства имен std вместо сверлящих мозг printf и scanf.

Ну все поняли же, че переспрашивать то?

Silencer
()

ООП для свистоперделок нужно. Ему в системном программировании места нет. Зачем излишнее усложнение?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Silencer

Ну хочешь скажу так: Использовать операторы ввода-вывода (cout и cin) пространства имен std вместо сверлящих мозг printf и scanf.

Ну все поняли же, че переспрашивать то?

сверлящие тебе мозг printf и scanf находятся в том же самом пространстве std. Постарайся понять как ты должен был правильно написать, если хотел сказать про потоковый ввод/вывод.

kim-roader ★★
()
Ответ на: комментарий от Eddy_Em

ООП для свистоперделок нужно. Ему в системном программировании места нет. Зачем излишнее усложнение?

Муа-ха-ха. Линуксовое ядро — не системное программирование?

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

Постарайся понять как ты должен был правильно написать, если хотел сказать про потоковый ввод/вывод.

А ты зануда ...

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

ООП для свистоперделок нужно. Ему в системном программировании места нет

Расскажи это линуксовой VFS, которая объектно-ориентированная по самое небалуйся.

Gvidon ★★★★
()

по-моему, не надо смешивать С++ и системное программирование. это вещи хотя и отчасти совместимые, но это не С++, а извращение, по сути. некоторые системы позволяют писать системные модули на С++, если соблюдать бла-бла-бла (стопицот требований и ограничений). наверное, если очень заморочиться, можно любой бинарник, написанный почти на любом языке, прикрутить к ядру, но нужно ли оно?

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

это вещи хотя и отчасти совместимые, но это не С++, а извращение

Вот с этого места поподробнее, пожалуйста. В чём именно состоит «извращение»?

Gvidon ★★★★
()
Ответ на: комментарий от Iron_Bug

Почему я не могу, к примеру, написать на С++ сервер? Каким требованиям не удовлетворяет C++, а С удовлетворяет?

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

он про kobject и тутти кванти. это ООП. В С++ классы, тоже по-сути структуры.

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

Да не только VFS, а также драйверы, сетевой стек (там даже наследование используется).

Begemoth ★★★★★
()
Ответ на: комментарий от Iron_Bug

Programming: Principles and Practice Using C++ за авторством Страуструпа содержит главу «embedded system programming». Тащемта учит не быть СЗЗБ при программировании низкоуровщины на крестах.
Требования и ограничения носят общий характер не зависимо от языка. Ограничения на конкретный язык можно пересчитать по пальцам.

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

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

поэтому это не С++, а какой-то очень кастрированный вариант, в котором довольно легко наступить на грабли.

Iron_Bug ★★★★★
()
Ответ на: комментарий от NegatiV

да можете, можете.

просто «сервер» - это не системное программирование, так-то. по определению. всю часть, которая внутри ядра (если таковая у данного сервера вообще имеется), скорее всего придётся писать на С. это просто удобнее.

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

Сервер серверу рознь: один веб-страницы с котятами отдает, а другой коммутацию осуществляет и с железом общается.

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

Системное программирование != ядро Linux. К тому же, сишной стандартной библиотеки там тоже нет, может и С — извращение?

Gvidon ★★★★
()

С английским туго.

С русским-то у тебя тоже не все в порядке.

anonymous
()

Я понимаю, что программист С++ должен знать Си

okay

umren ★★★★★
()

До чего дошёл прогресс. Системное программирование нужно, спрюс-сплюс нужен, а С ненужен. Это эпик ліл ящитаю. Плюсану Эди.

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

Твоё колдунство неправильное. Надо так: if (malloc(...) != NULL) ... ну ты понял.

nanoolinux ★★★★
()
Ответ на: комментарий от tailgunner

Ассемлер - устаревшее говно. Фксдъ. Перечитай это несколько раз и может быть до тебя дойдёт в чём же ты заблуждаешься.

nanoolinux ★★★★
()

я не говорю о надстройке ООП над сис. программированиям.

Я говорю о том, что функции, которые дает Си и С++ немного отличаются.

Например: strerror - одна функции, в разных инклудах.

xensk
() автор топика
Ответ на: комментарий от nanoolinux

Воть я сейчас сижу смотрю в окно (дождик идёт) и думаю: вот нафехуа страдать обработкой ексепшинов в обработчике прерываний от юарта? Как мне может пригодиться раии если у меня стека 2 с половиной байта? Вы просто все укуреные тут.

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

Си - устаревшее говно.

Ассемлер - устаревшее говно. Фксдъ.

Казалось бы, причем ассемблер к разговору о ЯВУ.

Перечитай это несколько раз и может быть до тебя дойдёт в чём же ты заблуждаешься.

Я не заблуждаюсь, а просто знаю гораздо больше среднего Си-дрочера.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

а просто знаю гораздо больше среднего Си-дрочера.

Но согласись уже, рядом с Царем ты просто сявка.

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

Си - устаревшее говно.

такую херню могут сморозить разве что идиоты, которые embedded пишут на питоне.

Учи матчасть, сынок. В жизни пригодится.

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