перевод книги "Введение в мир программирования"

Здесь будут размещаться ссылки и отзывы на интересные публикации по Linux

Модераторы: Olej, vikos

Правила форума
Запрещается помещать сообщения, не имеющие отношения к обсуждаемой статье. Все такие сообщения будут удаляться непосредствено после обнаружения.
Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

перевод книги "Введение в мир программирования"

Непрочитанное сообщение Olej » 28 дек 2011, 21:09

Такой перевод заявлен на титульной странице:
26.12.2011 Владимир Царьков приступил к переводу книги "Programming from the Ground Up" Джонатана Бартлета (Jonathan Bartlett) - одной из лучших работ, посвящённых вопросам создания программ на языке ассемблера для персональных компьютеров.
Это интересно и актуально.
Особенно вот поэтому:
по заявлению переводчика, он будет "дополнительно комментировать некоторые технические вопросы, чтобы Вам, дорогой читатель, было интереснее и приятнее изучать принципы работы современного аппаратного и программного обеспечения персональных ЭВМ"
Дополнительно комментировать нужно, потому как практически все заявленные по ассемблеру книжки страдают а). поверхностностью + б). неточностями.
(см. viewtopic.php?f=9&t=1592)
а). нужно дополнять
б). нужно исправлять

Страница публикации заявлена: http://rus-linux.net/MyLDP/BOOKS/progra ... index.html


Я бы посоветовал переводчику сверяться по-ходу с вот такой книжкой :
Зубков С.В. "Assembler для DOS, Windows и UNIX", М.: "ДМК Пресс", 2000

И ещё заглядывать вот сюда:
http://rus-linux.net/MyLDP/BOOKS/Moduli ... -3-111.pdf
- хотя бы свериться с постановкой актуальных вопросов в ассемблере.

to ADMIN:
- я попытался добавить это в комментариях на странице перевода, где написано:
Оставить комментарий
- но оно ни фига не добавляет... :evil: :lol:

Admin, как говорит фольклор:
Убрали собаку - уберите и будку
:lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение Olej » 28 дек 2011, 21:17

Olej писал(а): Это интересно и актуально.
По первому впечатлению:
http://rus-linux.net/MyLDP/BOOKS/progra ... 01-02.html
Все примеры программ тестировались в среде Red Hat Linux 8.0 и должны также работать в окружении любого другого GNU/Linux дистрибутива. Под дистрибутивом GNU/Linux имеется в виду набор программ для процессоров x86. Дистрибутивы для Power Macintosh, DEC Alpha, а также других процессоров, не подходят.
А вот это как раз на сегодня жаль и напрасно :-?
Потому как сейчас, как никогда за предыдущие 30 лет, интересно и актуально как раз в наибольшей мере всё, что выходит за рамки Intel x86, именно другие платформы (ARM, MIPS в первую голову).
В связи с массированным наступлением мобильных и облачных вычислений.

P.S. ... а кто этого ещё не понял ... так подождём всего 1 годок... :lol:
P.P.S. хотя, оригинал книги издавался в 2003г. ... писался ещё раньше - откуда автору было знать? :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение Olej » 28 дек 2011, 21:58

Глянул (скачал) я оригинал книги
http://rus-linux.net/MyLDP/BOOKS/progra ... index.html
Оригинал: Programming from the Ground Up
Автор: Джонатан Бартлет (Jonathan Bartlett),
и по итогам беглого просмотра ... я сильно разочарован :lol:

Книга плохая?
Нет, книга нормальная ... внятно написанная.
Но!
В Linux используется 2 (два) ассемблера:

1. когда ассемблерный код записывается в отдельный файл .S и далее компилируется компилятором as (можно и gcc, но он всё равно для вас вызовет as) в объектный файл; связь с остальными частями программы (системы) только за счёт глобальных внешних имён.

2. когда ассемблерный код вставляется в поток С-кода, компилируется gcc вместе с обрамляющим С-кодом; для связи ассемблерный код использует имена переменных С-кода (это называется инлайновый ассемблер gcc).

Книга описывает 1-й вариант, и это классика, но этого в Linux никто практически не использует! А весь код самой операционной системы Linux "пересыпан" вкраплениями ассемблерных фрагментов по 2-му варианту. А о нём в книге - даже одного слова нет!

Ali
Писатель
Сообщения: 57
Зарегистрирован: 08 окт 2011, 08:00
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение Ali » 29 дек 2011, 01:05

После беглого просмотра оригинала "Programming from the Ground Up" и первых переведенных глав, думаю:
  • Перевод книги будет очень полезным делом.
  • Стиль перевода мне нравится :)
  • Анонс неудачен.
Почему перевод нужен? Дело в том, что сейчас крайне мало книг начального уровня, в которых проведён подход к обучению программированию "снизу-вверх".

Почему анонс неудачен?
...- одной из лучших работ, посвященных вопросам создания программ на языке ассемблера для персональных компьютеров.
Создает завышенные ожидания, т.к. в книге описана очень малая(базовая) часть возможностей доступных из программ, написанных на языке ассемблера(fpu нет, mmx нет, ssex нет....). И это очень расстраивает. Нет, разумеется, и ничего про x86_64, почти вытеснившую i686, да и i686 нет.

Боюсь переводчику придется составить очень много комментариев. ;)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение Olej » 29 дек 2011, 02:41

Ali писал(а): Почему перевод нужен? Дело в том, что сейчас крайне мало книг начального уровня, в которых проведён подход к обучению программированию "снизу-вверх".
Я тоже так считаю.

P.S. to Ali: а не можете ли вы указать (добавить в копилку) что либо более менее обстоятельного по вот этому inline assembler gcc ?

