مسار فئات GNU

GNU Classpath هو تطبيق برمجي مجاني لمكتبة الفئات القياسية للغة البرمجة جافا . يدعم معظم الفئات من J2SE 1.4 و 5.0. وبالتالي، يمكن استخدام Classpath لتشغيل تطبيقات جافا . GNU Classpath جزء من مشروع جنو . طُوّر في الأصل بالتوازي مع libgcj بسبب عدم توافق التراخيص، ولكن تم دمج المشروعين لاحقًا.

اعتبرت مؤسسة البرمجيات الحرة مشروع GNU Classpath مشروعًا ذا أولوية قصوى . عند انطلاق مشروع Classpath، لم تسمح رخصة تطبيق Java الرسمي من شركة Sun Microsystems بتوزيع أي تعديلات عليه. ومنذ ذلك الحين، تم إصدار OpenJDK بموجب رخصة GPL ، وهو الآن التطبيق المرجعي الرسمي لمنصة Java .

رخصة

يخضع برنامج GNU Classpath لترخيص GNU العام مع استثناء الربط . هذا ترخيص برمجيات حرة . جميع التعليمات البرمجية مملوكة رسميًا لمؤسسة البرمجيات الحرة ، وهذه المؤسسة ملزمة بالتزاماتها التعاقدية تجاه المطورين.

الاستخدامات

يستخدم GNU Classpath بواسطة العديد من أوقات تشغيل Java المجانية (مثل Kaffe و SableVM و JamVM و Jikes RVM و VMKit) لأن كل آلة افتراضية Java كاملة الميزات يجب أن توفر تطبيقًا لمكتبات الفئات القياسية.

وتشمل بعض الاستخدامات الأخرى ما يلي:

  • مترجم GNU للغة Java ، وهو قادر على ترجمة كود Java إلى ملفات تنفيذية مستقلة أصلية.
  • GCJAppletViewer [ 2 ] لتشغيل تطبيقات Java الصغيرة من سطر الأوامر إذا لم تكن مدعومة من قبل المتصفح المستخدم.
  • IKVM ، الذي يدمج لغة جافا مع إطار عمل .NET
  • JNode هو نظام تشغيل لتشغيل تطبيقات جافا. هذا النظام مكتوب بلغة جافا ولغة التجميع فقط.
  • الآلات الافتراضية المتخصصة مثل Jaos للتكامل مع لغة برمجة Oberon ، و JamaicaVM للأنظمة المدمجة مع ضمانات الوقت الحقيقي.
  • الآلات الافتراضية للحوسبة الموزعة مع المجموعات، والتي تحتوي على ما يصل إلى 128 معالجًا على Myrinet . [ 3 ]
  • استخدم مشروع IcedTea برنامج GNU Classpath كبديل للعناصر الاحتكارية في OpenJDK ، قبل استبدالها في المصدر الرئيسي.

تاريخ

بدأ تطوير GNU Classpath عام ١٩٩٨ بخمسة مطورين. وعلى مرّ تاريخه، اندمج عدة مرات مع مشاريع أخرى ذات أهداف مماثلة ( مثل Kaffe وlibgcj). في السابق، كان GNU Classpath يوفر آلة افتراضية خاصة به (Japhar). ومع تحوّل Classpath إلى مكتبة أساسية مشتركة مع العديد من المشاريع المختلفة، تضاءل الاهتمام بهذه الآلة الافتراضية تدريجيًا، ولم تعد مدعومة حاليًا.

بعد تطبيق معظم واجهة برمجة تطبيقات Java 1.4 الرسمية، أصبح العمل في المشروع أكثر تركيزًا على اكتشاف الأخطاء البرمجية بدلًا من تغطية واجهة برمجة التطبيقات. في 24 أكتوبر 2006، تم اعتماد تطبيق آخر فئة مفقودة من فئة 1.4، وهي HTMLWriter . وبلغت سرعة التطوير (المحسوبة رياضيًا كمتوسط ​​عدد أسطر التعليمات البرمجية الجديدة يوميًا) أعلى مستوى لها على الإطلاق في عام 2006.

