Изучаю masm. Всё вроде неплохо - проще,чем в яву,больше возможностей для творчества, программы работают быстрей, меньше по размеру, и т.д. Один только момент смущает немного - масм, да и остальные виды а. - всего лишь приставки к чему-то, написаному на С. Это не есть хорошо,если использовать его в качестве учебного инструмента, да и в серьёзных коммерческих приложениях ( Об это Икзелион упоминал, в том смысле, что написав свой контрол на а., мы избавляемся от множества проблем. К тому же, при использовании Апи могут возникнуть проблемы и в юридическом плане...хотя такая постановка вопроса мелкософту невыгодна. мне кажется ...). Как вы относитесь к идее написать на а. что-то вроде Апи функций, контролы всякие и т.д. - получится стандартная библиотека. Программы получатся больше по размеру, но работать будут быстрее наверное. Главное - код будет прозрачен. Короче, прикольный опен-сурс под форточки будет. Можно использовать , на первых порах и стандартные Апи, пока не будут написаны свои - ведь всё будет полностью совместимым.....Но необходимо выполнять условие: внутри а-функций не должно быть Апи.
это про что? разве лицензия запрещает разрабатывать программы для этой ОС? если все это написать получиться wine данного добра хватает, хоть и написаны они на Сях... по-моему ты не понимаешь что прячется за аббревиатурой API...
зачем стоить построенный дом? ты думаешь что напишешь функции лучше, чем коллектив разработчиков в Microsfot?
Ну в принципе это логично. асм в своем чистом виде довольно объемен и написание на нем программ потяжелее чем на С, поэтому ничего не вижу плохого в том что бы писать на С, а на асм дорабатывать и оптимизировать слабые места, обычно так и делают.
СОГЛАСЕН , но дело - совершенно не в этом, а принципе и трудности с написанием или ещё что-то - это совсем другой вопрос. Никто же не удивляется, почему студенты ( и профессионалы - всю жизнь, по 12 часов в день) художественных и музыкальных училищ малют и пиликают на пианине ... Зачем? ведь уже всё нарисовано и вся музыка написана и исполнена, а сделать что-то новое так трудно.... Отличные мальчишки ( и девчонки наверное) пишут отличные программы . Я вот тоже парочку написал , но когда задумываюсь, а как же работает та или иная функция - в голову не приходит ни одной мысли ... просто не представляю - не было необходимости знать это. Ну и ладно, насильно заставлять не буду-же , метать бисер тоже надо завязывать.... Попробую покопать немного в сторону Солара и Линукса ( где-то промелькнуло - в нём апи функции на ассемблере, передраны с форточек, но до ума их пока ещё не довели - глючат немного...)
у меня не так много опыта в программировании на асме, но тема очень интересная, сам постаянно задаюсь такими вопросами. Если ты в серьез то готов помочь чем смогу. пиши мне в асю 401166472
Ничего себе а смысл этом какой, если большая часть api это переходники к коду, который вы не напишите в ring3? Все алгоритмы программы можно описывать на чем угодно, но если требуется что-то от операционной системы, будте добры использовать предоставленный для этого интерфейс или пишите свою операционную систему.
Всё гораздо сложнее, чем я представлял , но что мешает попробовать начать? Простой пример - строковые функции реализуются просто, работают быстрее апи, и на ринг0 не нужно, кажется, выходить. А CreateFile, например ? Кто-нибудь может сказать, хотя-бы приблизительно как она работает? Странно, но все известные мне книжки - всего лишь описание использования того, что сделали программисты мелкософта. Может поэтому многие не любят форточки ? ( Комплекс неполноценности на подсознательном уровне. Такая же фигня у люмпен - пролетариата, те бухгалтеров,санинспекторов всяких - они ненавидят всех, кто что-то делает, создаёт )
могу даже сказать где посмотреть можно, в нормальном, удобочитаемом виде - сорцы ReactOS! за что не любят это отдельный вопрос, но явно не за это...
Ну вот опять - " Зачем всё это, есть дяди, которые уже всё знают, иди скачай 40 метров кода, написаного неизвестно на чём и неизвестно кем, пару дней поковыряйся в нём и ты будешь знать тоже.... может быть " Идея очень проста, никому и ничему не мешает и ничего не требует сверхестественного - " ПОПЫТЫТЬСЯ НАЧАТЬ писать инвокабельную библиотеку аналогов апи-функций на "чистом" ассемблере. Зачем это нужно - см. выше... Названия функций лучше оставить такие-же, добавлять в конце R, например: invoke CreateWindowExR,.... Не со всеми ф. такой фокус пройдёт, НО ЭТО НЕ ИМЕЕТ ЗНАЧЕНИЯ
ты хочешь сказать, что напишешь лучше? ты просто не видишь что получится в результате - а варианта два: 1 - ты ничего не напишешь, 2 - у тебя получится еще один клон виндов, в обоих случаях ты забьешь на проект...
Хрм, бессмысленное занятие! Клон виндов не получится - это сверхзадача. Ничего не получится. Ты испишешь несколько тетрадок своими "гениальными" идеями, потом даже накатаешь пару функций, заменяющих какие-то из намеченных АПИ, потом забьешь на это дело. Аналога CreateWindowEx ты вообще НИКОГДА не создашь - потому что для этого надо куда-то в системные таблицы писать инфу о создаваемом окне (хендл, координаты и размеры, признак валидности содержимого, и до шута всего типа ссылки на родительское окно, на структуру с классом, на зарегистрированную процедуру обработки событий...), а ни таблицы (месторасположение), ни их формат не документированы. Я не говорю о переносе всего этого в другую операционку - там придется еще вдобавок И ЕЕ (другую ОС) ПЕРЕПИСЫВАТЬ, потому что тоже сделано неизвестно кем... Извиняюсь, а когда под ДОС писали, почему бы аналогично не призывать отказаться от "гнусных, написанных неизвестно кем и вызывающих комплекс неполноценности" int 10h...int 21h??? И все нафиг через порты и прямое обращение к видеопамяти. И 4 месяца на разработку вместо 1 недели. И полная несовместимость при переходе на другую машину - ага, харды появились SATA или SCSI, БИОС, идущая с материнкой, умеет с ними работать, а твоя библиотека ни фига. Чуешь, к чему веду?
Veter Напиши хотя бы одну функцию, которая лучше (быстрее) Win32 API. Я однажды написал собственный аллокатор памяти (замена для HeapAlloc()). Простейший! Только для единственного потока. HeapAlloc() - многопотоковый аллокатор. Гордый своим достижением я измерил сколько времени занимает HeapAlloc() против моей "функции". Это был настоящий удар! Только после тщательных разборок (что было весьма интересно) удалось "побить" HeapAlloc() на несколько миллисекунд (пол-миллиона аллоцированных блоков). Нет сомнения, что в "мелко-мягком" сидит целый отдел и вылизывает ассемблер из API до последних тактов. И делается это уже много лет. Амбиции у тебя есть и это хорошо, кстати. Но наверное практического результата (библиотеки) не получится. Зато есть возможность познать вещи, которые ещё не познаны - что тоже замечательно. К слову, если будешь замерять код - можно использовать QueryPerformanceCounter(). А можно и простой RDTSC.
Solar OS - RealTime Operating System Copyright (c) 2001-2007 Ontanu Bogdan Valentin All rights reserved. Address: Romania, Bucuresti, Bd. Eroilor Sanitari nr 73B, suite 2 site: www.oby.ro, email: bogdanontanu@yahoo.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Это написано в каждом файле исходников Солара. Насколько я понял, автора разрешает использовать код , модифицировать его и т.д. Weak engl., может и ошибаюсь... Апи-функции даже для окна не очень большие по объёму. Они должны распрекрасно работать в форточках, после доработки конечно...Очень сомнительно, что они будут медленнее стандартных апи.
Я не особо разбираюсь, но могу представить, что на "доработку" какой-нибудь CreateProcess полжизни уйдет. Полагаю Вы и ядерные функции тоже переписать хотите (ну а как же: этот код ведь тоже написали в Microsoft)? Т.е. все должно сводиться к in/out? В результате километры Вашего кода будут работать под единственной версией системы, под единственным SP, с единственным вариантом набора обновлений... и забыл упомянуть... с единственной конфигурацией оборудования. И к тому времени, как Вы это осилите для WinXP, например, египетские пирамиды будут казаться не древнее самой WinXP. Так что пользы от этого, кроме того, что Вы досконально познаете устаревшую к тому времени структуру Windows, никакой. Идея бредовая... ИМХО, конечно.