Переход с VMS на Unix - PullRequest
       100

Переход с VMS на Unix

10 голосов
/ 26 ноября 2009

Однажды команда парней села и написала приложение на C, работающее на VMS на VAX. Это было довольно важное мероприятие, и оно выполняло довольно важную вспомогательную операцию в LargeCo. Весь этот шебанг работает так хорошо , что двадцать пять лет спустя он все еще пыхтит и делает свое дело.

Проходит время, и люди уходят на пенсию, и так получается, что последний человек, стоящий на ногах, передал ключи новому поколению, которое - как мы можем себе представить - меньше, чем взволновано , чтобы найти себя хранителями старой системы достаточно, чтобы быть их младшим братом. Тем не менее, несмотря на то, что они не в восторге от идеи иметь дело с Ultra Legacy Systems, они не могут оправдать стоимость замены почтенного приложения.

LMS обнаружил, что я хабла unix и задал мне этот вопрос. И так как я хабла юникс, но не говорю на Си, я обобщу и передам это вам. Длинная история Короткая история:

LMS хочет портировать LegacyApp, написанный на C., с VMS на unix. Ресурсы? Какие книги он может читать? Люди, с которыми он может поговорить?

Ответы [ 12 ]

0 голосов
/ 24 января 2010

В зависимости от того, какие языки вы уже знаете, C не так сложно выучить. Я учил себя C в процессе изучения C ++ после того, как наконец вырвался из Pascal. (VAX Pascal, плюс Rdb / VMS, плюс DCL сформировали комбинацию, которую было трудно победить.)

Если программное обеспечение является типичным C, вы потратите больше времени на изучение функций библиотеки, чем на изучение языка.

Это довольно легкий материал, но я прошел онлайн-уроки по C ++, которые Microsoft делает доступными в связи с экспресс-выпуском Visual Studio для C ++.

Вот учебник для начинающих:

http://msdn.microsoft.com/en-us/beginner/cc305129.aspx

0 голосов
/ 26 ноября 2009

Ну, у вас есть несколько вариантов. если этот код нужно перенести довольно быстро, я бы написал библиотеку мостов для эмуляции библиотек vms. когда вы снова включите его и запустите на * nix, затем выполните замену вызовов библиотеки vms на собственные / переносимые вызовы для * nix.

Также, если в коде много оптимизаций, например, встроенная сборка и битовое перемешивание. тогда вам придется переписать этот код, который потребует понимания архитектуры VAX. также. Обязательно проверьте различия в размерах и порядковый номер слова

...