اقترح برادلي إم. كون اسم GNU Classpath في الأصل لأحد أوائل المطورين، بول فيشر. في ذلك الوقت، كان هناك قلق بالغ في مجتمع تطبيقات جافا الحرة بشأن تطبيق شركة صن لعلامتها التجارية على جافا ضد التطبيقات الحرة. اقترح كون اسم $CLASSPATH ، وهو متغير البيئة الذي تستخدمه معظم أنظمة جافا للإشارة إلى مكان وجود مكتبات جافا على الحاسوب. ولأنه $CLASSPATHغالبًا ما يُوسّع إلى اسم مسار يتضمن كلمة java (مثل .java.java /usr/lib/java)، فقد كانت هذه طريقة لاستحضار اسم جافا دون ذكره صراحةً. لم يُعجب فيشر ومطورون آخرون بالاستخدام غير اللائق لرمز $ والأحرف الكبيرة، فاستقروا على Classpath .

فريق التطوير

يتولى المسؤول عن الصيانة الجوانب القانونية للمشروع، ويُعدّ الإصدارات الدورية، ويُجري بعض عمليات إدارة الجودة. كما يمنح المسؤول عن الصيانة صلاحيات الوصول إلى نظام إدارة الإصدارات (CVS) .

لا يتبع مشروع GNU Classpath أي هيكل تنظيمي رسمي. يُنجز العمل من قِبل الأشخاص الأكثر كفاءةً من الناحية التقنية، ولا يوجد تقسيم صارم للمهام. تُنشر جميع تعديلات الشفرة البرمجية أولاً على قائمة المناقشة على شكل تصحيحات، حيث يمكن الاعتراض عليها عند الحاجة. ويتلقى المشروع عادةً ما بين خمسة إلى ثمانية تصحيحات يومياً.

يمكن تتبع تقدم تغطية كود مكتبة GNU Classpath مقابل OpenJDK6 [ 4 ] و OpenJDK7. [ 5 ]

تكامل الآلة الافتراضية

يحتوي GNU Classpath على فئات من مساحة أسماء واجهة برمجة تطبيقات Java الرسمية. عند الحاجة إلى استدعاءات للتعليمات البرمجية الأصلية أو عند الرغبة الشديدة في ذلك، يتم ذلك من خلال عدد محدود من فئات "VM". يتطابق اسم فئة VM هذه مع اسم الفئة التي تتطلب طرقًا أصلية، بالإضافة إلى بادئة VMjava.lang.VMObject الإضافية ، java.lang.VMStringوهكذا. تُخزَّن فئات VM بشكل منفصل عن بقية التعليمات البرمجية، وهي خاصة بالحزمة ونهائية . تحتوي طرق هذه الفئات على الكلمة المفتاحية native، مما يشير إلى ضرورة وجود المكتبة الأصلية الداعمة. يتم توفير هذه المكتبات من قِبل مطوري آلة Java الافتراضية، وبالتالي يمكن ربط GNU Classpath بأي آلة Java افتراضية تقريبًا إذا كانت مصادر هذه الآلة الافتراضية متاحة وقابلة للتعديل.

دعم ميزات اللغة الجديدة في Java 1.5

قبل الإصدار 0.95، كان كل إصدار من GNU Classpath يتكون من ملفين مضغوطين منفصلين؛ أحدهما يمثل حالة فرع التطوير الرئيسي والآخر يحتوي على محتويات فرع تجريبي أكثر، يدعم الإضافات، مثل الأنواع العامة والتعدادات والتعليقات التوضيحية، الموجودة في Java 1.5. [ 6 ]

