Ежели именно под линукс, то есть такая книга Programming from ground up.
Я вот тоже игрался с х86 асмом, но потом бросил т.к. 32 скоро умрёт, да и вобще асм под камни от персоналок - имхо банально и резону мало.
Хочется мне какого-нить иного железа, да где его взять и как понять какое уже умерло, а какое перспективно.
В каком это смычле умрет? Ну появились 64 разрядные, ну и что? Во-первый, пока они будут у всех пройдет очень много времени, а во-вторых - там же тежи ригистры остались что и в 32 разрядных, только теперь шина данных не 32, а 64 бита, и регистры стали по 64 бита
О! Флэйм на тему жив ли asm можно считать открытым! А вообще по-ходу про 32 разрядные процы... в рутерах/свичах/фиреволах/автосигнализациях/гаджетах они тоже умрут ? От осознания собственной неполноценности ? Смишнооооо
Асм жив только благодаря идиотским фанатикам, которые считают, что программить на "живом языке" -- это вершина программистского исскуства. Фтопку таких.
> А вообще по-ходу про 32 разрядные процы... в рутерах/свичах/фиреволах/автосигнализациях/гаджетах они тоже умрут ?
Какое это имеет отношение к жизни асма? Это как раз говорит о том, что надо переходить на языки высокого уровня, чтоб сохранялась переносимость.
Не согласен с тобой. Есть разные языки для разных целей.
Невозможно написать все программы, работающие от нажатия кнопки Power
до запуска Window Manager-а. BIOS, загрузчики, участки ядер ОС,
программы, требующие быстродействия - всё пишется на асме. Лично я
вижу деградацию в части программирования: многие проги даже не оптимизированы
на высоком уровне. Создавать большие проекты на асме - это не вершина искусства,
обычно это удовлетворение интереса. А вот использование
асма в циклических участках программ вместо высокоуровневых
языков - это факт, показывающий если не мастерство программера, то хотя бы его
здравомыслие. А вот посылать в биореактор может человек, который
не смыслит в этом деле.
> Невозможно написать все программы, работающие от нажатия кнопки Power до запуска Window Manager-а. BIOS, загрузчики, участки ядер ОС, программы,
Тоже согласен. Но использование асма надо сводить к минимуму.
> требующие быстродействия - всё пишется на асме.
Вот это уже бред. Ради выигрыша в долю секунды горбатится неделю над участком кода, который на нормальном языке можно написать за 10 минут? Нафиг. Не забывай, что компиляторы нынче умные. И переносимоть -- это не шутка, а реальная необходимость. Писать один и тот же код на асмах для всего зоопарка процов некошерно.
> Лично я вижу деградацию в части программирования: многие проги даже не оптимизированы на высоком уровне.
Если программа сложна, то надо перед тем как начать оптимизацию хотя бы написать работающий вариант. Далеко не все программы -- хелловорлды, поэтому деградации тут нет. Скорей даже прогресс, ибо сейчас пишутся программы, о которых ассемблерщики прошлого даже не мечтали.
> Создавать большие проекты на асме - это не вершина искусства, обычно это удовлетворение интереса.
Это тупое распыление сил дебильных фанатиков.
> А вот использование асма в циклических участках программ вместо высокоуровневых языков - это факт, показывающий если не мастерство программера, то хотя бы его здравомыслие.
Опять же, такая оптимизация не даст существенного прироста производительности. Гораздо эффективней разработать алгоритм, использующий меньшее количество итераций.
> А вот посылать в биореактор может человек, который не смыслит в этом деле.
Да ладно тебе. Это то ж по-доброму :) Обидно, что умные люди тратят свои силы впустую.
> Асм жив только благодаря идиотским фанатикам, которые считают, что программить на "живом языке" -- это вершина программистского исскуства. Фтопку таких.
Але дядя... Ты со своими детьми в развивающие игры играешь или сразу с первых шагов "гриндерсы", колючий свитер, теория ядерной физики.
Ассемблер знать надо!
> Какое это имеет отношение к жизни асма? Это как раз говорит о том, что надо переходить на языки высокого уровня, чтоб сохранялась переносимость.
Ага и процы тогда нужны штоп как внутрях полупроводники как плесень прорастали под то что ты наваяешь
> Асм фтопку, ассемблерщиков в биореактор!
А это шедевор! А как ты думаешь (если вообще думаешь) те кто пишут компиляторы и сдк под те или иные процы асма не знают ?
> Обидно, что умные люди тратят свои силы впустую.
А как ты предполагаешь изучение ассемблера не написав на нем ни строчки ? Типа прочитал и забыл ? Никто не зовет писать на ассемблере, но знать его надо.
Кому и зачем? Надо знать 1% программеров, которые занимаются программированием прошивок биосов, ядер ОС и прочей фигней (как мне их жалко. Они герои, им памятники ставить надо). Всем остальнвым знать нафиг не надо.
Насчет компиляторов -- нынче для каждой уважающей себя платформы есть компилятор С, поэтому надо знать не асм, а формат бинарников под конкретную платформу. И то, какой процент программеров занимается написанием компиляторов?
>> Асм фтопку, ассемблерщиков в биореактор!
> А это шедевор! А как ты думаешь (если вообще думаешь) те кто пишут компиляторы и сдк под те или иные процы асма не знают ?
Под ассемблерщиками подразумевались идиоты, которые не пытаются миниминизировать использование асма, мотивируя это, например, "повышением производительность на одну триллионную секунды". Таким место в биореакторе, адназначна!
Написать сложную систему, использующую новейшие достижения мировых наук, интереса не предоставляет? Ресурсы человека ограничены, не стоит их тратить на кодировку. Не стоит.
Я это и не придумывал, читал где-то, мужик достаточно грамотно рассуждал на тему программно - аппаратных прослоек внутри проца. И к концу телеги дал грамотное обоснование, что такие архитектуры найдут применение только в научной деятельности и абсолютно не имеют права на жизнь в промышленности. Поскольку универсализация не есть эффективность.
Ну так дурак твой аффтар. К примеру, никто не мешает вешать FPGA с программатором на графические ускорители. Каждая игрушка перезатачивает ускоритель под себя - и радуется. Думаю, такое решение вполне себе может быть очень массовым.
> Написать сложную систему, использующую новейшие достижения мировых наук, интереса не предоставляет? Ресурсы человека ограничены, не стоит их тратить на кодировку. Не стоит.
Как сказать... у меня например от сложных проектов башка кругом идет, но махонькие мелочи могу "причесать" от и до. Называй это как хочешь: надалекостью/примитивизмом, я так думаю это склад характера.
> Как сказать... у меня например от сложных проектов башка кругом идет, но махонькие мелочи могу "причесать" от и до. Называй это как хочешь: надалекостью/примитивизмом, я так думаю это склад характера.
Надо уметь видеть систему в целом. А это можно сделать только абстрагировавшись от мелочей. Используя асм такое сделать тяжело.
> Думаю, такое решение вполне себе может быть очень массовым.
Может быть... В принципе очень даже может быть... Но тут по-любому очень тонкая системная работа, без знания ассемблера к которой людей подпускать близко не стоит.
> Но тут по-любому очень тонкая системная работа, без знания ассемблера к которой людей подпускать близко не стоит.
Ну во первых, это уже работа не программера. А во вторых, под такие процы наверняка надо будет создавать свой ассемблер, так что знание других может быть полезно только для общего развития, разве что.
Нет, тут ручное кодирование на ассемблере вообще неприменимо - ведь ассемблер для такого железа будет создаваться компилятором - вместе с самим железом. Тут очень суровая математика и огромные вычислительные мощности нужны, а не рукоблудие.
> Я это и так знаю. Но не всегда ты можешь тащить вместе с языком весь рантайм Лиспа.
Почему бы и нет? Если разработка ведется на лиспе, то рантайм в любом случае нужен. А если не на лиспе, то что поделаешь. Надо выбирать язык, который лучше всего подходит для своей задачи.
> Если так хочется круть продемонстрировать для интересу - то пусть на Мелбогии пишут. Или хотя бы на brainfuck-е.
Да никто никому ничего не хочет демонстрировать просто это интересно. И ощущения от того когда что-то получается - как подруге вдул... порою даже и сильнее...
Воид, попытайся немного расширить свой кругозор. Не ограничивай себя лишь системным программированием. Ты ж не дурак вроде бы. Удачное решение большой задачи принесет гораздо больше пользы и удовольствия чем локальное улучшение производительности на долю секунды.
> Тоже согласен. Но использование асма надо сводить к минимуму.
Надо. Но многие понимают это по-другому: начинают прикручивать C++ к ядру или злоупотребляют высокоуровневыми функциями; пишут заведомо ненужные операции. Это уже крайность.
> Опять же, такая оптимизация не даст существенного прироста производительности. Гораздо эффективней разработать алгоритм, использующий меньшее количество итераций.
Согласен, и это ненужная крайность.
А про фанатизм отдельный разговор. У одних людей есть своё увлечение, в котором они хорошо разбираются и занимаются в свободное время. В данном случае они создают программы на ассемблере и получают неплохие результаты. Эти люди не станут никому навязывать своё мнение. Я такие качества уважаю и фанатизмом не считаю, поэтому и назвал это удовлетворением интересов. А другие толком ничего не делают, а начинают кидать неаргументированные реплики, с яростью доказывать свою правоту и обходить стороной недостатки. Это уже фанатизм. Таких людей я не уважаю.