Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > хочу заниматься системным программированием


Автор: sys 8.11.2005, 14:57
Всем привет! У меня вот какой вопрос. Уже продолжительное время я изучаю С++ ,скоро полностью освою его синтаксис. В связи с этим вопрос , что учить дальше? Наверно АПИ - посоветуйте по нему какую-нибудь книжку, те что лежат в литературе мне не понравились. Но дело в том что я хочу заниматься системным программированием , а для этого АПИ по моему мало. Где прочитать как работать с системой , сетью , железом , ресурсами и т.д. Посоветуйте какие-нибудь книги

Автор: srd 8.11.2005, 15:37
WinAPI - это прикладной интерфейс, никакого отношения к системному программированию smile
По поводу литературы - можешь почитать Таненбаума, например.

Автор: Guest 8.11.2005, 15:50
А как называется книга этого самого Таненбаума?
Да и ещё один вопрос , если АПИ здесь не причём , то как тогда работать с системой и всем остальным через какой интерфейс?

Автор: Neitron 8.11.2005, 16:07
Ха смотря где работать.
Если в винде, есть два уровня работы программ. Нулевое и третье кольцо.
В третьем кольце системный программированием заниматься особо не получится, если только через АПИ интерфейс, так как у него есть некоторый базовый набор работы с системой.
Или работать в нулевом кольце можно, но в нулевом кольце АПИ недоступно, и на нем рулит ассемблер.

Автор: srd 8.11.2005, 16:12
Цитата(Guest @ 8.11.2005, 22:50)
А как называется книга этого самого Таненбаума?

Операционные системы: разработка и реализация.


Автор: Guest 8.11.2005, 16:47
А разве ХР пускает в нулевое кольцо?

Автор: sys 8.11.2005, 17:35
"Операционные системы: разработка и реализация"
А причём тут это , я же не собираюсь разрабатывать операционные системы

Автор: srd 8.11.2005, 17:54
Если "разрабатывать операционные системы", то надорваться можно. Но это одна из лучших книг, посвящённых системному программированию. А как ты будешь применять полученные знания, это уже тебе решать. Или в твоём понимании книга по "системному прогрммированию" - это букварь по ассемблеру с примерами вида "как перемножить две матрицы"?

Автор: Neitron 9.11.2005, 10:29
Цитата(Guest @ 8.11.2005, 16:47)
А разве ХР пускает в нулевое кольцо?

А драйвера где по твоему работают?

Автор: sys 9.11.2005, 11:07
Неужели тут больше нет системщиков? Посоветуйте ещё какие-нибудь книги!

Автор: Mayk 9.11.2005, 11:59
Неужели ты уже прочитал
Цитата(sys @ 8.11.2005, 21:35)
"Операционные системы: разработка и реализация"

?
В конце концов зайди на озон и введи в строку поиска "системное программирование" smile

Автор: rsm 9.11.2005, 12:25
Цитата(sys @ 9.11.2005, 13:07)
Неужели тут больше нет системщиков?

Только я и Рабинович, больше никого smile Невыгодное это дело, нету сейчас спроса на системщиков smile Гораздо прибыльнее лабать что-нибудь на скорую руку на Бацике, Дельфи или C#.
С книгами по системному кодингу большой напряг, приходится фильтровать и отбирать из кучи книг нужную инфу. Определись с каким конкретно направлением ты хочешь работать: безопасность (локальная и сетевая), работа с железом (например программы для управления разделами винта), работа с сетью или что-то иное? Как определишься - пиши, постараюсь подсказать литературу.

Автор: sys 9.11.2005, 20:28
Цитата
"Определись с каким конкретно направлением ты хочешь работать: безопасность (локальная и сетевая), работа с железом (например программы для управления разделами винта), работа с сетью или что-то иное? Как определишься - пиши, постараюсь подсказать литературу."


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

Цитата
Гораздо прибыльнее лабать что-нибудь на скорую руку на Бацике, Дельфи или C#.

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

Автор: Fixin 9.11.2005, 20:51
Если хочешь Windows API учить - возьми что-нить завязанное на GUI, например, Чарльз Калверт "Программирование в Windows 95" и не пугайся числа 95. Более близкое к системному API написано в книгу Джонсона М. Харта "Системное программирование в среде Windows" - там и сеть, и железо, и безопасность, и потоки, и файлы, и даже Win64. Вот.

Автор: Dmitriy2k 10.11.2005, 00:44
Вот довольно старая книженка, но для начального изучения API пойдет
Румянцев П.В. Азбука программирования в Win32 API

