3 ms·
What’s the point of this isolated “bottle” concept? It seems like the bloated nature of containers is now pouring into emulation. Why fix underlying problems w
by pipeline_peak 3y ago
What’s the point of this isolated “bottle” concept? It seems like the bloated nature of containers is now pouring into emulation.
Why fix underlying problems when you can just put things in a bottle/container? Like that won’t use more resources.
- worble 3y agoA bottle is basically just a wine prefix, everything you run in that bottle runs in that prefix.
- wtfishackernews 3y agoStorage space is cheap
- deleted 3y ago[deleted]
- mmastrac 3y agoBottles have been around longer than Linux containers, I'm afraid. The world of Windows emulation on Linux pre-bottle was extremely difficult to say the least. You're juggling a dozen dependencies, some of which are closed-source binaries, some are blackbox replacements, and each game or application is a special snowflake requiring very specific versions of these (and perhaps some tweaks here and there).
- Dalewyn 3y ago>each game or application is a special snowflake requiring very specific versions of these (and perhaps some tweaks here and there). It's worth emphasizing every time this subject rolls around just how impressive Microsoft's commitment to backwards compatibility in Windows really is.
- beebmam 3y agoCan you explain how containers are bloated?
- _9za9 3y agoIn my case, BTCPayServer was wrapped in a docker container because the developer loves docker... but I took the docker out of the project after I forked it because I felt putting the project in a docker container was extra bloat that was convoluted and unnecessary. In other words, a "container" didn't have to wrap the project, it was just implemented because of a dev insisting on it. That is bloat to me, extra and unnecessary.
- LASR 3y ago> In my case, BTCPayServer was wrapped in a docker container because the developer loves docker... Right. But one example doesn’t mean the entire world of containers is “bloat and unnecessary”. I’ve encountered many use cases where packaging dependencies and deployments become significantly simpler due to containers. True that there are possibly several other solutions that also solve similar problems. But that doesn’t mean containers don’t also solve actual problems.
- Jenk 3y agoThat is remarkably a non-answer. Not least because you don't even need to run the container at all when developing.
- mmastrac 3y agoIt's pretty easy to Google this particular example you've cited and see that they have non-docker instructions available, and don't recommend them because you can easily screw things up. Seems fair to me. https://docs.btcpayserver.org/Deployment/ManualDeployment/ https://docs.btcpayserver.org/Deployment/ManualDeployment/
- naikrovek 3y agogiven that Docker mostly (entirely?) gives a single UI to various related Linux kernel features, I don't see how it is bloat at all. Docker just tells the kernel to create a separate cgroup and networking, CPU, and RAM namespaces and then launches one or more processes within the confines set up with those things. it's the same overhead/bloat as launching any normal process in the default cgroup and contexts. > ... wrapped in a docker container because the developer loves docker I think you maybe don't love Docker and that's coloring some things for you, unjustly.
- hnlmorg 3y agoThis uses Wine, which isn’t emulation. Also since when were containers more “bloated” than emulation? The whole point of containers is that they don’t need to virtualise the entire stack because they are reusing parts of the host stack.
- actionfromafar 3y agoA rose by another name… that Wine is not an emulator is a good tagline, but it emulates Windows behaviour really well.
- pareidolia 3y agoIt's a runtime environment, like the JRE or Mono CLR. By your logic, the JRE is an emulator because it has a "java virtual machine."
- xcv123 3y agoWINE is not a VM though. It is an implementation of the Windows API. The Wine documentation admits that it is emulating the Windows API. https://wiki.winehq.org/Wine_Developer%27s_Guide/Architecture_Overview#Foreword https://wiki.winehq.org/Wine_Developer%27s_Guide/Architectur... Of course there is no hardware emulation, so all Windows binary code is running natively with no performance drop. That's why it was called WINE. But still there are two meanings of the word. Hardware emulation or OS emulation at API level.
- hnlmorg 3y agoThese two meaning are a little like how “theory” can mean different things to scientists vs non-scientists. In the context of computers, “emulation” has a specific meaning and one which isn’t applicable to WINE.
- xcv123 3y ago> Why fix underlying problems when you can just put things in a bottle/container? Like that won’t use more resources. This is WINE (not an emulator). Constrained by the design of Windows. Cannot fix that underlying problem. The resource cost is only tens of megabytes of storage and it provides clean isolation. It's not an entire copy of the OS. It's mostly just configuration.
- rzzzt 3y agoSettings like which version of Windows to impersonate, what TrueType fonts and DLLs need to be downloaded, what runtime to use (classic Wine or Proton), etc. can change from one application/game to another. DOSBox also has similar front-ends that can start Doom with a Sound Blaster 16 but Duke Nukem with a Sound Canvas by applying different configuration files.
- coconut08 3y agowine isn't emulation and wine prefixes are not containers. whenever you use wine you are using a wine prefix. all bottles is is a tool for managing wine prefixes.
- pmarreck 3y agoWINE = Wine Is Not-an Emulator