TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Oasis: a small statically-linked Linux system

252 pointsby varbhatover 4 years ago

23 comments

mittermayrover 4 years ago
Would be cool to get a bit of a "why this matters" intro on repos like this. I clicked through the details, but left wondering if I have any potential use for this. Can I compile this onto a USB stick and use it as a throw-away boot Linux for maintenance tasks? Can I cross-compile this for embedded devices? What is the statically-linked advantage here? Not trying to minimize the effort, I would actually love to see more such things, but felt a bit left out as I couldn't figure out why exactly it exists.
评论 #25268980 未加载
评论 #25266299 未加载
评论 #25272756 未加载
评论 #25272951 未加载
评论 #25271338 未加载
HALtheWiseover 4 years ago
This seems to "statically link" binaries in the sense that each program it ships with is a standalone binary. Does anyone know whether it's possible to truly statically link an entire Linux install, in the sense that the whole system is a single statically linked file including the kernel, display manager, web browser, etc so that link-time optimization can deduplicate code across the entire system?
评论 #25266249 未加载
评论 #25267070 未加载
评论 #25266408 未加载
评论 #25266895 未加载
评论 #25266888 未加载
评论 #25266366 未加载
sirabenover 4 years ago
Does statically linking everything not lead to much higher disk usage, espcially when you have thousands of binaries? Drew Devault has an analysis[0] that appears to claim otherwise.<p>[0] <a href="https:&#x2F;&#x2F;drewdevault.com&#x2F;dynlib.html" rel="nofollow">https:&#x2F;&#x2F;drewdevault.com&#x2F;dynlib.html</a>
评论 #25268156 未加载
评论 #25268583 未加载
评论 #25272126 未加载
colonwqbangover 4 years ago
I find the build system more interesting than the &quot;statically linked&quot; part. Incremental compilation across your whole system is something we should have nailed by now, I think. The best I&#x27;ve seen is something like openembedded, where you get per-package (but not per-file) dependency tracking across the whole system.<p>I was ever so slightly disappointed to see how manual the packaging is, with every .c file listed in each lua script. It looks quite maintenance-intensive. I was almost hoping for some kind of meta-build system which could parse automake etc. files and hoist the dependency graph into the main system build.
评论 #25269764 未加载
评论 #25293157 未加载
Subsentientover 4 years ago
Honestly, I&#x27;m team dynamic linking. I prefer to have things clearly separated in functionality and easily upgradeable.<p>Statically linking all the OS utilities to their dependency libraries, over and over again? Dear god that sounds awful.
评论 #25266425 未加载
评论 #25266699 未加载
评论 #25268771 未加载
评论 #25272018 未加载
评论 #25267181 未加载
enriqutoover 4 years ago
This makes me so happy!<p>If static linking was ubiquitous, we could have avoided the complex craziness of docker and the like.
评论 #25267842 未加载
martttover 4 years ago
I might be mistaken, but is Oasis also somehow related to the suckless [1] community? (Edit: yes, the maintainer seems to be part of it.)<p>Another static distro by the suckless people is stali (static linux) [2].<p>1: <a href="http:&#x2F;&#x2F;suckless.org" rel="nofollow">http:&#x2F;&#x2F;suckless.org</a><p>2: <a href="https:&#x2F;&#x2F;sta.li" rel="nofollow">https:&#x2F;&#x2F;sta.li</a>
fmakunboundover 4 years ago
Ok maybe this is dumb question and is addressed somewhere: If a security problem is found, e.g. in muscl (the C lib), then is the user supposed to rebuild everything that statically linked it??
评论 #25268234 未加载
评论 #25267035 未加载
评论 #25266935 未加载
评论 #25272258 未加载
harry8over 4 years ago
oh no, LD_PRELOAD= hax won&#x27;t work! LGPL is d00med!<p>Beyond that dynamic linking seems like a great solution to a problem posed by hardware constraints from 30 years ago. Like a lot of CS. Eg most uses of linked lists. (Can&#x27;t wait for the abuse I&#x27;ll cop for that).
ObscureScienceover 4 years ago
I think it&#x27;s awesome. This is likely another of those passion project that, might draw in some overzealous on-watchers, not really become anything usable in the end, but still be incredibly valuable for the greater ecosystem.<p>It points out how some things has gone unconsidered in the &quot;status quo&quot;, but rather then just rant about it, shows how it can be different.<p>It might put some lesser known code bases into the public eye.<p>It might iron out compatibility issues with e.g. the linux kernel and &quot;the good parts&quot; of POSIX&#x2F;unix-philosophy. Which is why I like Alpine and Voidlinux for being such complete systems, without hard dependencies on GNU-components (I think the GNU project, especially many of the individual code bases, are awesome as well).<p>And while there are benefits of both statically linked applications, an dynamic linking, I do find it for the best if that can be a realistic choice of the user, whatever program of library you want to use. And most big applications simplu can&#x27;t be totally statically linked as of now.<p>It&#x27;s a form of &quot;greenfield project&quot;, but still leveraging existing components.
评论 #25275587 未加载
dry_soupover 4 years ago
I&#x27;ll never use this but it&#x27;s cool that it exists.
young_unixerover 4 years ago
&gt; No package manager.<p>&gt; Instead, you configure a set of specifications of what files from which packages to include on your system<p>Isn&#x27;t that a just a declarative package manager?
评论 #25269314 未加载
waynecochranover 4 years ago
All README&#x27;s should begin with some sort of mission statement. What is the goal or reason for the existence of this? I can imagine some, but I am not sure where this is heading.
评论 #25268482 未加载
评论 #25266146 未加载
qwerty456127over 4 years ago
&gt; netsurf instead of chromium or firefox<p>Great for the default but can we have a Firefox&#x2F;Chromium&#x2F;derivative as an alternative, for the sites which don&#x27;t work in NetSurf?
评论 #25272165 未加载
musicaleover 4 years ago
For my purposes I&#x27;ve often found that static-binary+cgroups+chroot+permissions gives you 90% of the isolation benefit of various container systems (docker) with like 10% of the pain.<p>I&#x27;m also not happy with Ubuntu&#x27;s move towards snaps which also seem to increase complexity and overhead with minimal benefit.<p>An app-as-directory setup, like the one that was used in NeXTSTEP and is still used in macOS, also seems to work OK.
pelasacoover 4 years ago
build manifests generated by Lua scripts look so elegant and clean.
anthkover 4 years ago
&gt;Velox<p>Arcan would be interesting on this, too.
haolezover 4 years ago
Is &quot;velox&quot; (mentioned in the article) a display server or a window manager?
评论 #25266562 未加载
评论 #25266040 未加载
评论 #25266038 未加载
AndyKelleyover 4 years ago
How does graphics drivers work on this distro?
评论 #25270523 未加载
Hello71over 4 years ago
it&#x27;s advertised as &quot;small&quot;. how small is that? an Alpine minirootfs is ~2.5 MB tar.gz and ~6.0 MB on ext4 (4k overhead).
评论 #25267408 未加载
kingdaaover 4 years ago
good stuff
pjmlpover 4 years ago
Having grown up on a static linked world, where dynamic linking was a thing of big iron computers that we dreamt about being able to do in home computers this trend of static linked compiled stuff feels somehow a tragedy of some sort.<p>How bad have we gone, that is now trendy to return to the days of static compiled binaries and process IPC to achieve any sort of dynamism.
评论 #25268741 未加载
0xbadcafebeeover 4 years ago
This would be 10x faster and smaller if they just built these components into Busybox.<p>Package management, library management, etc are solved problems when it comes to Linux distros. The only practical improvement you can make is containers (or similar).<p>Static binaries cannot deal with external dependencies, and many applications <i>require</i> external dependencies that <i>cannot be compiled in</i>. But even by trying to compile-in all the dependencies, you&#x27;ve only shifted the complexity from the filesystem to the build system, and you still have applications with incompatible features and interfaces across versions.
评论 #25266466 未加载