Hacker News new | ask | show | jobs
by teleforce 1817 days ago
In the era when system research is dying [1], the only saving graces are the Nix/Guix for OS management improvement and perhaps eBPF for OS performance enhancement. The Winix OS is a breath of fresh air in term of potential OS directions.

Like they have always said, timing is everything and probably this is the project similar to Apple's Newton project that have many goods in it but just born several years too early.

Winix targets RISC architecture and with RISC-V taking off exponentially at the very moment, having RISC biased OS will definitely provide edges and advantages for the platform, similar to x86 quirks to Linux, and Linux taking advantages when x86-32 and x86-64 took off.

This year when Linus was asked for the best Linux achievement compared to other OS, Linus has pointed out the innovative Linux based lock-free filesystem [2]. Winix has built-in innovative POSIX compatible in-memory file-system (IMFS) by default. Imagine an OS with IMFS that's also natively compatible with the increasingly popular Arrow and TileDB in-memory format. With Terabyte (TB) RAM computers becoming the norm in the near future this can easily be the fastest OS with the state-of-the-art filesystem around. Fuschia is another latest OS on-the-block but by focusing on the mobile rather than desktop it will probably optimized for the former, unlike Winix.

[1]https://tianyin.github.io/misc/irrelevant.pdf

[2]https://www.tag1consulting.com/blog/interview-linus-torvalds...

11 comments

Systems research is more relevant than ever. You should take a look over the papers published at conferences such as SOSP, OSDI, EuroSys and HotOS. You'll see quite a lot of papers from industry giants. Lots of research OSs are also gaining traction[1][2][3]. I'd say that we're moving towards specialization right now, with a specific OS architecture for your usecase. OS research is far more than Linux right now.

[1] http://www.barrelfish.org/ [2] https://unikraft.org/ [3] https://mars-research.github.io/redleaf

