10 ms·
Harvey – An effort to provide a modern, distributed, 64-bit operating system
- dsp1234 9y agoNote that Plan 9 is already licensed under GPLv2 (with caveats I guess)[0][1] [0] - https://news.ycombinator.com/item?id=7232042 https://news.ycombinator.com/item?id=7232042 [1] - http://akaros.cs.berkeley.edu/files/Plan9License http://akaros.cs.berkeley.edu/files/Plan9License
- floren 9y agoAh, yeah, Harvey is based on that release, it's just had significant changes made to the build system and the code itself. They're running continuous integration and code quality checkers. The code now builds with GCC and Clang and it builds pretty damn fast. It's a cool project and the people running it are really friendly.
- baq 9y agothanks for that, was looking for a good reason why it's still C.
- floren 9y agoAnyone who's wanted to play with Plan 9 should consider giving Harvey a look. Getting started is a pretty easy process: you download the repo on your Linux box (I believe it works on MacOS too), run a script to get the environment set up, run a build command. Once everything's built (about 2 minutes on a decent machine), run another script which boots Harvey in a QEMU VM. The VM will get its root filesystem from the Linux box, so you can easily experiment, make changes, test. Harvey comes with pretty much everything you'd find on Plan 9. It also supports Go, and there's a (work in progress, but functional) POSIX layer which you can use to cross-compile POSIX programs.
- drb91 9y agoIt does require a case-sensitive file system, so it takes some additional effort to cross compile from the mac. Not that that's unusual :)
- a1k0n 9y agoThe landing page doesn't really explain what is interesting about Harvey. What does it mean that it's distributed, exactly?
- kruhft 9y agoPlan9 was the 'next version' of Unix made by the people that originally made Unix. It was a small (tiny!) network packet routing kernel (routing 9p, a layer above IP) that is meant to be fully distributed and networked. https://www.quora.com/How-is-Plan-9-OS-different-from-Unix https://www.quora.com/How-is-Plan-9-OS-different-from-Unix
- floren 9y agoI wish the mods hadn't changed the title; I chose the original title to focus more on what's cool about it. Anyway, Harvey is distributed in the same way that Plan 9 is/was distributed: the services are meant to be run across a network. On a properly set up network, you'll have an authentication server which does only authentication, because that's the keys to the kingdom. Similarly, you'll have a file server which ONLY serves files, and speaks to the auth server to manage access. Then you'll have a CPU server which lets remote users connect and do stuff; it mounts its root filesystem from the file server and authenticates users with the auth server. You can also have terminal machines, which typically netboot, get their root from the file server, authenticate with the auth server, and basically act as a personal workstation for whoever sits down; when you're done working, just save your work and reboot the terminal. Of course it doesn't have to be run like that and many people don't, because they don't want to run 4+ systems. You can combine auth, FS, and CPU services onto one machine and just connect from a Windows, Linux, or Mac machine using 'drawterm' (think of it as an ssh equivalent).
- euyyn 9y agoHonest question, not trying to be dismissive: This architecture sounds old to me, as in things were built like that in the 80s or earlier but evolved past. Is that so? If so, what makes those decisions newly relevant?
- zzz157 9y agoWhat an aweful name :)
- floren 9y agoFollowing in the proud tradition of Plan 9 :) edit: and rio, and 8½, and acme, and the rest of it!
- fb03 9y agoGenuine question: WHy do you think it is awful? I found "Harvey OS" to have quite a nice ring to it. It does not sound to me like a blockbuster name, but sounds good enough, like "Rust" :)
- kenning 9y agoI personally like 'rust' a lot. Has aesthetic qualities, it's not what you expect of a new technology (usually the feeling associated with new products is "new, shiny and flawless"). Harvey is just a name... A name of an old, white, male US citizen. Sounds like something that was invented in the 80s by linus torvald's friend.
- jacquesm 9y agoWhite? US Citizen? That's saying more about you than about the name "Harvey". It came from http://www.imdb.com/title/tt0042546/ http://www.imdb.com/title/tt0042546/
- Zardoz84 9y agoIt's the name of the imaginary rabbit that a drunk talks on the bar, on a scene of Rigger Rabbit.
- asveikau 9y ago> Harvey is just a name... A name of an old, white, male US citizen. I'm not sure why, but it seems like the name Harvey was also very popular among Jewish Americans 50+ years ago and beyond. Almost every famous American Harvey I can think of has a typically Ashkenazi last name. Often that happens for names that are Hebrew or German in origin, but looking it up it seems the name Harvey is English, via the Bretons.
- kruhft 9y agoQuickstart: https://github.com/Harvey-OS/harvey/wiki/Getting-Started https://github.com/Harvey-OS/harvey/wiki/Getting-Started
- meddlepal 9y agoI appreciate the minimal nothing fancy website design.
- malkia 9y agoI have more hope in projects like fuchsia, where separation of concerns is taken seriously - there are providers for "things" and on the fly configuration can glue several independent components to serve as one - for example instead of "Google Maps", "Bing Maps", or "Apple Maps" - you would have several map data providers (maybe some with higher data quality for specific regions), several map data viewers, several events, places, traffic, etc. providers - and you end up with one combined view of all them, e.g. not application but an user "story", as briefly explained here: https://fuchsia.googlesource.com/modular/+/master/docs/module.md https://fuchsia.googlesource.com/modular/+/master/docs/modul...
- jcoffland 9y agoSeems susceptible to dependency hell.
- barrkel 9y agoWhat you describe sounds like a recipe for the lowest common denominator in features combined with a geometric increase in bugs. If it's just linking, loose coupling, it might work OK (for something like document creation or messaging) but it won't be integrated at a higher semantic level.
- geezerjay 9y ago> lowest common denominator on feautures That's pretty much standard behavior in the mobile world. Services and activities are made available and the app petitions the OS to access those "lowest common denominator features". Although you've decided to reffer to it in disdain, it's also a very basic principle in software design. >geometric increase in bugs Only if you believe that developing and maintaining specialized programs somehow increases the bug count "geometrically".
- desireco42 9y agoWe really could use something new, so I am ready to give anything new a shot. Something completely free and open to new ways of thinking.
- bborud 9y agoWhenever someone uses the word "modern" about a piece of software I stop reading.
- Animats 9y agoIt's in C, offers POSIX, and apparently a big-kernel OS. Looks like another Unix-type OS. Why? An OS in Rust would be a step forward. An OS like QNX would be a step forward. An OS like QNX in Rust would be just what the IoT world needs. But another UNIX/Linux clone? Why?
- jstewartmobile 9y agoIt seems like they're taking the same approach as QNX, except across boxes instead of within the same box.
- Animats 9y agoDid you find an architecture description anywhere in there? I've been looking for one.
- jstewartmobile 9y agoFrom what I read, it's a Plan9 fork refreshed for modern build chains plus golang support. From floren's comments, it sounds like the architecture is still Plan9.
- driusan 9y agoIt's a Plan 9 fork, the Plan 9 papers and man pages would describe the system architecture pretty well. Most of the changes I know of that they've done (UFS support, ELF executables, standard C without the Plan 9 extensions, a different build system, etc..) are more in the details than the architecture.
- Sir_Cmpwn 9y agoThis is a plan9 descendant.
- pjmlp 9y agoThe actual end of line for Plan 9, was Inferno using Limbo as the userspace language, but many seem to keep forgetting about it. Harvey would be cool if they would continue Inferno, but with Go instead of Limbo. As it is, it isn't that much interesting from OS architecture point of view.
- jstewartmobile 9y agoWhy so many haters? Just the fact that they've got Ron Minnich[0-1] on the team--one of the guys fighting the good fight against all of the voodoo BS in your Intel/AMD firmware--makes it worth a look IMHO. [0] https://www.youtube.com/watch?v=iffTJ1vPCSo https://www.youtube.com/watch?v=iffTJ1vPCSo [1] https://lwn.net/Articles/738649/ https://lwn.net/Articles/738649/
- ElijahLynn 9y ago"Harvey is a distributed operating system. It is direct descendant of Plan 9 from Bell Labs which was originally developed by the same group at Bell Labs that invented Unix and C." https://github.com/Harvey-OS/harvey https://github.com/Harvey-OS/harvey
- jezfromfuture 9y agoOh great another random os that will get as much traction as beos. Maybe don’t reinvent the wheel and just make a contribution to the Linux OS project instead ??
- eximius 9y agoI wonder how this compares with Redox OS. This is Plan 9-like, which Redox could be with its 'everything is a URI' concept, but I haven't used either to see.
- qwerty456127 9y ago> It can be built with gcc and clang Again... I understand many will argue but I also believe many will agree: we are to start phasing out C and write modern OSes in safe languages like Rust, Haskell, Go, Crystal etc. Because code written in C is almost guaranteed to be vulnerable. C has done its job when the hardware was slow and low on memory, electronic data was rarely life-important and when there were no languages and compilers that could be used as alternatives but that time has ended and now we are to consider different priorities.
- soulbadguy 9y agoGo and haskell are targeted at a different level of abstraction than an OS lives at.I don't know much about crystall but I has a GC.
- bb88 9y ago> we are to start phasing out C and write modern OSes in safe languages. Linus Torvolds probably has the best answer to why not. https://www.reddit.com/r/programming/comments/1t0gfy/linus_torvalds_on_the_question_if_there_is_a/ https://www.reddit.com/r/programming/comments/1t0gfy/linus_t... "When I read C, I know what the assembly language will look like."
- cmrdporcupine 9y agoExcept in this day and age reading the assembly language doesn't give you the same kind of insight into how the hardware will perform as it did 15 years ago.
- minipci1321 9y agoOh, it might still give the same insight -- for example, when people reading assembler today are the same ones who did that 15 years ago.
- bb88 9y agoOr in BSD's case, 30 or 40 years ago.
- digitalzombie 9y agoNice to see all these new OS coming out. I'm personally rooting for HURD (https://www.gnu.org/software/hurd/hurd.html https://www.gnu.org/software/hurd/hurd.html) and Barrelfish(http://www.barrelfish.org/ http://www.barrelfish.org/)
- codepie 9y agoObligatory XKCD for operating systems: https://xkcd.com/1508/ https://xkcd.com/1508/
- rcarmo 9y agoThis runs surprisingly well as a Docker container. The awkwardness of trying to use rio on a laptop with a (non-existent) three-button mouse is still there, though, and I hope other Plan9-related projects are considering bringing the GUI UX up to speed, since using a trackpad with drawterm is still awkward...
- xj9 9y agoi take a lot of inspiration from plan 9, but a lot of the distributed computing architecture that it is built around is severely outdated and based on a lot of untrue assumptions. for example, you can't really expect to have always-on, low latency internet access. especially if you get anywhere near a mobile context. without good networking plan 9 falls on its ass. so you have to consider, how do you implement the shape of plan 9, without depending on the mythical "reliable network"? i don't have an answer exactly, but i am looking for one[0]. we are using the linux kernel because hardware support and you don't really need any special kernel features to implement a plan 9-like (read the paper, they didn't to anything special kernel-wise). i'm in the process of copying my offline notes into our wiki, so uh stay tuned or whatever. i'm hoping to publish a really early preview build some time next week, but we'll see how far i get while i'm on holiday. it'll be soon in any case. [0]: https://www.heropunch.io/%E5%8F%8B https://www.heropunch.io/%E5%8F%8B
- k3a 9y agoI appreciate the effort but I have a feeling that there is not enough developers for existing free OSes and I am not sure it is very wise to fragment the community even more.