TerminalTextEffects (TTE) je engine pro vizuální efekty v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Od čtvrtka 30. 5. do soboty 1. 6. lze v Praze navštívit Veletrh vědy, tj. největší populárně naučnou akci v České republice, kterou každoročně od roku 2015 pořádá Akademie věd ČR. Vstup zdarma.
Canonical představil Ubuntu optimalizované pro jednodeskový počítač s RISC-V procesorem Milk-V Mars.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 24.5.1 Havier. Přehled novinek v Changelogu.
Společnost xAI založena Elonem Muskem a stojící za AI LLM modelem Grok získala investici 6 miliard dolarů.
Finálový zápas mistrovství světa v ledním hokeji přinesl nový rekord NIX.CZ (𝕏): "Dosavadní absolutní maximum našeho propojovacího uzlu bylo překonáno v čase 21:10, kdy jsme při přenosu dat dosáhli 3,14 Tbps. Je třeba také doplnit, že po deváté hodině večerní byly na maximu i ostatní datové přenosy nesouvisející s hokejovým šampionátem".
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 12. a 13. října na FIT ČVUT v pražských Dejvicích. CfP poběží do konce prázdnin, pak proběhne veřejné hlasování a výběr přednášek.
Na crowdsourcingové platformě Crowd Supply byla spuštěna kampaň na podporu open source biometrického monitoru ve tvaru hodinek HealthyPi Move. Cena je 249 dolarů a plánovaný termín dodání listopad letošního roku.
Firma Murena představila /e/OS verze 2.0. Jde o alternativní sestavení Androidu bez aplikací Google. Mezi novinkami je podrobnější nastavení ochrany soukromí před sledováním aplikacemi. Murena prodává několik smartphonů s předinstalovaným /e/OS (Fairphone, repasovaný Google Pixel 5).
Na úplném začátku je nezbytné si vyjasnit jednu otázku. Co je to vlastně Java? Pojem je to trochu nejednoznačný, jelikož se v dávných dobách, snad v záchvatu čirého nadšení nad šikovnou ochrannou známkou v laboratořích společnosti Sun rozhodli pojmenovat Java úplně vše. Zpátky k původní otázce – co je to vlastně Java? Pokud hovoříme (nejen) o otevřených implementacích, je potřeba specifikovat, o které části vůbec hovoříme. Takže, co všechno je vlastně Java?
Přestože současným vlastníkem společnosti Sun Microsystems je společnost Oracle, podstatná část historie se odehrávala pod taktovkou Sunu, tudíž se budu odkazovat k názvu Sun tam, kde to z hlediska historie má smysl. Navíc, ačkoli si je autor vědom rozdílu mezi svobodným (free) a otevřeným (open source) software, v textu se budu odkazovat pouze na pojem otevřený software.
Takže, co je ta Java vlastně zač.
Jedná se o staticky typovaný, objektově orientovaný jazyk definovaný Java Language Specification. Ta říká, jak má vypadat příkaz if, jaký význam mají složené, špičaté závorky, středníky a podobně.
Binární soubor obsahující posloupnosti instrukcí pro virtuální stroj, který je vykonává. Programy v jazyce Java jsou nejčastěji překládány (ale ne nezbytně) právě do tohoto mezikódu. Mezikód je orientován na zásobníkový stroj, tudíž instrukce předpokládají operandy na zásobníku.
Standardní knihovna definuje základní sadu tříd použitelných v daném programovacím jazyce. Obsahuje třídy pro práci se vstupem a výstupem, řetězci, vlákny, síťováním, grafikou, matematikou a podobně.
Neboli Java Virtual Machine – JVM – je program vykonávající instrukce nahrávané z Java .class souboru. Ono vykonávání může být od prosté interpretace instrukcí po používání sofistikovaných technik překladu za běhu – Just In Time (JIT). Další významnou úlohou stroje je automatická správa paměti – garbage collecting. A v neposlední řadě pomáhá zakrývat rozdíly mezi platformami. Právě JVM je integrální součástí celého prostředí.
Java Runtime Environment – JRE – je tvořeno virtuálním strojem, standardní knihovnou a pár podpůrnými nástroji (keytool) potřebnými pro běh programů v Java.
Java Development Kit – JDK je JRE a další nástroje nezbytné pro překlad kódu, jako překladač javac, nástroj pro tvorbu dokumentace javadoc, nástroj pro práci s Java archívy jar, ladící nástroje, podporu pro JNI a další.
Věci jako Java webstart, Java applety, doplňkové knihovny a podobně.
Platforma Java je kombinace běhového či vývojového prostředí spolu se standardní knihovnou. Platforem existuje několik – od "klasické" Java Standard Edition, přes Java EE, což je v podstatě SE verze s obohacenou standardní knihovnou, po Java ME pro mobilní telefony, která používá jiný virtuální stroj, tak i dosti odlišnou standardní knihovnu.
Poslední právní součást je neméně důležitá – Java je registrovaná známka společnosti Oracle, tudíž ne každý software "náhodou" vypadající jako Java se tak může skutečně nazývat. Společnost Oracle umožňuje používání tohoto názvu pouze v případě, že alternativní implementace projde testy kompatibility.
Právě toto rozdělení (s výjimkou posledního bodu) usnadňuje vývoj opensource implementace – potřebujeme pouštět Java programy na speciální platformě? Napíšeme pouze virtuální stroj. Není nutné psát překladač, nebo podporu pro applety. Většina open source implementací je ve skutečnosti složena z nezávislých částí, protože proč vytvářet standardní knihovnu, když existuje použitelná otevřená verze?
Zvláštností světa kolem Javy je jeho nejednoznačný postoj k otevřenému kódu. Na jednu stranu existuje ohromné množství otevřeného kódu napsaného v tomto jazyce a vývojáři jsou zvyklí open source kód tvořit i používat. Na straně druhé z hlediska vlastního JDK/JRE existoval a existuje jednoznačný postoj používat výhradně "originál od Sunu", jakožto funkční a referenční implementaci.
Tento stav kritizoval Richard Stallman ve svém článku Java Trap. Cílem FSF (a podle něj i otevřeného software) je vytváření svobodné a otevřené platformy. Tudíž mít otevřený software, závisející na nesvobodném překladači/prostředí, je v rozporu s touto filozofií. Mimochodem stejnou filozofii zastává i většina linuxových distributorů, tudíž neexistence funkčního otevřeného Java prostředí velice ztěžovalo distribuci Java programů.
Proč vlastně vytvářet open source implementaci, když ta oficiální je zcela zdarma a funguje? Těch důvodů může být více
GNU Compiler Colection zahrnuje i podporu pro jazyk Java. Tato implementace se liší od ostatních, protože umožňuje překlad Java kódu jak do bytekódu, tak i do nativního kódu. Sada zahrnuje mimo jiné parser z ecj (Eclipse Java compiler), vlastní překladač gcj, interpret gij, a také běhové prostředí pro nativní programy a knihovny libgcj.so. GCJ se obvykle doplňuje o externí nástroje fastjar a gjdoc tak, aby vytvořilo kompletní JDK.
Běhová knihovna tohoto projektu se nazývá GNU Classpath – je to implementace Java SE 1.4.2 a 5.0 pod licencí GNU GPLv2 s takzvanou Classpath výjimkou. Ta umožňuje překlad a běh neGPL Java kódu nad GNU Classpath. Tato výjimka je nezbytná, protože každá třída v jazyce Java je odvozena od java.lang.Object, čímž by se každý kód přeložený pod touto knihovnou musel považovat za dílo odvozené od GNU GPL.
Pohled projektu GCJ na jazyk Java je odlišný – jeho autoři jej berou jako každý jiný jazyk přeložitelný do binárního kódu. Doslova jako podmnožinu C++. Rozhraní CNI potom zachovává binární kompatibilitu kódu napsaného v jazyce Java, který je po překladu kompatibilní s kódem v C++. Dále definuje typy pro zachování kompatibility, jako třeba jint v C++ == Integer v Javě.
Ambiciózní projekt Harmony pod křídly Apache Software Foundation, jednoho z největších producentů open source Java software vůbec. Jedním z cílů projektu bylo spojit existující implementace do jedné, nicméně z důvodu licenční nekompatibility mezi GNU GPLv2 a Apache licencí nebylo možné využít největší část existujícího kódu, knihovnu GNU Classpath. Projekt od počátku počítal s masivní podporou od společností jako IBM, Intel, nebo Google, které se do projektu skutečně zapojily.
Virtuální stroj napsaný na Vídeňské univerzitě. První verze byla vydána už v roce 1997 a v té době již zvládal kompilaci do nativního kódu. Pro zajímavost, JVM od jisté společnosti Sun Microsystems zvládalo podobné techniky až od roku 1999 díky HotSpot. Později byl uvolněn pod GNU GPL a používá se ve spojitosti s GNU Classpath.
Virtuální stroj poprvé vydaný v roce 1996 byl od počátku open source. Ačkoli je pomalejší než jeho konkurence, jeho výhodou je menší velikost a snadná portabilita, díky které se využívá především v embedded světě. Rovněž používá GNU Classpath.
Další z free software implementací. Ačkoli co do JIT schopností zaostává za konkurenty, jako jedna z mála alternativních implementací zvládá JVMDI (Java Virtual Machine Debugging Interface) a JDWP (Java Debug Wire Protocol).
Dalvik je virtuální stroj pro programy napsané v jazyce Java pro platformu Google Android. Velice často je kladena na roveň platformě Java a právní část otázky je předmětem aktuálně probíhajícího soudního sporu. Čistě technicky se má situace takto. Celá platforma se sestává z těchto částí:
Formát dex a celý stroj Dalvik jsou navíc registrově orientované, na rozdíl od zásobníkového Java. Android je trošku jako chytrá horákyně, nicméně "Java" to není. Jako nejlepší popis je možné uvést: platforma inspirovaná (sice možná o trochu více než třeba .NET) Javou. Není možné vzít libovolný Java program a spustit jej na platformě Android, a to jak z důvodu nekompatibility na úrovni bytekódu, tak i na úrovni standardní knihovny.
Na rozdíl od výše uvedené Android platformy je IKVM.NET skutečně Javou. Jedinou odlišností je, že celý framework je napsán v .NET a navíc obsahuje nástroje pro překlad Java kódu i do Common Intermediate Language, který pak může být přeložen do standardní .dll knihovny této platformy.
Nahlédli jsme do světa otevřených implementací platformy Java – opravdu jen nahlédli, těch implementací existuje mnohem více. Ukázali jsme si, že neexistuje pouze klasická JIT cesta (gcj) nebo že alternativní implementace mohou obsahovat zajímavé vlastnosti. V následujícím díle se zaměříme na projekty OpenJDK, Icedtea, jejich vztah k Oracle Java SE a navíc poodhalíme zákoutí Java Wars.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
Přeložit si to umím, ale která konkrétně komponenta Javy (z výše uvedených) to je? Celé JRE, nebo jenom standardní knihovna?GNU CLasspath je jenom knihovna, tj rt.jar (a případně nějaký ten bordel jako plugin.jar a podobně).
Odstavec o Harmony je mi jasný ještě méně - vůbec nevím, které komponenty ho tvoří, v jakém je stavu a jaký je jeho vztah ke GNU JavaHarmony je kompletní implementace JDK, tudíž knihovna, virtuální stroj, překladač a podobně.
nebo prostě jen načíst 2 64bit čísla ze souboru a něco nad nimi provést, to je bolest.souhlasim, v normalnim jazyce se nemusis starat o velikost datoveho typu :-]]
V normalnim jazyce se nemusis starat o velikost datoveho typuMyslím, že pro mě žádný normální jazyk neexistuje, na všech mi něco vadí
kumodule
jsem udělal užitečnější práci než tihle...
THIS PROJECT HAS MET ITS RESEARCH GOALS AND IS NOT ACTIVELY MAINTAINED ANYMORE.Čo je škoda, pretože na rozdiel od Sunovskej javy prešiel cez valgrind bez frflania.