3 ms·
> Java was going to be the universal systems language My heart stopped here for a while [0]. Are there any papers on Java as system language? I'd love to read
by alfanick 8y ago
> Java was going to be the universal systems language
My heart stopped here for a while [0]. Are there any papers on Java as system language? I'd love to read more - as embedded developer, this really is out of my scope.
[0]: don't worry it does it 60 times per minute
- pjmlp 8y agoYes, Sun played with idea of putting a JVM on the Solaris kernel. https://www.researchgate.net/publication/220938922_Writing_Solaris_device_drivers_in_Java https://www.researchgate.net/publication/220938922_Writing_S... They also created SunSPOT before RasperryPI, Arduino were even ideas, where beyond a basic layer written in native code, everything else was Java based. http://www.sunspotdev.org/ http://www.sunspotdev.org/ Also Java is actually used as systems language in some scenarios, just not on your desktop. When it is compiled AOT to be deployed on bare-metal scenarios such like the SDKs being sold by PTC and Aicas (just two examples, there are other companies) https://www.ptc.com/en/products/developer-tools/perc https://www.ptc.com/en/products/developer-tools/perc https://www.aicas.com/cms/ https://www.aicas.com/cms/ When it is used on Android Things to write user space drivers. https://developer.android.com/things/sdk/drivers/ https://developer.android.com/things/sdk/drivers/
- DonHopkins 8y agoEven 16 or so years earlier in 1990, Sun played with the idea of putting a PostScript interpreter in the SunOS kernel. Like NeWS was the Network extensible Window System, so NeFS was the Network extensible File System, or NFS 3.0. It was actually a great idea, just a wee bit before its time, and very poorly named and positioned! For example: If you want to make a copy of a file on the server, you can send a PostScript program that runs in the kernel and copies the file locally on the server in the kernel with ZERO context switches, instead of sending it over the net to the client, then back from the client to the server. Even if you rsh'ed the user command "cp" on the server, it would still incur context switching, but if your copy loop was running in the kernel then it didn't need to switch in and out and in and out for every block it copied. There are more examples of why it's a great idea in the paper. This comparison of NeWS to AJAX also applies NeFS, which is like kernel NeWS with file operations instead of a graphics library -- it also saves you lots of user/kernel context switches even if you're not doing any networking: https://en.wikipedia.org/wiki/NeWS https://en.wikipedia.org/wiki/NeWS >NeWS was architecturally similar to what is now called AJAX, except that NeWS coherently: >- used PostScript code instead of JavaScript for programming. >- used PostScript graphics instead of DHTML and CSS for rendering. >- used PostScript data instead of XML and JSON for data representation. It didn't go over very well because the unenlightened philistines of the time couldn't get their head around an API to the file system that wasn't compatible with creat open close read write and ioctl. http://donhopkins.com/home/nfs3_0.pdf http://donhopkins.com/home/nfs3_0.pdf Network Extensible File System Protocol Specification 1.0 Introduction The Network Extensible File System protocol (NeFS) provides transparent remote access to shared file systems over networks. The NeFS protocol is designed to be machine, operating system, network architecture, and transport protocol independent. This document is the draft specification for the protocol. It will remain in draft form during a period of public review. Italicized comments in the document are intended to present the rationale behind elements of the design and to raise questions where there are doubts. Comments and suggestions on this draft specification are most welcome. [...] Example: Copy a File Make a copy of file (foo) called (bar). Both files exist in the same directory dfh. The request starts by looking up the filehandle for the file to be copied and creates a filehandle for the copy. The loop operator executes a procedure that copies the file using 1K reads and writes. It maintains a running count of the number of bytes yet to be copied. % Copy a file % dfh (foo) lookup /foofh exch def % get filehandle for (foo) dfh (bar) create /barfh exch def % create filehandle for (bar) /bytes foofh getattr /fsize get def % get size of (foo) so we know how much to copy /offset 0 def % initialize offset for (bar) { /data foofh offset 1024 read def % read up to 1K from (foo) barfh offset data write % write up to 1K to (bar) /bytes bytes 1024 sub def % decrement byte count by 1024 bytes 0 le { exit } if % if it’s < 0 then we’re done /offset offset 1024 add def % increment offset by 1024 } loop barfh getattr 1 encodereply sendreply % return the attributes of the new file to client.
- srean 8y agoLove HN for comments like these.
- pjmlp 8y agoMany thanks for the overview, NeWS had lots of great ideas, pity we got stuck with X11 on UNIX systems.
- DonHopkins 8y agoHere's some old but interesting discussion about NeFS that I saved from Comp.protocols.NFS. (they were SHOCKED I say SHOCKED!!!) http://donhopkins.com/home/archive/NeWS/Comp.protocols.nfs.NeFS-discussion.txt http://donhopkins.com/home/archive/NeWS/Comp.protocols.nfs.N... From: brent@terra.Sun.COM (Brent Callaghan) Newsgroups: comp.protocols.nfs Subject: NeFS Protocol Spec Available Keywords: NFS version 3 Date: 13 Feb 90 01:57:31 GMT NeFS is not NFS. It started out as an NFS protocol rev (NFS version 3) but its protocol is a radical departure from the NFS's remote procedure call model. In order to avoid confusion with NFS we're calling it NeFS for now - Network Extensible File System (the similarity of the name to a window system protocol is entirely intentional). A draft spec for this new protocol is available via anonymous FTP from titan.rice.edu (128.42.1.30) as /public/nefs.doc.ps The file is ~250K of PostScript. It prints 52 pages. The spec is not available in any other format. Comments, suggestions, flames etc are welcomed. Direct them to "nfs3@sun.COM". Thanks Made in New Zealand --> Brent Callaghan @ Sun Microsystems uucp: sun!bcallaghan phone: (415) 336 1051 From: mo@messy.bellcore.com (Michael O'Dell) Newsgroups: comp.protocols.nfs Subject: RE: NeFS protocol Date: 23 May 90 11:57:34 GMT Organization: Center for Chaotic Repeatabilty Dave Clark, Internet Architect, just gave a talk here at Bellcore and he was lobbying for exactly the kind of approach being proposed by the new NeFS protocol - don't send packets, send programs! I do recommend you read the NeFS document and think about it hard before you jump to any conclusions. The proposed model is novel, and goes a long way toward moving us to "action at a distance" instead of "remoting local operations." This turns out to be vitally important if networks are to scale with latency, since, as Dave Clark so eloquently showed, for large networks (ie, country-sized), as bandwidth goes to infinity latency goes to 30milliseconds, and you can't do anything about that, because you can't change the speed of light. So, to do very well in the face of that, you must avoid round-trip delays like the plague. Sending a program to the server can save many round-trips for many operations. Anyway, it is interesting reading. Particularly in light of Dave Clark's talk. -Mike
- ridruejo 8y agoThe genesis was actually as an embedded language :) https://en.wikipedia.org/wiki/Java_(programming_language)#History https://en.wikipedia.org/wiki/Java_(programming_language)#Hi...
- tluyben2 8y agoFor embedded and systems language in actual use (a lot) today this is also relevant https://github.com/EnigmaBridge/javacard-curated-list/blob/master/README.md https://github.com/EnigmaBridge/javacard-curated-list/blob/m...
- nickpsecurity 8y agoMy favorite examples: http://www4.cs.fau.de/Projects/JX/ http://www4.cs.fau.de/Projects/JX/ https://www.jopdesign.com https://www.jopdesign.com https://www.cs.cornell.edu/Info/People/chichao/sip99.pdf https://www.cs.cornell.edu/Info/People/chichao/sip99.pdf https://www.azul.com/products/vega-processor/ https://www.azul.com/products/vega-processor/ Although I don't keep them bookmarked, I looked into my collection of real-time or embedded GC's to find these that you might feel inspired by or see as potentially useful. :) https://www.diva-portal.org/smash/get/diva2:20899/FULLTEXT01.pdf https://www.diva-portal.org/smash/get/diva2:20899/FULLTEXT01... http://www.vmars.tuwien.ac.at/documents/extern/3017/diss_puffitsch.pdf http://www.vmars.tuwien.ac.at/documents/extern/3017/diss_puf... https://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon12AndThen.pdf https://researcher.watson.ibm.com/researcher/files/us-bacon/... http://realtimegarbagecollector.com http://realtimegarbagecollector.com