Автор: bel_nikita 10.11.2005, 01:01
Что бы заниматься системным программированием нужно знать, представлять, как устроена система, как она работает, как работает железо и др. Т.е. нужно представлять систему вцелом, а не отдельные API. API - это лишь аппликационный интерфейс, и вот за этим API(или по-другому под ним) и находится системное программирование

Автор: chipset 10.11.2005, 02:01
Цитата(Fixin @ 9.11.2005, 10:51)
Более близкое к системному API написано в книгу Джонсона М. Харта "Системное программирование в среде Windows" - там и сеть, и железо, и безопасность, и потоки, и файлы, и даже Win64. Вот.

Рулит! Только про железо я там не помню ^)
А ещё все конечно забыли старика Рихтера.

Автор: Neitron 10.11.2005, 13:44
Старик Рихтер Рулит, на мой взгялд бестселлер как и Страуструп.

Автор: rsm 10.11.2005, 20:56
Цитата(sys @ 9.11.2005, 22:28)
больше всего интересует железо , вирусные и антивирусные технологии и сеть

Очень старался, но так и не смог разделить книги по названным областям smile Как я уже говорил ранее, книги по системному кодингу очень сложно поделить на конкретные области. Потому что в каждой книге есть кусочек - оттуда, кусочек - отсюда и т.д., информацию собираешь по частям. Посему единственным выходом полагаю прочтение перечисленных книг - только после этого удастся собрать более-менее полную информацию.

Петцольд, "Код". Книга о том, как устроен и работает комп.

Таненбаум, "Архитектура компа". Аналогично первому, но на более высоком уровне абстракции.

Гук, "Аппаратные интерфейсы ПК". Хорошее дополнение к предыдущей книге (устройство компа рассматривается с иной точки зрения).

Таненбаум, "Современные операционные системы". Теоретическая база по созданию ОС.

Рихтер, "Windows для профессионалов: создание программ ...". Базовые понятия о функционировании ОСи на уровне API.

Соломон, Руссинович "Внутреннее устройство Windows 2000, ХР, 2003". Более углубленное описание устройства ОСей.

Фрид, "Элементарное введение в абстрактную алгебру". Если с высшей математикой все отлично, эту книгу можно не читать.

Alfred J. Menezes, "Handbook of Applied Cryptography". Базовые знания о криптографии, написано доступно и ясно.

Таненбаум, "Операционные системы: разработка и реализация".

Солдатов, "Программирование драйверов Windows".

Гук, "Шины PCI, USB и FireWire".

Morgan-Kaufman, "Linkers and Loaders". Уникальная книга о том, как устроен и работает загрузчик исполняемых файлов.

Сборник "Undocumented Functions for Microsoft Windows NT/2000".

Сборник "Some OSR articles". Статьи по внутреннему устройству Windows.

Winfried Kalfa, "Windows NT. Realizing models and principals". Статьи по внутреннему устройству Windows.

Сборник "INTRO (для исследователей NT)". Статьи по внутреннему устройству Windows.

MS Windows DDK. Заголовочные файлы, средства разработки и документация.

Walter Oney, "Programming the MS Windows Driver Model". Программирование драйверов.

По созданию вирусов и антивирусов есть только статьи. По сетям к сожалению не посоветую ничего, т.к. этой темой никогда не занимался (ну не нравится она мне).

Часть перечисленных материалов можно взять http://www.wasm.ru в разделе документации. Остальное либо покупать в бумажном виде, либо нахаляву искать в электронном виде.

Вообще, делай стартовой страницей главный сайт всех системных программистов, великий и ужасный http://www.wasm.ru. Там ты найдешь огромное количество статей по всем интересующим (и не интересующим) разделам.

З.Ы. Плюс к этой литературе разумеется нужно уверенное знание Ассемблера и Си. По Ассемблеру рекомендую книгу Ирвина "Язык Ассемблера для процессоров Intel" - она написана очень подробно и доступно. По Си можно взять либо классических Кернигана с Ритчи, либо Дейтелов, "Язык программирования Си".

Автор: sys 10.11.2005, 23:12
Блин , да ты просто золотой человек! Спасибо огромное! Очень ценный список. Буду потихоньку искать литературу.
Единственное что вызвало некоторое сомнение , так это
"Операционные системы: разработка и реализация". Скачал оглавление к ней , так там половина книги про MINIX , кому нужна эта операционка непонятно. Да же если он берёт её как элементарную , не легче было ли взять Linux первых версий?
Цитата
  По Ассемблеру рекомендую книгу Ирвина "Язык Ассемблера для процессоров Intel"