vbt
Интересующийся
Сообщения: 3
Зарегистрирован: 10 янв 2012, 15:08
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение vbt » 10 янв 2012, 17:53

Здравствуйте!

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

С уважением,
Владимир

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение Olej » 10 янв 2012, 19:57

vbt писал(а): Большое спасибо всем за рекомендации и отзывы! Постараюсь их учесть.
При обнаружении ошибок в тексте перевода и моих дополнениях,
прошу сообщать об этом в текущей теме форума.
С удовольствием. ;-)
Но ещё интереснее бы выносить комментарии сюда в обсуждение ещё до их окончательного формирования, потому как могли бы быть и существенные и интересные дополнения, по опыту практического использования ассемблера.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение Olej » 11 янв 2012, 02:46

По опубликованной давеча части:
http://rus-linux.net/MyLDP/BOOKS/progra ... 02-03.html
Глава 2. Архитектура компьютера

1. я бы обязательно добавил в списке "Литература для самообразования" (он ведь не из оригинала переводился? ;-) ), может быть даже добавил 1-й позицией:
- Зубков С.В. "Assembler для DOS, Windows и UNIX", М.: "ДМК Пресс", 2000
Он гораздо больше даёт для ассемблерной конкретики, чем, скажем, витиеватые разлагольствования Э.Таненбаума об архитектурах х86 ... периода ранних 90-х :lol:

2. Это очень упрощённая и очень устаревшая модель.
Это нужно бы как-то отмечать в комментариях:
- то, что давно уже нет, как таковых, регистров ax (или al & ah), а есть eax, а то и rax, в которых где-то там, как составную часть, можно отыскать и al, и ah, и ax...
- то, что существуют регистры управления процессором cr0, cr1, cr2 + другие ... и что они так же доступны из ассемблерного кода, только находиться для этого нужно в режиме супервизора (в кольце 0);
- что "тихой сапой" Intel наворотили огромное множество внутренних регистров MSR (Model Specific Registers), для Pentium IV их уже несколько сот (!), и что без некоторых из них (номера 0х174, 0х175, 0х176) были бы невозможны команды sysenter и sysexit, а эти команды пришли на смену многолетним int 21h & int 80h, через которые производятся все системные вызовы к ОС, и что было связано это с заметной потерей производительности Pentium IV при классическом способе системного вызова, и желанием из коммерческих побуждений эту производительность восстановить любой ценой.

Хотя бы некоторые из таких комментариев нужны к плоской и упрощённой модели процессора "когда Земля была ещё тёпленькая..." :-?

vbt
Интересующийся
Сообщения: 3
Зарегистрирован: 10 янв 2012, 15:08
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение vbt » 17 янв 2012, 11:52

Olej писал(а): 1. я бы обязательно добавил в списке "Литература для самообразования" (он ведь не из оригинала переводился? ;-) ), может быть даже добавил 1-й позицией:
- Зубков С.В. "Assembler для DOS, Windows и UNIX", М.: "ДМК Пресс", 2000
Он гораздо больше даёт для ассемблерной конкретики, чем, скажем, витиеватые разлагольствования Э.Таненбаума об архитектурах х86 ... периода ранних 90-х :lol:
Книга добавлена (с учётом алфавитного порядка следования авторов ;-) ).
Olej писал(а): Это нужно бы как-то отмечать в комментариях:
- то, что давно уже нет, как таковых, регистров ax (или al & ah), а есть eax, а то и rax, в которых где-то там, как составную часть, можно отыскать и al, и ah, и ax...
- то, что существуют регистры управления процессором cr0, cr1, cr2 + другие ... и что они так же доступны из ассемблерного кода, только находиться для этого нужно в режиме супервизора (в кольце 0);
- что "тихой сапой" Intel наворотили огромное множество внутренних регистров MSR (Model Specific Registers), для Pentium IV их уже несколько сот (!), и что без некоторых из них (номера 0х174, 0х175, 0х176) были бы невозможны команды sysenter и sysexit, а эти команды пришли на смену многолетним int 21h & int 80h, через которые производятся все системные вызовы к ОС, и что было связано это с заметной потерей производительности Pentium IV при классическом способе системного вызова, и желанием из коммерческих побуждений эту производительность восстановить любой ценой.

Хотя бы некоторые из таких комментариев нужны к плоской и упрощённой модели процессора "когда Земля была ещё тёпленькая..." :-?
Согласен. У меня есть идея относительно того как можно попробовать сделать более доступным материал о новых технологиях.
Раньше времени не буду говорить, чтобы не быть голословным. Когда подготовлю основу для её реализации на практике - сообщу.
Последний раз редактировалось vbt 17 янв 2012, 12:01, всего редактировалось 1 раз.

vbt
Интересующийся
Сообщения: 3
Зарегистрирован: 10 янв 2012, 15:08
Контактная информация:

Re: перевод книги "Введение в мир программирования"

Непрочитанное сообщение vbt » 17 янв 2012, 12:00

Olej писал(а): С удовольствием. ;-)
Но ещё интереснее бы выносить комментарии сюда в обсуждение ещё до их окончательного формирования, потому как могли бы быть и существенные и интересные дополнения, по опыту практического использования ассемблера.
Текст всегда можно подправить после первичной публикации.
Думаю, так даже будет продуктивнее (будем тратить меньше времени на разговоры). Предлагаю делать следующим образом:
после публикации каждой очередной главы (именно главы, а не раздела) будем устраивать обсуждения по её содержанию
и вносить в текст дополнения. Приглашаю всех желающих принять участие. Что скажете?

Ответить

Вернуться в «Публикации, книги и обсуждения»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя