Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 17 1 11
Путь к асемблеру Аноним 23/05/26 Суб 00:11:41 3711150 1
VID202604082143[...].mp4 26009Кб, 1920x1080, 00:00:10
1920x1080
Мне захотелось научиться программировать как можно ближе к машинному коду. Лет 7 назад я был веб-разработчиком некоторое время, использовал php и js. Все это было просто ради денег. Тогда это было актуально для меня.

В будущем я хочу разобраться с асемблером. Но сразу это будет сложно, поэтому сейчас я знакомлюсь с C++, мне надо писать на нем с минимальным количеством библиотек. Поэтому я начал изучать win32 api.

Что то на win32 api у меня немного получается. Но есть проблема. Я не понимаю смысл, почему в win32 api что то работает именно так или так. Потому что у меня мало знаний в области того как вообще работает компьютер и операционная система.

Встречаются мне регулярно понятия такие как - поток, ядро, дескрипторы. Иногда я представляю интуитивно что все это примерно значит, но глубокого понимания всего этого нет.

Теперь вопрос. Что мне стоит почитать, что изучить чтобы получить эти знания? Что позволит мне лучше понять почему те или вещи в win32 api и в дальнейшем в низкоуровневом программировании работают так или иначе, что именно надо учитывать.

Стремлюсь к низкоуровневому программированию ради интереса. Как то зарабатывать на этом не планирую да и просто не смогу, даже если захочу. Времени на все это у меня много. Думаю лет 10 есть.
Аноним 23/05/26 Суб 01:36:11 3711177 2
>>3711150 (OP)
Язык ассемблера в понимании winapi тебе особо не поможет.
25/05/26 Пнд 11:39:01 3712268 3
Возьми лучше Питон, попробуй на нём пописать относительно низкоуровневые штуки по типу сокетов. Попробуй написать какой-нибудь tcp-сервачок, используя модуль socket на Питоне. Передавай по нему данные. Арендуй где-нибудь vps-сервер, установи на нём свой tcp-сервак и сделай свою личную файлопомойку. Прикрути аутентификацию.
Ознакомься с потоками и процессами, распараллель эту свою tcp-шную хреновину на несколько потоков, или типа того.

Вот тебе и горы практики на полгода вперёд. После этого будешь лучше ориентироваться в системном программировании, а после этого можешь и ещё ниже углубляться.
У меня такое видение, по крайней мере. Просто своими мыслями поделился.
Аноним 27/05/26 Срд 02:15:49 3713106 4
>>3711150 (OP)
Не еби мозги и просто иди читать Столярова, дальше уже сможешь сам разобраться куда двигаться
Аноним 28/05/26 Чтв 17:24:29 3713921 5
>>3711150 (OP)
>Теперь вопрос. Что мне стоит почитать, что изучить чтобы получить эти знания?
Эндрю Танненбаум, Современные операционные системы
Столяров, как советовал анон выше
Windows Internals, Руссинович
Аноним 29/05/26 Птн 11:26:03 3714319 6
>>3711150 (OP)
>почему в win32 api что то работает именно так или так
Потому что люди которые писали эти библиотеки и функции действительно шарят, они прошли тяжелейшие испытания в виде отбора на должность. В отличии от linux, где борцун с системой в обосраных труханах возомнил себя вумным и что-то накалякал.
Ответ:
Это просто пиздато работает, пользуйся и не выёбывайся.
Аноним 29/05/26 Птн 18:20:16 3714566 7
>>3714319
В целом верно. Костяк WinAPI писали старики, что начинали инженерить ещё на компах предыдущих поколений. Но в какой-то момент такие люди, знающие винду снизу до верху, в Microsoft закончились. Часть проблем по итогу осталась не решена (пример - дефолтное ограничение полного пути файла на 255 символов). Новички, сколь пиздатыми они не были, не решаются проводить рефакторинг, боготворить их не надо.
Аноним 29/05/26 Птн 20:47:55 3714625 8
>>3714566
Как бы я не ругался на винду в целом, но winapi это идеально сделано. Да, есть недоработки вроде ограничения в 255 символов, но это такое..
Я хотел сказать, что это действительно достойный труд и он должен быть защищен и приносить этим людям прибыль, и они сами(уверен) знают цену того что они сделали.
А тут ОП(или я, неважно), а почему это работает именно так?
Да потому что не твоего ума дело(и не моего).
А то привыкли что запросто так им все дают на линуксе.
Аноним 29/05/26 Птн 21:59:31 3714657 9
> В будущем я хочу разобраться с асемблером. Но сразу это будет сложно, поэтому сейчас я знакомлюсь с C++
Толсто
Аноним 30/05/26 Суб 23:12:32 3714971 10
>>3714319
>>3714566
>>3714625