منذ الإصدار 0.95، [ 7 ] تم دمج إضافات Java 1.5، مثل الأنواع العامة، بشكل كامل في الفرع الرئيسي. يمكن بناء هذا الفرع باستخدام مُصرّف Eclipse ، ecj، لتحويل شيفرة Java 1.5 المصدرية إلى شيفرة وسيطة. في حالة GCJ، يستخدم ecj لتنفيذ هذه المرحلة الأولية، ثم يحول الشيفرة الوسيطة إلى شيفرة أصلية. بدءًا من الإصدار 0.95، يدعم GNU Classpath أيضًا تجميع وتشغيل مُصرّف javac مفتوح المصدر والمرخص حديثًا بموجب رخصة GPL باستخدام GNU Classpath، كما يسمح بتجميع مكتبة فئات GNU Classpath وأدواتها وأمثلتها باستخدام javac نفسه.

فصول دراسية من نطاق omg.org

يتفاعل كل من Sun و GNU CORBA في لعبة عميلين [ أ ]

لا يقبل مشروع GNU Classpath أي كود مرخص بترخيص غير حر، أو تم إنشاؤه تلقائيًا من كود مرخص بترخيص غير حر. تحتوي واجهة برمجة تطبيقات Java القياسية على العديد من الفئات من نطاق omg.org، والتي تُنشأ عادةً من ملفات IDL الصادرة عن مجموعة إدارة الكائنات (OMG) . يُعتبر ترخيص "الاستخدام دون التعديل" لهذه الملفات ترخيصًا غير حر. لهذا السبب، كُتبت فئات CORBA المذكورة في مشروع GNU Classpath (في org.omg.CORBA) من الصفر، باستخدام مواصفات OMG المطبوعة الرسمية فقط. وبالتالي، فإن هذا الجزء من GNU Classpath حر تمامًا كأي كود آخر في المشروع.

انظر أيضاً

ملحوظات

  1. تضمن مؤتمر فوسديم 2006 هذا العرض التوضيحي وغيره من العروض التوضيحية لتبادل البيانات بين تطبيقات Sun وClasspath لبروتوكول CORBA. [ 8 ] يتوفر كود المصدر [ 9 ] في مستودع Classpath.

مراجع

  1. هيوز، أندرو جون (16 مارس 2012). "إصدار GNU Classpath 0.99!" ( مدونة شبكة الإنترنت العالمية ). فيوزيزم. مؤرشف من الأصل في 14 ديسمبر 2012. تم الاطلاع عليه في 20 مارس 2012 .
  2. عارض تطبيقات GCJ ، كودرز، مؤرشف من الأصل بتاريخ 18-09-2009 ، تم استرجاعه بتاريخ 14-09-2009.
  3. "جوبيتر"، قسم الهندسة الكهربائية وهندسة الحاسوب ، جامعة تورنتو.
  4. "تغطية مكتبة مسار فئة GNU مقابل OpenJDK6"، J API ، Fuseyism، مؤرشف من الأصل في 2015-09-06 ، تم استرجاعه في 2012-05-31.
  5. "تغطية مكتبة مسار فئة GNU مقابل OpenJDK7"، J API ، Fuseyism، مؤرشف من الأصل في 2016-03-04 ، تم استرجاعه في 2012-05-31.
  6. "إصدار GNU Classpath "95% وما زال العد مستمرًا" 0.19"، مشروع جنو (إعلان)، البرمجيات، مؤسسة البرمجيات الحرة، 2005-11-02 ، تم الاطلاع عليه في 31 مايو 2011.
  7. "إصدار GNU Classpath 0.98 "أن تأتي متأخراً خير من ألا تأتي أبداً"، مشروع جنو (إعلان)، برمجيات، مؤسسة البرمجيات الحرة، 2009-02-05.
  8. ↑ أرشيف مؤتمر فوسديم ، كلاس باث، 2006.
  9. "مسار الفئات"، مشروع جنو ليس يونكس (شفرة المصدر) (مثال)، مؤسسة البرمجيات الحرة.