Lol, I like your description of the project, sounds much more promising than mine
Woz, meet Steve.
Systems software research was dying 21 years ago when Rob gave that talk. (A better URL for the slides is http://doc.cat-v.org/bell_labs/utah2000/utah2000.html; the version you linked is pretty incomplete.)

Since then systems software research has been quite vital, in significant part due to Rob himself; in no particular order, relevant developments in systems software research since Rob's paper include Golang, MapReduce, HTML5 (including Web Workers, <canvas>, and WebSockets), Sawzall, Hadoop, Rust, wasm, Fuchsia (as you point out), V8, protobufs, Thrift, Docker, Xen, AWS, Azure, ZFS, btrfs, BitTorrent, Kafka, nearly all of Google's "warehouse-scale computing" stuff, memcached, OpenID, QEMU†, kvm, PyPy, SPARK, Julia and almost all the automatic differentiation stuff, Clojure, iOS, Swift, Factor, AMQP, RabbitMQ, ZeroMQ, Jupyter, the mainstream use of AJAX and Comet, QUIC and HTTP/2, Valgrind, LLVM, Kotlin, Bitcoin, Ethereum, OTR and Signal, Android, Dalvik, reproducible builds, seL4, Zig, Pony, CapnProto, Sandstorm.io, Fastly's fast-purging CDN, the Varnish cache it's based on, the fast SSDs that enabled it, TileDB as you mention (and Parquet), time-series databases like InfluxDB in general, Python 3, Racket, major new developments in ECMAScript, JSON, Z3, entity-component systems, general-purpose GPU computing, Intel ME (for better or worse, mostly worse, it's certainly relevant systems software research), OTR and Signal, Tor, Chrome, Firefox, Node.js, npm, LevelDB, record-replay for time-travel debugging, UBsan and Asan, stack canaries, epoll, io_uring, Qubes, Vulkan, CUDA, Wayland, Haskell's STM, XMPP, DTrace, the whole megillah around the shift to manycore, WPA for Wi-Fi, most of the work in making secure protocols resistant to timing and compression attacks, Git, SyncThing, ownCloud, rsync, zsync, GFS, BigTable, Cassandra, MQTT, and on and on and on. Oh yeah, and also eBPF.

Putting your filesystem on a ramdisk is a good idea but it's hardly innovative.

______

https://web.archive.org/web/20030601085257/http://fabrice.be...

> Putting your filesystem on a ramdisk is a good idea but it's hardly innovative.

I am way late to the party, but here goes: In 2007 I started working for a company in Norway that had developed their own database, from hardware and up. It included parallell processing (a few thousand processors when I joined) and everything hosted in memory. It was fast. Boot up took a while though, since it had to load everything from disks to memory.

When I joined they were on the third iteration already, the first version went live back in 1992.

We have since retired the concept since off-the-shelf hardware caught up in terms of speed and lower cost, also it didn't scale very well.

It's even older than 02007! You could put your filesystem on a ramdisk in CP/M in 01979 if you bought a third-party utility, though this needed bank-switched RAM to be really useful in CP/M: https://en.wikipedia.org/wiki/Silicon_Disk_System

Dataram used to sell RAMdisks ("BULK CORE") for PDP-11s starting in 01976, but those were hardware devices, so maybe we shouldn't count them. See First also sold them. I'm not aware of earlier ramdisks, but at and prior to that time RAM would have been magnetic core, which changes the value proposition a bit: a core ramdisk is more like an SSD than anything else, because RAM contents weren't lost if power was lost.

And ramdisks were a standard feature of Atari DOS 2.5 by 01985: https://en.wikipedia.org/wiki/Atari_DOS

It was also common to use ramdisks in MS-DOS around that time. Bankswitching was part of the reason: starting in 01985 you could easily put several megs of bank-switched RAM on a LIM EMS board in even an original IBM PC, but most application programs couldn't use more than a meg at all (or more than 640K without difficulty), so a ramdisk was an easy way to get some use out of it.

And it was common to netboot SunOS in the 01980s; this usually involved making /tmp a ramdisk and NFS-mounting /, /usr, maybe /usr/share, and /var.

And the PalmPilot only had DRAM for its filesystem from 01996 until they added flash support in PalmOS 5.4 in 02004.

And most LiveCD systems copy the CD into RAM at boot time these days. And Linux usually boots from an "initramfs". I'm typing this on a Linux computer with "tmpfs" ramdisks (named after the SunOS facility, but not used for /tmp itself) mounted on /run, /dev/shm, /run/lock, /sys/fs/cgroup, and a directory in /run/user. Amazingly, there's a discussion about whether Fedora should default to swapping to a ramdisk now: https://rwmj.wordpress.com/2020/06/15/compressed-ram-disks/

The list goes on.

Genode, unikernels like MirageOS, TempleOS, Singularity OS / Sing#, compiler services like Roslyn and Kotlin, MILEPOST GCC, C++ 11+, Tensorflow / TPUs, GPT-3, all of the machine learning in compilers [1] and so much more. I truly think Deep Learning Compilers will be huge.

[1] https://github.com/zwang4/awesome-machine-learning-in-compil...

Oh, I didn't think to mention any of those, resulting in many significant omissions from my list. Some of them are things I didn't even know about! A few are kind of on the boundary: GPT-3 arguably isn't "systems software" (although we'll see, I guess) and TPUs are hardware. But certainly TPUs have big implications for systems software design if you're training ANNs.

The time since Pike's paper has been a golden age of systems software research, perhaps even more significant than the 01959-01980 period.

Do you mean OS research or systems research more broadly? That paper was written 20 years ago... I don't think systems research is dying at all. Since that was written there have been huge advances in areas such as cloud etc. I would go so far as to say the paper's claims have been proven to be nonsense (as is so often the case for 'end of history' type claims).
Systems research has changed drastically in the last 20 years, but it’s still a pretty strong community. Interest in OS-specific research, on the other hand, is mostly dead, general internet in OS likewise (people generally have what they want in an OS by now).

PL research on the other hand, is in trouble, but that’s a different topic.

Why would you say that PL research is in trouble? Conferences like PLDI and more ones like LANGSEC are going strong and there are probably more out there.
What do you see going wrong in PL research?
> With Terabyte (TB) RAM computers becoming the norm in the near future

I don't know in which world you live but in mine people still mostly buy 4, sometimes 8GB of ram laptops

I think he was talking about the clusters of machines used in big data. Both in processing (Spark) and storage (SAP HANA). These use cases can need TBs of ram.
> These use cases can need TBs of ram.

These use cases can need TBs of RAM, but they don't get it in a single node but as a distributed system with tens of GB of RAM per node.

Um, err we have a few tens of 1.5TB memory nodes lurking around. There are plenty of use cases for that out there.
I work in a cloud environment where SAP HANA databases are provisioned. We offer VMs with multible TiB RAM for the larger HANAs.
> I don't know in which world you live but in mine people still mostly buy 4, sometimes 8GB of ram laptops

Not only that, but those terabytes are actually distributed systems running at most a few hundreds of megabytes of ram in each node.

You can get a node with ~26.4TB memory on AWS: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/memory-o...
I suppose what one considers the near future is relative.
He is probably not talking about Macbooks
With multiple accounts and VMs running Linux, which in turn run a JVM and a heavy IDE, my Mac Mini is at 64GB, and it needs all of it.
I think Fuchsia is aimed at more then just mobile.

Honestly I have high hopes for it, mostly because I like the colour ^^.

"The GitHub project suggests Fuchsia can run on many platforms, from embedded systems to smartphones, tablets, and personal computers." ("Google Fuchsia - Wikipedia" https://en.m.wikipedia.org/wiki/Google_Fuchsia)

Edit: fixed spelling of the name of the colour.

Ignorant person here, why is systems (assuming specifically OS) research dying? I just assume computer science related research in general is stable. I would think OS research would be quite stable as well but maybe I’m naive.
I am seeing a tendency that system research is very much underappreciated (not only OS). To me personally there is kind of a crisis in terms of methodology. People in my area (ubicomp, not the classical USENIX crowd) got fed up with too much of "yet another" and moving sideways. No research methodology to see things moving forward. The most frustrating thing in my area to me is that we are still teaching achievements at PARC on how to connect to right printer or include people into an overlay network based on context. In reality there wasn't much achievement over boring client server architectures with operating systems just focussing at getting those faster. Out of frustration the community largely moved to human interaction and data analytics. In the end IMHO it might have been the missing business models that then influence the available funding that triggered much of the missing love in the area. You need to give researchers incentives..
Ahh, that’s a fair critique.
Asian companies are still churning out new OSes all the time.

Also, big area of research right now is how to sandbox applications properly in this era of app stores.

Nobody knows what you mean when you downvote an on-topic post. You have to say something, else you only cause confusion.

Back on topic:

Systems theory seems to basically be object-oriented, meaning it sometimes has problems dealing with self-reference. This should not be a problem for most practical applications but for things like ecological dynamics the complexity is not user friendly.

Cybernetics seems to be a function-oriented approach to the same problem class. It deals with feedback loops as first-order citizens, which in complex ecosystems like desktop operating systems means it has less of a conceptual impedance mismatch.

The former is the popular discipline while the latter fell out of favor decades ago. Perhaps it is time to dust it off.

I didn’t downvote? I upvoted OP and the parent comment. It was all very insightful.
Excuse me it wasn't directed at you. People seem to use the downvote function to say they disagree, or don't understand, but that leaves the poster completely in the dark about what they think the problem is. I find it counterproductive and frustrating.
Absurd. Perplexing. Truly these people are mad.
Not an expert on OS development subject, but are there anything really new? ( Apart from eBPF )

Almost all the change log in Linux are Drivers and File Systems. And anything there is new to Linux seems to have come from other OS like Solaris. You have Minix in every Intel chip or seL4 for specific uses.

I mean Windows 11 I was hoping Microsoft would share something about new kernel update or something. or Apple macOS which seems to be in the direction of moving everything to userspace.

Are there anything that is really new that didn't get any coverage?

I think that stuff is fairly “done” now.

What is really the point of computing is the interaction and capabilities for the end user which is where the commercial focus is.

Nowadays everything is layers on top of layers. File systems from regular partitions and RAID to LVM then to ZFS/Btrfs. Virtualization of OS systems to KVM/Qemu to containers.

Operating systems function now in general is to provide a means for running arbitrary systems on top of the metal. It’s astonishing what one can do with cloud-init and a base Linux install these days. I can botch up all the layers above and quickly restart without installing anything on the base system install.

Granted, there’s always special cases but I see that “stable core” over which anything can run to be the target. Just look at the M1 chip—designed to run virtualized architectures efficiently.

So, to reiterate my point, Operating systems should target virtualization/abstraction features as efficiently as possible so it doesn’t matter which OS or workload folks run, or where it’s running (cloud, IoT, desktop, laptop, server, etc).

An additional area requiring research is security. Process obfuscation of some kind to prevent tampering etc there are still work to be done.

there were some kernel level new things in the last decade, nothing earth shattering, but interrupt coalescing was pretty nice, I remember seeing a few news like this over the years (some coming from MS first even:)
Are you talking about kernels or OSes? There is a huge difference in terms of opportunities for further research.
we're in a renaissance of systems research. Rob was right at the time but wrong now.
Redox?