Уже наверное полгода ищу эту книгу , с тех пор как прочитал Зубкова и ничего не понял. Ты не знаешь её скан вообще есть в сети?

Автор: rsm 11.11.2005, 08:35
Цитата(sys @ 11.11.2005, 01:12)
Единственное что вызвало некоторое сомнение , так это
"Операционные системы: разработка и реализация"

Поясню: теория без практики - это неправильно. Поэтому лучше всего сперва прочесть книгу по голимой теории, а потом посмотреть, как это все реализуется на практике.

Цитата(sys @ 11.11.2005, 01:12)
не легче было ли взять Linux первых версий?

Тут причин много. Начиная с той, что первая версия Linux более сложная и объемая, заканчивая тем, что Таненбауму Linux в момент ее выхода вообще категорически не понравилась.

Цитата(sys @ 11.11.2005, 01:12)
Ты не знаешь её скан вообще есть в сети?

Скорее всего нет. ИМХО за такую прекрасную книгу можно и заплатить - стоит она, конечно, изрядно (покупал за 506 руб.), но она того стоит.

Автор: sys 11.11.2005, 10:45
Ты конечно извини за настырность , если нет , так нет , но не мог бы ты её отсканить за деньги? Нет , я не жмот , просто денег у меня в обрез, а так и мне подешевле и ты не в накладе. Вышлю по Western Union

Автор: nikitao 11.11.2005, 20:38
[offtopic]
Цитата(rsm @ 10.11.2005, 21:56)
Рихтер, "Windows для профессионалов: создание программ ...". Базовые понятия о функционировании ОСи на уровне API

Ребята,много о ней слышал(еще как только на форум пришел),но так и не купил.Каким уровнем познания нужно облодать что бы ее понять?В смысле она написана уже для системщиков(которые хотят повысить квалификацию) или просто для програмистов(любительского уровня),хотящих освоить програмирование под Windows?smileЗарание спасибочки.
[/offtopic]

Автор: rsm 11.11.2005, 22:05
Цитата(sys @ 11.11.2005, 12:45)
не мог бы ты её отсканить за деньги?

Звиняй, но с этим ничем помочь не могу:
1. У меня модем, я просто не в состоянии закачать куда-либо файл размером более 5 Мб. Скачать - могу, потому как поддерживается докачка.
2. Сканер очень паршивый, а книжка - очень толстая. Поэтому на развороте ничего не отсканируется.
3. На обработку полученного материала нужно много времени, которого у меня нет. Я даже на форум вылезаю только вечером минут на 30.
4. Чисто идеологически я против такого метода распространения книг. Книга - это огромный труд. Хорошая книга - тем более! И просто так взять и слить ее практически нахаляву это категорически неправильно. Сам я качаю электронные версии исключительно в целях ознакомления и потом всегда покупаю бумажный экземпляр. Исключение составляют лишь книги, которые попросту невозможно купить в бумажном виде по причине того, что они уже давно не издаются. Попробуй например найти книгу Петцольда "Программирование для Windows 95" в книжном магазине.
Коли хочешь заниматься данной темой - будь готов к соответствующим затратам времени и денег, ведь нахаляву не дается ничего.

Цитата(nikitao @ 11.11.2005, 22:38)
Каким уровнем познания нужно облодать что бы ее понять?

Знанием языка программирования Си нужно обладать. Как пишет сам Рихтер, это книга для всех желающих освоить программирование под Windows.

Автор: Guest 11.11.2005, 22:09
rsm , ещё раз спасибо за помощь , хотел спросить Рихтер, "Windows для профессионалов: создание программ ..." -это Jeffrey Richter. Programming Applications for Microsoft Windows ?
И какое твоё мнение о книге Раджива Нагара Windows NT File System Internals?

Автор: nikitao 11.11.2005, 23:23
Цитата(rsm @ 11.11.2005, 23:05)
Знанием языка программирования Си нужно обладать. Как пишет сам Рихтер, это книга для всех желающих освоить программирование под Windows.

Ага,понятно,значит мне подходит.Спасибо.Куплю как нибудь,когда с MFC разбирусь.

Автор: rsm 12.11.2005, 00:14
Цитата(Guest @ 12.11.2005, 00:09)
это Jeffrey Richter. Programming Applications for Microsoft Windows

Он самый.

Цитата(Guest @ 12.11.2005, 00:09)
Windows NT File System Internals

Ничего определенного не скажу, т.к. подробным устройством файловых систем не интересовался smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)