Является ли Cocotron результатом обратного инжиниринга? - PullRequest
3 голосов
/ 02 сентября 2011

Копирует ли это поведение различных библиотек (поэтому вызовы абсолютно одинаковы) или просто кодирует их с нуля, используя уникальные оптимизации и новые способы выполнения своих задач?

Ответы [ 2 ]

10 голосов
/ 03 сентября 2011

Существуют различные виды реверс-инжиниринга, сгруппированные примерно в «грязную комнату» и «чистую комнату».Dirty-Room в основном включает в себя дизассемблирование машинного кода, чтобы выяснить, что он делает, и использование дизассемблированного кода для создания нового кода.Dirty-Room создает проблему нарушения авторских прав, вы в основном плагиатируете старую систему, чтобы создать новую систему прямо или косвенно через непосредственное знание о внедрении старых систем.Clean-Room включает в себя реализацию одного и того же API с использованием документации и тестирование для повторной реализации системы.Эти два метода могут использоваться самостоятельно или в различных комбинациях вместе.Например, BIOS ПК был перепроектирован с использованием двух команд, команды Dirty-Room, которая разобрала оригинальный BIOS и создала спецификацию, и команды Clean-Room, которая внедрила новый BIOS с использованием спецификации.В бизнес-ситуациях с высокими ставками для реверс-инжиниринга обычно участвуют юристы, специализирующиеся в данной области, для создания надлежащей новой реализации, которая не затрагивает старую.

Cocotron - это реализация Clean-Room.Я / Мы используем документацию и тестовые программы для создания новой реализации (Cocotron), которая соответствует поведению старой реализации (Cocoa).Документация Apple очень хорошая, API хорошо организованы, и при необходимости легко создавать тестовые программы.Cocotron довольно хорош, если я так говорю, но это определенно не Какао, и я бы предположил, что источники сильно различаются между ними.

2 голосов
/ 02 сентября 2011

Внутренняя реализация Cocotron довольно отличается от Cocoa. Я бы не сказал, что в этом есть какой-то «реверс-инжиниринг».

Вы должны знать, что существует история отдельных реализаций API Какао (вроде). Какао выросло из OpenStep, который изначально разрабатывался как спецификация с множеством различных реализаций на разных платформах.

...