15 ms·
Gnu/Hurd strikes back: How to use the legendary OS in a (somewhat) practical way
- jacquesm 3y agoOnce upon a time the Hurd was the future. But that time is long in the past and nowadays the Hurd is a relic and I don't see any chance of a revival. Something entirely new probably stands a better chance at arousing some interest than the Hurd.
- sparkie 3y agoseL4 is more interesting than Hurd's Mach kernel. Genode can use seL4 and several different microkernels and has more activity than Hurd.
- prmoustache 3y agoYes we have seen it with projects such as serenityOS, redox but if you look closely at those projects most of them stand upright with just 1 or 2 developers. If for some reason they get burned out or some life changes force them to limit their time and attention to these projects they can fall behind very very quickly. Unless one is already depending on it on a daily basis, nobody wants to take over someone else's project.
- CRConrad 3y ago> If for some reason they get burned out or some life changes force them to limit their time and attention to these projects they can fall behind very very quickly. These projects are all one bus away from becoming the next TempleOS.
- deleted 3y ago[deleted]
- nerdponx 3y agoIs Hurd (in theory) a good fit for lightweight VMs?
- chillbill 3y agoMedium is such a hostile platform.
- t09i209ba893 3y agoIMO https://scribe.rip/ https://scribe.rip/ makes medium more pleasant to read.
- phant0mas 3y agoYou can try using it through Guix :)
- slim 3y agohow?
- janneke 3y agoBy reading the fine manual (<https://guix.gnu.org/manual/en/html_node/Virtualization-Services.html https://guix.gnu.org/manual/en/html_node/Virtualization-Serv...>) or blog post (<https://guix.gnu.org/en/blog/2020/childhurds-and-substitutes/ https://guix.gnu.org/en/blog/2020/childhurds-and-substitutes...>). TL;DR; Add this (service hurd-vm-service-type (hurd-vm-configuration (disk-size (* 5000 (expt 2 20))) ;5G (memory-size 1024))) ;1024MiB GNU Shepherd system service description to your system configuration, and reconfigure; then just do something like sudo herd start childhurd ssh -p 10022 root@localhost If you're not using Guix System, you can still download a prebuilt QEMU image from <https://guix.gnu.org/en/download/latest/ https://guix.gnu.org/en/download/latest/>: wget -O hurd-latest.img https://ci.guix.gnu.org/search/latest/image?query=spec:images+status:success+system:x86_64-linux+hurd-barebones.qcow2 and do something like: qemu-system-i386 -m 2048 --enable-kvm --hda hurd-latest.img Enjoy!
- sourcepluck 3y agoReally nice article, it's cool to see people working on GNU/Hurd.
- janneke 3y agoRumpdisk on a GNU Guix childhurd: https://toot.aquilenet.fr/@civodul/110848429561223704 https://toot.aquilenet.fr/@civodul/110848429561223704 just one simple `guix system reconfigure' away! Guix Hurd on my thinkpad x60: https://todon.nl/@janneke/110451493405777898 https://todon.nl/@janneke/110451493405777898 yeah, that's real (old, but not ancient) iron. Enjoy!
- mannyv 3y agoIn the commercial world the first release a new OS with GUI only takes about 4 years, depending. Hurd has exceeded that by a huge margin.
- mannyv 3y agoAlso, given its velocity, 'strike back' is totally the wrong phrase. 'Strike back' implies speed and/or alacrity, neither of which gnu/hurd possesses in any appreciable quantity.
- jdiff 3y agoEven in the noncommercial world, Hurd's gone precisely nowhere. RedoxOS is a toy and had a GUI within a year or so. Brutal got in within two. SerenityOS not only built a GUI but the beginnings of the first greenfield web browser to gain any semblance of modern standards support in the past several decades. Honestly, what's Hurd doing wrong to flounder so hard? [0] https://github.com/redox-os/redox/releases/tag/0.0.3 https://github.com/redox-os/redox/releases/tag/0.0.3 [1] https://github.com/brutal-org/brutal/releases https://github.com/brutal-org/brutal/releases [2] https://serenityos.org/happy/1st/ https://serenityos.org/happy/1st/
- TheMagicHorsey 3y agoThe concept of microkernels is cool for security ... the only thing cooler in OSes is maybe unikernels :P And certainly the time is ripe since we have such powerful and capable machines even in the pockets of our pants ... we can certainly waste a little bit of resources to work with more secure layers of abstraction ... yes? But Hurd has taken so long, I feel like Google Fuschia might dive in and capture everyone's imagination with a more modern and practical implementation of the concept. To be clear ... neither Hurd nor Fuschia are really practical today ... I just feel like its more likely Google might throw a few hundred million at the project if it pans out in the few places its currently being field tested (like in Google Home devices).
- thrillgore 3y agoI look at Hurd and how it took this long for it to boot X, and I look at Redox and its booting and pretty active. Hurd died the day Linux went GPLv2. It's a shame too, I trust the Redox design in every other regard. Someday it'll have the fault tolerance of OpenVMS, where it'll somehow keep running when the hardware dies.
- snvzz 3y agoOther interesting microkernel-based OSs include Genode[0], HelenOS[1], Helios[2], Makatea[3], Managarm[4]. 0. https://genode.org/ https://genode.org/ 1. http://www.helenos.org/ http://www.helenos.org/ 2. https://sr.ht/~sircmpwn/helios/ https://sr.ht/~sircmpwn/helios/ 3. https://trustworthy.systems/projects/TS/makatea https://trustworthy.systems/projects/TS/makatea 4. https://github.com/managarm https://github.com/managarm
- pard68 3y agoWeird that a lack of systemd was called out as a problem. Your pid1 can be any of a myriad of tools, systemd is just the (current) dominator. Only a few years ago I was working on RHEL machines without any systemd to speak of.
- cturner 3y agoAgree, systemd is not the last word in init systems. There are use-cases where linux/whatever is used to run a single system across a cluster of hosts. For this, you need a scheduler to dispatch across a set of machines. There is room to debate whether init should happen at the system level (driven by OS tooling), or at the application level (not driven by OS tooling). Systemd is bound by single-host assumptions. Hence, systemd is either inadequate (OS tooling) or else too complicated (application driven). If you wanted to do something in the spirit of systemd (OS tooling), but which was suitable for clusters, the scheduling function would live as a consensus across a grid of hosts. Hosts would have a simple init that joined that consensus at boot and which acted as an agent for the init consensus. This would scale down to all the use-cases systemd currently covers - you could have a consensus of one.
- al_be_back 3y agothe OS wars haven't been conclusive. Windows had the lead until about 15yrs ago when suddenly iPhone arrived and it propelled apple/Mac (and by association Linux) back into the game. in recent years the rise in popularity of CLI, microservices (APIs for everything) and remote working/collaborating is indicative of a market shift, away from monolithic, centralized systems and providers (Cloud aside). Security + Privacy are more so becoming inseparable, for users all around (private, business, orgs, gov). I particularly like their concept of user-space servers and translators [1] [2] [1] A translator is simply a normal program acting as an object server and participating in the Hurd's distributed virtual file system. [2] https://www.gnu.org/software/hurd/hurd/documentation/translator_primer.html https://www.gnu.org/software/hurd/hurd/documentation/transla...
- qubex 3y ago> apple/Mac (and by association Linux) You mean Android?
- sockaddr 3y agoI read that as macOS and iOS BSD making other Unix-like OS’s more relevant due to general compatibility and style of interaction (CLI).
- al_be_back 3y agono - else i'd have typed google/android :)
- matchcase 3y agoMicrokernels are more relevant now than ever, I'd love to try it out if they manage to get it to work on modern hardware.
- glonq 3y agoWhat accounts for Hurd's underwhelming progress? Consider how many years and how many developer-hours have probably been spent on Hurd compared to projects like SerenityOS and Haiku. Hell, even TempleOS seems to have accomplished more. /s
- AdmiralAsshat 3y agohttps://miro.medium.com/v2/resize:fit:4800/format:webp/1*HuH6w3aJnatS8tnsjubwQw.png https://miro.medium.com/v2/resize:fit:4800/format:webp/1*HuH... The GNU/Hurd default terminal can display a JPEG inside the terminal?
- arccy 3y agowhere is the JPEG XL support?
- ratmice 3y agoAlso in that same screenshot, hurd used to drop you into a shell as the nobody user where you could run the login binary... Curious if that was changed as part of debian, or changed for some other reason.
- msla 3y agoSame with Linux: https://en.wikipedia.org/wiki/Linux_framebuffer https://en.wikipedia.org/wiki/Linux_framebuffer XTerm can as well, if built with Sixel support: https://github.com/saitoha/libsixel https://github.com/saitoha/libsixel https://en.wikipedia.org/wiki/Sixel https://en.wikipedia.org/wiki/Sixel
- Modified3019 3y agoAh, sixels, I forgot about those. I was going to guess it implemented a modified display of a pixmap or something: https://en.wikipedia.org/wiki/X_PixMap https://en.wikipedia.org/wiki/X_PixMap
- taeric 3y agoKind of weird to see linux called out as too big, and then the ack that writing a ton of device drivers is hard and will take time. Isn't that a large part of the source tree? Realizing I haven't even tried compiling a kernel in a long long time. Feels oddly sad to say.
- weberer 3y agoYes, its mostly drivers. Here's a breakdown of the Linux kernel by lines of code: https://upload.wikimedia.org/wikipedia/commons/f/f5/Sankey_Diagram_of_Linux_Kernel_Source_Lines_of_Code.jpg https://upload.wikimedia.org/wikipedia/commons/f/f5/Sankey_D...
- bee_rider 3y agoThat’s a neat way of visualizing it. It is interesting that the “remainder” chunk of the drivers is so big. Wonder if they need some more categories.
- stavros 3y agoI was expecting a block chart, kind of disappointed it isn't.
- winter_blue 3y agoWow, I'm surprised by how small the file systems are. On the smaller side, Ext4 at just 21,515 lines, and on the larger side, Btrfs at 55,758 lines. It almost makes me think that writing a new file system in Rust, might actually be a tractable project.
- PaulDavisThe1st 3y ago[flagged]
- meepmorp 3y agoIt's a good thing that you warned them off, or they might've accidentally gone and done something interesting or enjoyable.
- pshirshov 3y agoIs it really alive? No SMP, no stable x64 port. No ARM port.
- rekado 3y agoSee https://lists.gnu.org/archive/html/bug-hurd/2023-06/msg00038.html https://lists.gnu.org/archive/html/bug-hurd/2023-06/msg00038... > * APIC, SMP, and 64bit support was improved a lot: they now do boot a complete Debian system, but some bugs remain to be fixed.
- cmrdporcupine 3y agoKinda wonder if the best approach for them at this point would be to target RISC-V and worry only really about running in a hypervisor, or very narrowly targeted open hardware, instead of futzing with implementing a pile of device drivers. Make it useful in that environment, and then go from there. Hell, wouldn't it be cool if there was an official GNU GPL'd RISC-V board, running GNU Hurd?
- pengaru 3y agoI used to idle in the hurd irc channel and there was definitely someone working on smp support, but it was just one person's pet project apparently. They seemed to have things working in an experimental setting, but I don't think anything landed upstream. It was clear there's a severe lack of manpower on the project. I think it'd have to be rewritten in rust or something hip to get new blood today.
- OfSanguineFire 3y agoI’m surprised to see that Mach is still the microkernel for Hurd. When I last (very casually) followed Hurd development two decades ago, Mach was generally regarded as obsolete and there were hopes to base Hurd on a new microkernel like seL4.
- m463 3y agoIsn't macos Mach?
- mr_toad 3y agoA distant descendant. https://en.wikipedia.org/wiki/XNU https://en.wikipedia.org/wiki/XNU
- p_l 3y agoMacOS XNU is based on OSFMK which was also used by Tru64 and few others, and sometimes called "Mach 3.5" IIRC. One of the major differences was that it embedded the BSD server into kernel space.
- rayiner 3y agoHURD (the parts that aren't the rest of the GNU OS) is mainly a set of servers for Mach. These are closely coupled to how mach handles IPC, how it handles virtual memory, etc. Apparently, there were also shortcomings in L4 itself, or at least with respect to what HURD wants to do with its microkernel: https://www.gnu.org/software/hurd/history/port_to_another_microkernel.html https://www.gnu.org/software/hurd/history/port_to_another_mi...
- naasking 3y ago> Apparently, there were also shortcomings in L4 itself, or at least with respect to what HURD wants to do with its microkernel Yes, that was the issue as I recall. But seL4 is an excellent, secure high-performance microkernel. If something is painful to do in L4, it will likely not be faster or more secure running under any other microkernel, and so you should arguably question the wisdom of what you're trying to do.
- mhaberl 3y ago> The GNU Hurd’s hardware support is poor, so trying to run it on modern physical machines is suicide. > ...one reason for using GNU/Hurd is that the Linux kernel has become too huge By any chance, are these two statements related? Is it smaller because it lacks the drivers?
- Hizonner 3y agoThe drivers aren't part of the microkernel and run with limited privilege. So, yeah, OK, if you wrote all those drivers you'd have a lot of code, but not all of it would have total control of the system. You can't really make a direct comparison. Linux has a hell of a lot of system calls and weird bells and whistles in non-driver code, too.
- dale_glass 3y agoI also recall it having some ridiculously low limit for partitions, like 1GB or something. Apparently because it mmaps the entire disk, and under 32 bit CPUs there's not enough address space. Which is a ridiculous technical limitation. You could have bigger disks than that by the mid 90s. Come think of it, my Ryzen 9 3950X supports 43 bits of address space which works out to 8TB. So if that limit applies, even the 64 bit version would be limited on modern hardware.
- monocasa 3y agoA 3950x has 48 bits of virtual address space, or 256TiB.
- dale_glass 3y agoI'm honestly not sure which counts for this purpose, physical or virtual? And which fraction do you get to use on HURD? But still, 256 TiB is just a dozen drives these days. Not a very consumer-like configuration, but very much a limit you can run against.
- sparkie 3y ago
- Hizonner 3y agoCan anybody compare the state of Hurd with, or point to good comparisons with, similar projects like Genode?
- Analemma_ 3y agoEven rms gave up on Hurd and it stopped being a core priority of the GNU Project a long time ago. The current maintainers/developers are doing it as a solo hobby. Which is fine, but that's what you should keep in mind as far as support if you decide to use it.
- mjhay 3y agoGNU/Hurd is legendary, but not for good reasons.
- AceJohnny2 3y agoi.e. "notorious"
- hinkley 3y agoIt's in-famous. It's gone beyond famous and now it's IN... famous.
- Tao3300 3y agoI love the Loch Ness monster comparison at the beginning. Brings it back to earth from the clickbaity headline fast.
- Thrownhurd 3y agoMayhaps egregious?
- preinheimer 3y agoThey lost me with the GNU explanation.
- davidw 3y agoAn idea from the 'Crossing the Chasm' book is to find a niche where whatever characteristics of the product you're working on can win. You are not going to win going head to head with the entrenched competitors. What does that look like for Hurd?
- harry8 3y ago>You are not going to win going head to head with the entrenched competitors. Linux, (not big and professional like gnu), is not going to win but could find a niche somewhere. Hm, ok.
- davidw 3y agoYep, it found a "niche": people could actually hack on it and get it to do stuff, rather than waiting around for the other thing, which wasn't even really a thing yet anyway. Linux has a large, large established user base at this point. If you want to attract people to a different platform, you need a compelling reason. For people just looking to look/experiment/learn/play, 'something new' that's more easily understood because it's small might be enough, but that's unlikely to be a large user base.
- pjmlp 3y agoGoing off base, as this is about Hurd vs GNU/Linux. On the IoT space it seems like not everyone is keen in having to deal with GPL and Linux, hence the myriad of FOSS MIT/Apache licensed OSSes that now exist. Zephyr, NuttX, Mbed, Amazon RTOS, Redox, Tock... And then there still the commercial alternatives.