Need an idea for a new tech company/product? How about a new Symbian-like RTOS phone with an OpenJDK? There's Zulu and Liberica and a few others, at the bottom of this article.
In beginning my 5th day of working on the Intel Galileo board, I stumbled upon some Java application, JNI, or Java Native Interface, that can be used to connect to the board, both in native and embedded packages (ME).
https://www.youtube.com/watch?v=BMOgQnypzss&t=41s
Around the same time that the Galileo board was released, Java 6 & 7 lost extended support by their parent company, and thus a new 3rd party began to offer support:
https://www.azul.com/products/azul-support-roadmap/
https://endoflife.date/azul-zulu
Which led me to wonder about my 2008-2009 era Nokia Symbian phones, the E51 and E63 (and the C5-03), which supported Java Micro (embedded) for application development. It was the equivalent of downloading an .exe file that Microsoft didn't officially support before they created the Windows store, and would still work on the phone if it wasn't included with the locked or unlocked phone. It was a glorious era (ok not super perfect, but still compact and quick to use).
So this led me to wonder, why not create a big open source hardware project that works closely with a lightweight open source Java SDK and an open source Symbian OS? The hardware could be manufactured on a RISC-V chip with ARM9-like performance, and packages could be small, and not humongous like 100MB Android apps.
I remember Symbian switched to Qt late in their product development (around 2010), but the phones after the early 2005-era Symbian phones pre certificate signing were actually fast and fun to use. Yes, there were worms and other vulnerabilities, but it could serve as a solid template on how to start an independent phone company- even vertically integrated, but it doesn't have to attract every customer, just one who likes the simplicity of an RTOS. And it can include TouchScreen support, just like the later Symbian versions did, not that it should get rid of physical Qwerty keys altogether, but offer options and an open marketplace store like F-Droid, except not super robot themed. From my searches:
"Although Symbian was difficult to program for, this issue could be worked around by creating Java Mobile Edition apps, ostensibly under a "write once, run anywhere" slogan.[27] This wasn't always the case because of fragmentation due to different device screen sizes and differences in levels of Java ME support on various devices."
https://www.techtarget.com/searchsoftwarequality/definition/program
Application development
From 2010, Symbian switched to using standard C++ with Qt as the main SDK, which can be used with either Qt Creator or Carbide.c++. Qt supports the older Symbian/S60 3rd (starting with Feature Pack 1, a.k.a. S60 3.1) and Symbian/S60 5th Edition (a.k.a. S60 5.01b) releases, as well as the new Symbian platform. It also supports Maemo and MeeGo, Windows, Linux and Mac OS X.[44][45]
Alternative application development can be done using Python (see Python for S60), Adobe Flash Lite or Java ME.
Symbian OS previously used a Symbian specific C++ version, along with CodeWarrior and later Carbide.c++ integrated development environment (IDE), as the native application development environment.
Web Runtime (WRT) is a portable application framework that allows creating widgets on the S60 Platform; it is an extension to the S60 WebKit based browser that allows launching multiple browser instances as separate JavaScript applications.[46][47]
Java
on Symbian S60 (primarily Nokia devices) relies on Java
ME (Micro Edition),
typically utilizing the CLDC (Connected
Limited Device Configuration) and MIDP (Mobile
Information Device Profile) specifications. Java programs ran as
MIDlets (bundled in .jar or .jad files)
and were integrated directly into the main applications menu.
[1, 2, 3, 4, 5]
? How to Run Java Apps on S60
Running a Java app or game (.jar file) on a physical Symbian device or an emulator is straightforward: [1, 2]
Transfer: Send the
.jar(and optional.jaddescriptor) file to your phone via Bluetooth, or transfer it using a memory card reader.Install: Use the phone's built-in File Manager to locate the file and click it to trigger the installation.
Run: The app will be treated like a native program and will appear directly in your app menu. [1, 2, 3]
-------------------------------------
Symbian UI variants, platforms
Symbian, as it advanced to OS version 7.0, spun off into several different graphical user interfaces, each backed by a certain company or group of companies. Unlike Android OS's cosmetic GUIs, Symbian GUIs are referred to as "platforms" due to more significant modifications and integrations. Things became more complicated when applications developed for different Symbian GUI platforms were not compatible with each other, and this led to OS fragmentation.[62]
User Interfaces platforms that run on or are based on Symbian OS include:
S60, Symbian, also called Series 60. It was backed mainly by Nokia. There are several editions of this platform, appearing first as S60 (1st Edition) on Nokia 7650. It was followed by S60 2nd Edition (e.g. Nokia N70), S60 3rd Edition (e.g. Nokia N73) and S60 5th Edition (which introduced touch UI e.g. Nokia N97). The name, S60, was changed to just Symbian after the formation of Symbian Foundation, and subsequently called Symbian^1, 2 and 3.
Series 80 used by Nokia Communicators such as Nokia 9300i.
Series 90 Touch and button based. The only phone using this platform is Nokia 7710.
UIQ backed mainly by Sony Ericsson and then Motorola. It is compatible with both buttons and touch/stylus based inputs. The last major release version is UIQ3.1 in 2008, on Sony Ericsson G900. It was discontinued after the formation of Symbian Foundation, and the decision to consolidate different Symbian UI variants into one led to the adoption of S60 as the version going forward.[63]
MOAP (Mobile Oriented Applications Platform) [Japan Only] used by Fujitsu, Mitsubishi, Sony Ericsson and Sharp-developed phones for NTT DoCoMo. It uses an interface developed specifically for DoCoMo's FOMA "Freedom of Mobile Access" network brand and is based on the UI from earlier Fujitsu FOMA models. The user cannot install new C++ applications. (Japan Only)
OPP [Japan Only], successor of MOAP, used on NTT DoCoMo's FOMA phone.
------------------------------------------------
Yes, the convoluted UI platform incompatibility was a reason Symbian lost market share, but it doesn't mean it had to be lost forever. The concept was right, but the market conditions were not. An independent phone OS and app store (including lots of free apps would be better for the consumer, because they would have not only more OEMs to choose from, but potentially a lot new User interfaces that Android, iOS, and Samsung's UI don't or can't always offer. I know how powerful the phones are, and having more RAM and storage often feels necessary nowadays. But it's a lie, and there's a lot of simple phones one can use for the sake of needing to simplify. It doesn't have to replace the main phone, and it doesn't have to be wasteful, as it could be easily repairable and use completely open source schematics for interoperable components, including display, radio slots (PCI-e express for wifi, etc). This isn't necessarily part of the solar phone I've talked about before, but it could share one platform with it- maybe not the only one. A modular phone concept is not new- Phonebloks had the idea back in 2014. The difference is that I don't view phone communication as depending on the latest technologies, but rather a reliable supply chain of mature manufacturers, like buying replacement parts for a car that was built in 1990 and being able to find them many years later. Phones use a lot of mobile data nowadays, and it's not because they must to send basic texts and browse websites. Disabling Javascript and flash allowed phones to browse quite well on crystal clear phones with small 320x240 screens back then, so reading text that was size 8 font wasn't as bad on the eyes as it might seem. The backlight on phones today is far more eye-straining. I imagine the phone would feature more lightweight browsing experiences like Project Gemini (no, not that Google AI client, but before that):
https://en.wikipedia.org/wiki/Gemini_(protocol)
This would allow the user to control how much data they could expect to use when visiting a site, and reach predictable website sizes when accessing a news site or email. When you know there's a character limit on a microblogging client, it definitely helps to know you can plan your mobile plan. And while many people prefer unlimited data plans (as they are often available), it's not something that should be relied upon or expected. Not only that, but I've recently tried out a 128Kbps unlimited mobile plan after exhausting the fast 5G package (1-3GB). The only reason I had to upgrade it is because so many apps and websites today require Javascript and advanced browsers. 128Kpbs is more than 4x as fast as my 28kbps modem from the late 90s, and I recall getting a peak download of 3KB/s, and was able to download more webpages because they were lighter on average back then. Even when I switched to DSL in the early 00's, I only had a 1.5Mbps connection, and that was plenty fast for accessing 90% of websites and data. For example, Gmail's web browser takes several minutes to load on a desktop, because they no longer offer the HTML version (which was dropped in early 2024). On a 128Kbps connection, one is forced to use the mobile app instead of a hotspot, the former of which depends on that app being preinstalled, to load emails slightly faster. While some phones today have higher compression codecs like .heic and .av1 and could theoretically use less data to send or stream small files ( i do remember realplayer and smaller 64Kbps video codecs though), they depend on more advanced chipsets, something that older computers don't always have. When I tried using Windows 10 on a 128Kbps connection, I couldn't even download a newer version of Chrome or Firefox because the update and the portable installer both crashed, and could not resume where the packets left off.
Back in the early 00's there were download managers in things like Limewire and utorrent that may have been one of the first to pioneer resumed downloads because the files were already split up into packets, so when they were received by various peers they would be reassembled anyways. When using a single FTP or HTTPS, modern browsers sometimes, but do not always have this feature integrated. I've seen it work recently on both FF and Chrome, but a lot of times it failed and wouldn't reconnect, or the sender cancelled the sending operation because it didn't complete within a certain time frame. For good measure, I also downloaded K-Meleon and Netsurf, which do provide a status bar of how many KB were downloaded. You can also right click in a modern Chromium based browser and select "Inspect," which also shows all the files/elements that get downloaded, and often there are over 30 per page. These are features I wish the browser would at least include a status bar or toggle menu, so I could see how its downloading and whether I really can resume, because many mobile providers still sell previous data packages, and one can blow through a data plan by having a failed download multiple times. I even remember Microsoft changing their Update policy so that their downloads wouldn't keep starting all the way over from scratch, by allowing PCs on the local network to upload the same Windows update package, and Steam also pioneered or optimized this for the game delivery network, which is very impressive since it lets you throttle the download if you need to avoid running out of data yourself.
Conclusion
In summary, as the world moves to even faster mobile networks like 5G and 6G, it doesn't mean old operating systems and architectures need to be completely abandoned. In fact, this era might be a better time than ever, with hundreds of open source projects being capable of developing interesting hardware that isn't dependent on Linux or Microsoft to develop a mobile phone for the sake of using a portable phone. But I'm not strictly utilitarian. I did play games on the Symbian too- I recall there was the Ovi store which had lots of Java games. I remember playing Cricket and a game similar to pipe mania, but themed after oil pipelines (it's been said there were many clones):
https://allaboutsymbian.com/reviews/item/12799_Pipe_Mania.php
But to do all this, one can't rely on the desktop OpenJDK. There'd need to be an embedded version, similar to the Java ME that the Symbian S60 phones used (version 9 of the Symbian OS)
And here's what I found:
"When developers refer to "OpenJDK embedded micro" or embedded Java, they are typically looking for a highly optimized, small-footprint Java Virtual Machine (JVM) designed for microcontrollers, system-on-chips (SoCs), or IoT devices. [1, 2, 3, 4]
- Liberica JDK for Embedded: Built by BellSoft, this OpenJDK distribution is highly optimized for ARM and RISC-V CPUs. It features a "MinimalVM" to lower RAM/disk footprint and includes the Device I/O (DIO) API natively. It is widely used on devices like Raspberry Pi, NVIDIA Jetson Nano, and NXP iMX processors. You can download exact builds on the BellSoft Liberica JDK for Embedded page. [1]
- Azul Zulu for Embedded: Azul Systems provides highly tuned builds of OpenJDK for ARM, x86, and PowerPC architectures. They offer specialized headless and head-full runtime packages specifically tailored to run reliably on edge nodes and small compute devices. [1, 2, 3]"
As for standard open Java alternatives, here is what Gemini found:
- Eclipse Temurin: Maintained by the Eclipse Foundation's Adoptium Working Group, this is a highly popular, vendor-neutral distribution known for rigorous quality assurance testing. [1, 2]
- Amazon Corretto: A free, multiplatform distribution provided by Amazon. It comes with long-term support (LTS) and is highly optimized for cloud workloads on AWS. [1, 2]
- Azul Zulu: Offered by Azul Systems, it provides reliable free community builds as well as paid commercial support tiers. It is well-regarded for extended support of legacy Java versions. [1, 2, 3]
- BellSoft Liberica JDK: The default runtime choice for the popular Spring Boot framework. BellSoft offers specialized lightweight container images and builds optimized for fast startup. [1, 2]
- Red Hat OpenJDK: Fully supported and integrated into Red Hat Enterprise Linux (RHEL) and OpenShift subscriptions. Red Hat serves as a primary upstream steward for several legacy LTS versions. [1]
- Microsoft Build of OpenJDK: Microsoft's free distribution optimized for Azure cloud services and internally utilized across various Microsoft products. [1, 2, 3]
- GraalVM: A high-performance runtime that compiles Java applications directly into native executables. This significantly reduces memory overhead and allows near-instant application startup times. [1, 2]
- IBM Semeru: Runtimes built on top of the Eclipse OpenJ9 JVM architecture instead of the standard HotSpot engine, featuring unique garbage collection behaviors optimized for specific cloud scalability needs. [1, 2]"
No comments:
Post a Comment