7 ms·
r9: Plan 9 in Rust
- mrlonglong 3y agoSo I grabbed the sources, built r9. When I run it under QEmu it hangs. I looked for documentation but didn't find much. Any ideas?
- rbanffy 3y agoIt may be that I didn’t “get” Plan 9, but it feels very tied to its GUI the same way Windows does. Yet, the way it treats the network transparently is fascinating and I wish we had more diversity in the OS space and Plan 9 would be brilliant in a cloud setting where you could just extend your workstation’s capabilities to whatever cloud service you can pay for. There has to be more in the OS space than Unixes and MVS-derived OSs
- pjmlp 3y agoAndroid, ChromeOS, iOS and iPad OS have very little correlation to UNIX userspace, if any at all. Same applies to cloud native development, when going serverless, or deploying language runtimes directly into cloud infrastructure. So there is some hope beyond UNIX and MVS derived OSes.
- tourmalinetaco 3y agoAren’t all of them based on Linux, which itself is based off UNIX? So while they’re more detached, they’re still UNIX under the hood.
- flenserboy 3y agoiOS & iPadOS are Mac(NeXT)-derived, thus are UNIX under the hood.
- deleted 3y ago[deleted]
- mtillman 3y agoUnix like and only mildly for iOS.
- heyoni 3y agoWhere is this mild part coming from?
- pjmlp 3y agohttp://newosxbook.com/home.html http://newosxbook.com/home.html https://www.amazon.com/Mac-OS-iOS-Internals-Programmer/dp/1118057651 https://www.amazon.com/Mac-OS-iOS-Internals-Programmer/dp/11... Basically the C, C++ and Objective-C stuff, nowadays Swift as well, completly unrelated to UNIX.
- KerrAvon 3y agoCould you elaborate a little? I don’t understand why the libraries make macOS less UNIX than some other Unixlike.
- pjmlp 3y agoWho mentioned macOS?!? My original statement was, > Android, ChromeOS, iOS and iPad OS have very little correlation to UNIX userspace, if any at all. Those books show how iOS and iPad OS have very little UNIX across the whole stack, and how much was taken from OS X.
- tymscar 3y agoNot just Unix like. For example macOS is fully unix certified: https://www.opengroup.org/openbrand/register/brand3683.htm https://www.opengroup.org/openbrand/register/brand3683.htm
- pjmlp 3y agoIt hardly matters when userspace doesn't expose any POSIX layer, beyond ISO C and ISO C++ standard library. Apple stuff is unrelated to Linux.
- butterisgood 3y agoNone of Apple’s operating systems are based on Linux. iOS, MacOS, TVOS, and WatchOS are all based on XNU/Darwin, which is in the BSD lineage (predates Linux), but also incorporates the Mach Microkernel (though the OS is not a microkernel style system)
- rbanffy 3y ago> None of Apple’s operating systems are based on Linux Not now, but before Apple was sold to NeXT for a Steve Jobs minus $400 million, there was MkLinux. It was an interesting way to run Linux on beige PowerMacs and many places I've worked with gladly adopted it giving new life to abandoned Macs as X terminals and lightweight workstations. Oddly enough, it has a newer Mach kernel than NeXT's OS.
- WastingMyTime89 3y agoI’m not sure I understand what you mean (well to be honest if blunt I think I understand and believe it doesn’t really make sense). Android has bsd-derived core utils on top of a souped up Linux kernel. That’s pretty much a textbook Unix-like. Meanwhile Darwin is Unix-certified and a significant part of XNU was originally lifted from BSD. Unless you meant the Java based/NDK development experience? But then you can have the same thing on a Unix machine: once you are removed enough from the OS what it is doesn’t really matter. In a way, I think I agree with you in that I also believe that what’s happening at the lower-level matters less and less for the majority of developers.
- pjmlp 3y agoTry to write a pure, classical, UNIX application and sell it on the Play Store. Without rooting devices. Likewise, try the same on iOS/iPad OS/watchOS. Only C and UNIX/POSIX APIs, nothing else. "Transcending POSIX: The End of an Era?" https://www.usenix.org/publications/loginonline/transcending-posix-end-era https://www.usenix.org/publications/loginonline/transcending... "POSIX has become outdated" https://www.usenix.org/publications/login/fall2016/atlidakis https://www.usenix.org/publications/login/fall2016/atlidakis
- yjftsjthsd-h 3y agoBy that standard, desktop Linux isn't real unix either (X11 isn't POSIX, and Wayland certainly isn't).
- edgyquant 3y agoIt’s not, that is why it’s considered Unix-like
- yjftsjthsd-h 3y agoOkay, then Android can be unix-like too.
- ofalkaed 3y ago>There has to be more in the OS space than Unixes and MVS-derived OSs Haiku which comes from BeOS. I don't recall the linage of BeOS and the wikipedia entry is lacking but it is not Unix, anyone?
- mtillman 3y agoIt is not Unix or even Unix-like but they added a POSIX compatibility layer so that you can use a variety of familiar programs.
- waddlesplash 3y ago(Haiku developer here.) This is a pretty common misconception, but it isn't true; Haiku doesn't have a "POSIX compatibility layer", it's just natively POSIX under the hood. You can find some elaboration on an old forum thread: https://discuss.haiku-os.org/t/is-haiku-a-unix-like-os/8801/4?u=waddlesplash https://discuss.haiku-os.org/t/is-haiku-a-unix-like-os/8801/...
- rbanffy 3y agoI think what I meant is that the OS model of what a program is constrains what we think can be done on it. I can't think of anything that couldn't be done in Haiku that can be done on Windows or a Unix. When I think of non-Unix and non-MVS i'm thinking more on the line of the IBM i, PalmOS, or the Newton OS. All three are quite alien under the hood to anyone who grew up on a Windows/Unix world.
- ofalkaed 3y agoIf that is what he meant than iOS and Android are that, their touch interface allows you to do things which can not be done in the Windows/Unix world which is why the Windows/Unix world is bringing in touch.
- ofalkaed 3y agoDoes Haiku/BeOS have a lineage, were they built off of some other OS in anyway or just their own thing which took what it liked from what was already around and started from the ground up?
- butterisgood 3y agoIt’s not at all tied to the GUI (rio). It’s more tied to the idea that resources can be exposed as file systems and distributed via 9p. Rio is a file system service providing GUI capabilities (kind of). You still need libraries to draw frames in windows etc. The network stack is a file system. HTTP clients can use a file system (webfs) to access servers. And so on. One could make a replacement for rio if they wanted to. The protocol used to draw stuff on the screen isn’t 9p though, curiously.
- magicalhippo 3y ago> The network stack is a file system. See this[1] document for details on how that's done. Pretty much as I expected, eg connections are directories with the parent directory being the protocol, and there's separate files for control messages and the data. Control files are read and written in ASCII to avoid endian issues. How would you expose something like OpenGL though? I mean, would you serialize the individual GL calls into a custom RPC and feed it to a "gpu/0/opengl/data" file? Exposing the GL calls as separate files could work I guess, if there's guarantees that writes to separate files maintain order (can't seem to find any clear discussion on this right now), but given the number of calls available that seems like it might generate a lot of overhead. edit: on the upside, exposing the calls as files means it's easy to expose GL extensions, either the respective files are there or they're not. [1]: https://plan9.io/sys/doc/net/net.pdf https://plan9.io/sys/doc/net/net.pdf
- cross 3y agoIn a sense yes, but also no. Plan 9 was built with the observation that high-resolution, bitmapped graphics displays were ubiquitous, and there was little motivation to keep the dated "tty" model as a basis for interaction. So you're expected to a graphical interface for working with the system, but it doesn't _need_ to be `rio`. I wrote a bit about this a few years ago: http://pub.gajendra.net/2016/05/plan9part1 http://pub.gajendra.net/2016/05/plan9part1 (I guess I should get around to actually supporting HTTPS here....)
- rbanffy 3y ago> Plan 9 was built with the observation that high-resolution, bitmapped graphics displays were ubiquitous My impression is that Plan 9 was a child of the technical workstation age - when we thought that the endgame was having ever more powerful desktops who did most things locally and connected over a network to send and receive files. In the end, our desktops and laptops have been fast enough for the past decade or so, while servers are becoming increasingly more like the mainframes we thought had their days counted and a lot of the heavy lifting is done remotely. A lot of what I do includes firing up a surreally large cloud machine, run a couple data transformations, and then unceremoniously delete that big workstation (that's actually a small slice of a humongous server). And, the rest, is mostly applications running on what I assume are clusters of cloud machines that expose an HTTP interface to my browser (a lot like the beloved 3278 terminal, but not nearly as clicky and tactile).
- LukeShu 3y agoPlan 9 definitely wasn't built with the thought that the endgame was ever more powerful desktops doing most things locally. "Connected over a network to send and receive files" is only technically true, yeah it's all around the 9P protocol which is a filesystem protocol, but it's a world where everything is a file. A window on your screen is a file. A CPU is a file. And app is a directory with files in it. The Plan 9 vision is all the things you describe, but more seamless. Firing up a a surreally large cloud machine isn't starting a VM with its own separate OS and configuration, it's connecting to a cloud CPU and your tasks transparently running on it. Mostl applications running on a cluster of machines that expose an HTTP interface to your browser are instead applications running on a cluster of machines that expose a 9P interface to your OS. Your impression of "the endgame was having ever more powerful desktops who did most things locally" was the Unix trajectory, and steering away from that was the big departure of Plan 9 from Unix.
- sph 3y agoThere doesn't seem to be much there? Seems to be just a basic kernel that they eventually want to turn into Plan 9 in Rust. Not to diminish their accomplishment, but this is not Plan 9 just yet.
- aredox 3y agoIt's fun to redo Plan 9, is very gimmicky between the name and the 9front fork and its memelords, but even the creators of Plan 9 have moved on to Inferno OS from what they've learned.
- lproven 3y agoISTM that bringing Go to Inferno would be the single best thing to make it a bit more mainstream... And porting the Dis VM to the Linux kernel, so that you could run Inferno binaries on Linux.
- pjmlp 3y agoYes,and usually keeps being forgotten, even though having an UNIX like OS, with a mix of Plan 9 and Oberon ideas, developed by UNIX authors, is a much cooler idea.
- r9550684 3y agoinferno had the misfortune if being implemented during the time when all the gui frameworks were copying windows, so it's retro clunky in all the wrong ways. I strongly believe that's the main reason why it doesn't have builder community behind it, mucking in its internals and writing apps. as superficial as it sounds, this position is supported by the many variously hacked up screenshots that come out from the various 9front cool kids. a e s t h e t i c takes priority of everything else, at the end of the day
- pjmlp 3y agoWell, its UI predates Windows, by being based on Tk, so maybe that is your point?
- throwaway80824 3y ago>The Inferno Business Unit closed after three years [1999-2000], and was sold to Vita Nuova Holdings.[1] From what I can understand, Inferno was wanted by corporate to compete with Java, the original Bell Labs team kept working on Plan 9 until the last 4th edition released in 2002 (the year when Rob Pike left for Google). [1] https://en.wikipedia.org/wiki/Inferno_(operating_system) https://en.wikipedia.org/wiki/Inferno_(operating_system)
- mhd 3y agoRegarding LOCs, how many Plan9s are there in LLVM/Rust? I wouldn't mind a Plan9-ish Rust compiler setup, though.