Кіріспе
Java виртуалды машинасы
Jikes Research Virtual Machine (Jikes RVM) – Java платформасы үшін жазылған бағдарламаларды іске қосатын дамыған виртуалды машина. Көптеген басқа Java виртуалды машиналарынан (JVM) өзгешелігі, ол Java бағдарламалау тілінде, мета-циклды іске асыру стилінде жазылған. Бұл Eclipse Public License лицензиясымен таратылатын тегін және ашық кодты бағдарламалық құрал.
Тарих
1997 жылдың қараша айында Jalapeño жобасы IBM-нің Томас Дж. Уотсон зерттеу орталығында ішкі зерттеу жобасы ретінде басталады. 1999, 2000 жылдары Jikes RVM-нің жаңа ерекшеліктерін сипаттайтын ғылыми еңбектер IBM зерттеушілері тарапынан жарияланды және бірнеше университеттерге бастапқы кодқа қол жеткізу мүмкіндігі берілді. 2001 жылдың қазанында Jikes RVM 2 нұсқасы Common Public License бойынша ашық бастапқы кодты жоба ретінде шығарылды. Бұл шығарылым PowerPC және Intel архитектураларын, сондай-ақ әртүрлі қоқыс жинау алгоритмдерін қолдайды. 2002 жылы Jikes RVM 2.2 шығарылды, онда дәл қоқыс жинаушылар танымал Memory Management Toolkit дәл жинаушыларымен қайта құрылды. 2004 жылы Jikes RVM 2.4 шығарылды, тұрақтылығы мен өнімділігі арттырылды, әсіресе Eclipse-ті іске қосуға баса назар аударылды. 2007 жылы Jikes RVM 2.9-ды дамыту Java 5.0 мүмкіндіктерін пайдалану және Apache Ant құрастыру жүйесін қолдану үшін код базасын кеңінен қайта құрумен басталды. 2008 жылы Jikes RVM 3.0 шығарылды, бұл 2.9 дамуының аяқталуын және код базасындағы жаңа тұрақтылықты білдірді. 2009 жылы Jikes RVM 3.1 Eclipse Public License (EPL) лицензиясы бойынша шығарылды, ол 3.0.1 нұсқасының өнімділігін айтарлықтай жақсартты және түпнұсқалық жіптерге (native threading) көшуді қамтамасыз етті. 2012 жылы Jikes RVM Association for Computing Machinery (ACM) бағдарламалау тілдері жөніндегі арнайы топтың (SIGPLAN) бағдарламалық қамтамасыз ету сыйлығын жеңіп алды, "жоғары сапалы және модулдік дизайны" үшін мақталып, ерекшеленді.
Bootstrap-пен жұмыс істеу
Мета-дөңгелек құрылымына ие болғандықтан, Jikes RVM бастапқы жүктеу кескінін жасау үшін бастапқы JVM-де іске қосылуы керек. Бастапқы жүктеу кескіні – Jikes RVM іске қосылуы үшін қажетті объектілердің көрінісі болып табылады және бұл көрініс бастапқы JVM-де рефлексия арқылы құрылады. Шағын C жүктеуіші орындалу кезінде жүктеу кескінін жүктеуге жауапты.
VM Magic (жұмысқа қосу)
VM Magic – компилятордың бір сынып үшін, сол сыныптың байт-кодтарының атқаруы тиіс нәрседен өзгеше код жасауы. VM Magic кластары жадқа тікелей қол жеткізуді қамтамасыз етеді және Жадты басқару жинағының өнімділігі үшін маңызды. VM Magic кластары org.vmmagic пакетінде орналасқан және басқа Java жобаларында да қолданылған.
Жад басқару құралы
Memory Management Toolkit (MMTk) – бұл нақты қоқыс жинағыштарының жиынтығы, олар Jikes RVM және Singularity операциялық жүйесі, Shared Source Common Language Infrastructure (SSCLI, бұрын Rotor деп аталған) сияқты басқа да жобаларда қолданылған. Jikes RVM-нің қалған бөлігі сияқты, оның іске асылуы Java тілінде жасалған, бірақ негізгі байланысы VM Magic-ке.
Сынып кітапханалары
Apache Harmony немесе GNU Classpath сынып кітапханаларын Jikes RVM-мен қолдануға болады, ал OpenJDK сынып кітапханасына қолдау әзірлеме кезеңінде.
Компиляторлар
Jikes RVM белгілі бір архитектура үшін кодты жылдам жасау үшін жылдам базалық компиляторды пайдаланады. Адаптивті компиляция кейін кодты, стектің үстінде ауыстыру (OSR) сияқты мүмкіндіктері бар оңтайландырылған компилятормен қайта компиляциялайды. Адаптивті компиляция жүйесі шығын-пайданы сараптау моделін қолданады.
Орындау уақыты
Jikes RVM-нің орындалу ортасы жылдам құлыптау, бірлескен жоспарлау, сондай-ақ жылдам қателерді жинау және жіберуді қолдайтын сияқты көптеген жаңашыл мүмкіндіктерге ие.
Өңдеушілер
Jikes RVM PowerPC (немесе ppc) және IA 32 (немесе Intel x86, 32 бит) процессор архитектураларының нұсқаулар жиынтығын қолдайды.
Зерттеу
Ғылыми жоба болғандықтан, Jikes RVM жаңа технологияларды зерттеуге баса назар береді, бұл оның тудырған ғылыми жарияланымдарынан – 2015 жылға дейін 220-дан астам мақаладан – көрініп тұр. Jikes RVM 2007, 2008, 2010, 2011 және 2012 жылдары Google Summer of Code бағдарламасына да қатысқан.