Я не знаток винапи, имел с ним дело только в вузе 12 лет назад, но разве там не какой-то пиздец? Я помню, что графическая подсистема была интегрирована в винапи, все функции принимали какое-то адское кол-во параметров и в целом все выглядело очень запутано. Когда я потом учил линукс, то минималистичность его апи выглядела очень привлекательно.
Аноним 31/05/26 Вск 00:09:24 3714989 11
>>3711150 (OP)
Почитай Кетов - внутреннее устройство Линукс. Если будет много не понятного то начни с таненбаума - современные ос. У Кетова ещё есть лекции на ютубе, но там как и в книге очень академический стиль. Это если база нужна о том как работает ос. Если хочешь ещё на уровень ниже Morris - Logic and Computer Design Fundamentals.
Если интересно как работают компиляторы почитай дракончика Compilers: Principles, Techniques, and Tools
Аноним 04/06/26 Чтв 00:43:14 3716855 12
>>3711150 (OP)
Есть классические книги по ассемблеру и программированию под win32.
По win32 - это книга Петцольда - Программирование для windows 95
А для ассемблера можешь почитать Зубкова Assembler - язык неограниченных возможностей. Или древнюю книжку Питера Абеля. Ассемблер и программирование для IBM PC. Там везде рассказываются основы.

Но про ассемблер надо понимать главное - что он аппаратно зависим. Ассемблер для x86 это одно. Для Motorola 68K, Zilog Z80, SPARC, MIPS, микроконтроллеров всяких - это всё другое. Так что изучи лучше язык Си, прежде чем соваться к ассемблерам.
Аноним 04/06/26 Чтв 00:49:07 3716856 13
>>3716855
А вообще, чтобы экспериментировать с Win32 GUI можно взять C++ Builder (скажем 6.0). Там очень удобно клепать интерфейсы. Удобнее, чем с MFC в Visual C++. MFC ты тоже можешь проштудировать. Есть книжки. На самом деле - мало кто вменяемый в те времена писал на голом Win32 API. Скорее MFC использовали.
А сейчас используют Qt какой нибудь, или wxWidgets.
Аноним 04/06/26 Чтв 00:53:17 3716859 14
>>3716855
>Зубкова Assembler - язык неограниченных возможностей
Зубкова, кстати, надо ещё поискать полную версию. То, что я находил в интернете - там усечённая версия с неполным материалом.
Аноним 04/06/26 Чтв 00:57:04 3716861 15
>>3716855
Я на ассемблере под Z80 развлекаюсь, пишу. Достал себе эмулятор компа на базе Z80, и запускаю под него мои программы. А ещё есть сайт asm80.com. Там прям в отладчике можно прогнать онлайн свою нетленку. Немножко кода какого-нибудь. Дяже ничего ставить не надо. Чисто, в блокнотике у себя на компе пишешь немножко кода, копируешь в браузер и запускаешь.
Аноним 04/06/26 Чтв 01:00:32 3716862 16
>>3716856
Кстати чтобы писать на древнем WinAPI лучше использовать Visual C++ 2008 наверное какой. Вместе с локальными библиотеками MSDN тех годов. Они ещё не настолько раскурочены, как нынешние.
Аноним 04/06/26 Чтв 01:54:49 3716871 17
>>3716862
И да - Win32 API гораздо лучше изложен именно в старых MSDN.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов