GNU Klaspat je projekat čiji je cilj da stvori implementaciju standardnih biblioteka u obliku slobodnog softvera za Java programski jezik. Uprkos ogromnoj veličini biblioteke koja treba da se napravi, veliki deo posla je već urađen, uključujući Sving, KORBA, i druge važne delove.] Klaspat programeri su implementirali skoro sve klase sa Javine platforme 1.4 i 5.0. Klaspat tako može da se koristi za pokretanje popularnih  softvera baziranih na Javi kao što su Vuze i Eklips.

GNU Klaspat
Prikaz GNU Klaspat Svinga
Prikaz GNU Klaspat Svinga
Programer(i)GNU projekat
Stabilno izdanje
0.99 / 16. mart 2012. god.; pre 12 godina (2012-03-16)
Repozitorijum Uredi na Vikipodacima
Napisan uC i Java
Operativni sistemMulti platformni
TipBiblioteka
LicencaGPL
Veb-sajtwww.classpath.org

GNU Klaspat je bio jedan od prioritetnih GNU projekata. Dok je izvorni kod "zvanične" implementacije Sun Majkrosistems-a bio dostupan, licenca nije dozvoljavala distribuviju bilo kojih izmena. Ovo je bila jedna od glavnih prepreka za mnoge projekte koji nisu mogli da napreduju bez menjanja ovog koda. GNU Klaspat zajednica za razvoj obuhvata institucije koje su fokusirane na istraživanje Java virtuelnih mašina, kao i kompanije koje su zainteresovane za pružanje alternativnih Javinih sistema za izvršavanje.

GNU Klaspat je deo zadužbine za slobodni softver. Prvobitno je razvijen odvojeno od GNU-ovog kompajlera za Javu zbog ne adekvatne  licence, ali kasnije su ova dva projekta spojena.

Licenca uredi

GNU Klaspat je licenciran pod GNU-ovom opštom javnom licencom sa izuzetkom vezivanja. Ovo je licenca za slobodni softver. Svi kodovi su formalno u vlasništvu zadužbine za slobodni softver, i njen vlasnik je obavezan svojim ugovornim obavezama programera.[traži se izvor]

Korišćenje uredi

GNU Klaspat koriste mnoge besplatne Javine implementacije (kao Kafe, SejblVM, DžemVM, KAKAO, Džiks RVM, VMkit) jer svaka potpuno opremljena Javina virtuelna mašina mora da obezbedi implementaciju standardnih klasnih biblioteka.

Neka druga korišćenja uključuju:

  • GNU-ov kompajler za Javu, koji može da kompajlira Javin kod u strandardne samostalne izvršioce.
  • GCJAppletViewer[1] za pokretanje Java aplet-a sa komandne linije ako nisu podržani u pretraživaču koji se koristi.
  • IKVM.NET, koji spaja Javu sa .NET Framework-om
  • JNode, operativni sistem koji pokreće Javine aplikacije. Ovaj sistem je napisan u Javi.
  • Specijalizovane virtuelne mašine kao što je Jaos za spajanje sa Oberonom, i JamaikaVM za ugrađen sistem sa realnim garancijama
  • Virtuelne mašine za računarstvo sa klasterima, koje imaju i do 128 procesora na Marinet-u.[2]
  • IcedTea projekat koji koristi GNU Klaspat kao zamenu za vlasničke elemente OpenJDK-a.

Istorija uredi

Razvoj GNU Klaspat-a je počeo 1998. godine sa pet programera. Tokom istorije, spajao se nekoliko puta sa drugim projektim koji su imali slične ciljeve (Kafe, libgcj). U prošlosti, GNU Klaspat je snabdevao svoju virtuelnu mašinu (Jafar). Kako je Klaspat postao osnovna biblioteka, deljena u mnogo različitih projekata, ova virtuelna mašina je sve manje pažnje dobijala i sada više nije podržana.

Nakon implementiranja većine Javinih 1.4 API, rad na projektu je postao mnogo više orijentisan na bagove nego na API razvoj. 24. oktobra 2006. godine, implementacija poslednje 1.4 klase koja je falila, HTML pisač, je izvršena. Brzina razvoja (matematički proračunata preko  prosečnog broja linija koda po danu) je dostigla najveću moguću za 2006. godinu.

Ime GNU Klaspat je prvobitno predložio Bredli M. Kun jednom od prvih razvojnih programera, Polu Fišeru. U to vreme, je postojala velika zabrinutost za zajednicu besplatnih Javinih implementacija zbog korišćenja San-ovog originalnog zanaka na Javinim implementacijama. Kun je predložio naziv $CLASSPATH, koja predstavlja promenljivu okruženja koju je koristila većina Javinih sistema kako bi  ukazala gde su Javine biblioteke smeštene na računaru. Pošto se $CLASSPATH često koristio i kao ime putanje, uključivao je reč java (kao što je /usr/lib/java), to je bio način da probudi ime Java a da se ne izgovori bukvalno. Fišer i drugi programeri nisu volim upotrebu znaka $ kao ni velika slova koja su se koristila u Klaspat-u.

Razvojni tim uredi

Održavalac se brine o legalnoj strani projekta, priprema redovna izdanja projekata i izvršava proveru kvaliteta. Održavalac takođe daje dozvole za pristup CVS-u.

GNU Classpath nema formalnu hijerarhiju. Rad se obavlja najviše na osnovu tehničkih mogućnosti i ne postoji stroga podela poslova. Sve promene koda se prvo postavljaju na listu za diskusiju kao zakrpe gde mogu dodatno da se menjaju ili odbacuju ako je potrebno. Projekat obično prima između pet i osam zakrpa dnevno.

Razvoj prekrivenosti kodom GNU-ove Klaspat biblioteke se može pratiti preko OpenJDK6[3] i OpenJDK7.[4]

Spajanje virtualnih mašina uredi

GNU Klaspat sadrži klase iz zvaničnog Javinog API imenskog prostora. Onde gde se zahteva ili je veoma preporučljivo da se koristi izvorni kod, izvršavanje se obavlja iz nekoliko "VM" klasa. Ime neke VM klase odgovara nazivu klase koja zahteva izvorni kod, plus dodatni VM prefiks: VM Objekat, VM String i tako dalje. VM klase, koje se čuvaju odvojeno od ostatka koda, su privatni i finalni paketi. Metode ovih klasa sadrže ključnu reč izvorni, ukazujući na neophodnost podrške izvorne biblioteke. Takve biblioteke su omogućili autori Java virtualnih mašina, stoga GNU Klaspat može biti povezan sa skoro svakom Java virtuelnom mašinom ako su izvori te virtualne mašine dostupni i mogu da se modifikuju.

Podrška za karakteristike novih jezika u Javi 1.5 uredi

Pre verzije 0.95, svaka GNU Klaspat verzija se sastojala od dve odvojene objave; jedna, koja predstavlja glavnu granu razvoja i druga koji je nosila sadržaj više eksperimentalnih grana, popravke i dodatke, kao što su generiče, grane za nabrajanje i komentare, koje se pojavljuju u Javi 1.5.[5]

Od verzije 0.95,[6] Javini 1.5 dodaci kako što su generički su bili potpuno stpojeni sa glavnom granom. Grana može biti izgrađena korišćenjem Eklips kompajlera, ecj, kako bi se napravio Java 1,5 izvorni kod. U slučaju GCJ-a, ecj se koristi kako bi se obavila početna faza, a onda da se prevede bitkod u izvorni kod. Od verzije 0.95 pa nadalje, GNU Klaspat takođe podržava izradu i pokretanje novog GPL Java kompajlera otvorenog koda koji koristi GNU Klaspat i dozvoljava da GNU Klastpat biblioteke, alati i nedovršene verzije budu kompajlirane sa javak-om.

Klase iz domena omg.org uredi

 
San i GNU Korba interaguju u dvoklijentnoj igri[lower-alpha 1]

GNU Klaspat ne prihvata nijedan kod koji nema besplatnu licencu, ili koji je automatski napravljen od koda koji nema besplatnu licencu. Standardni Java API sadrži veliki broj klasa iz omg.org domena koje su obično napravljene iz IDL fajlova, i objavljene od strane Grupe za upravljanje objektima. "Upotrebi, ali ne i modifuj" licenca ovih fajlova se smatra ne-besplatnom. Iz tog razloga, pomenute GNU Klastpat klase su napisane od nule, koristeći se samo zvaničnim OMG specifikacijama. Zbog toga je ovaj deo GNU Klaspat-a slobodan kao i bilo koji drugi kod u projektu.

Vidi još uredi

Reference uredi

  1. ^ GCJ applet viewer Arhivirano na sajtu Wayback Machine (18. septembar 2009), Koders.
  2. ^ "Jupiter", EECG, U Toronto.
  3. ^ "GNU Classpath Library Coverage against OpenJDK6", J API Arhivirano na sajtu Wayback Machine (6. septembar 2015), Fuseyism.
  4. ^ "GNU Classpath Library Coverage against OpenJDK7", J API Arhivirano na sajtu Wayback Machine (4. mart 2016), Fuseyism.
  5. ^ "GNU Classpath "95% and counting" 0.19 released", The GNU Project (announcement), Software, The Free Software Foundation, 2005-11-02, retrieved 31 May 2011.
  6. ^ "The release of GNU Classpath 0.98 "Better Late Than Never", The GNU Project (announcement), Software, The Free Software Foundation, 2009-02-05.

Spoljašnje veze uredi