OPS
zig
OPS | zig | |
---|---|---|
11 | 818 | |
1,207 | 31,086 | |
1.6% | 4.1% | |
8.7 | 10.0 | |
25 days ago | 6 days ago | |
Go | Zig | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
OPS
-
Nanos – A Unikernel
I am a bit confused, there are three sites:
* https://nanos.org/
* https://nanovms.com/
* https://ops.city/
And I am not sure what "thing" I am using. Is there some disambiguation? I know is OPS is the orchestration CLI, but I am confused at the difference between Nanos and NanoVMs. What should I call the section of my README that deals with this tech? Currently gone with Nanos/OPS but I am confused.
-
AsmBB – a lightweight web forum engine written in assembly language
Sorry - just now seeing this.
We don't have any $7/unikernel offerings out there at all. We do have a desktop app that costs $7.
As for your other comment - one of the really awesome things about unikernels is that you don't have to roll your own infrastructure.
The way these are made is that all the infrastructure management is pushed onto the cloud of choice.
I'd highly encourage you to if you haven't to download https://ops.city and try to deploy something to GCP or AWS or wherever - it's free and would answer a lot of questions/assumptions you might have.
-
Gokrazy – Go Appliances
I've been looking at a few.
https://github.com/cloudius-systems/osv
https://ops.city/ (also nanovms) - this is one that I actually got working to at least demo state
-
Kolibri OS: fits on a floppy disk, programmed using interrupts
I work with https://nanos.org && https://ops.city - we can run thousands of these on commodity hardware.
-
Ask HN: Best Way to Harden a Server?
Might be a rhetorical question but are you on the cloud?
If so what language, apps are you running? I'd encourage you to take a look at https://ops.city && see if that is something that would work well for your use-case. It effectively turns your application into a server with no ability to run other programs on it and doesn't even have the notion of users or the ability to ssh in. The auditing requirements you are looking for go way down too as most of the things like "open a port", "log when rm -rf ~/.bash_history", or things like that simply don't happen. We actually measured the security controls from the the STIGs that are referenced in the other post and were seeing up to 70% reduction in them when deploying like this versus a deb/ubuntu instance, not to mention you don't have a half-dozen different interpreters, tens of users, thousands of shared libraries, etc.
Happy to answer any questions as I'm one of the authors/maintainers.
-
Running Postgres as a Unikernel
Definitely agree with the top part, however, I should note that, ops, the tool's, whole existence is to create disk images and upload them to any cloud, any hypervisor.
In particular, both https://ops.city && https://nanos.org are Go unikernels running on GCP and their deploys take just a few seconds to push out. AWS can be even faster cause we skip the s3 upload part. We also have lots of people using Azure which would be utilizing vhdx.
-
Apple Virtualization Framework
Translating x86 -> arm or vice-versa is always going to be slow. No amount of software will ever overcome that. If you are using arm you really need to embrace it. Running x86 on arm is only a hack - whether it's apple or some random github - it will only ever be a hack. It is one thing to dev on arm and deploy to x86 but expecting x86 to perform remotely close to the same exp on arm isn't something that's going to happen.
Having said that..
If you really want to run x86 images on arm, and while we're definitely not 1:1 with docker (and don't want to be) we're interested in people's experiences with https://ops.city as there is native hardware accelerated arm support and x86 on arm. (I'm with the company behind it.) It's definitely going to be more performant than a docker image since docker/k8s not only rely on a full blown linux but also abuse iptables, et al. It also has support for bridging (outside of the vm) and 9pfs so that would help alleviate your pain.
-
Applications available in unikernels?
I'm with that organization that works on https://nanos.org and https://ops.city . If you aren't a software engineer but still would like to use unikernels you're in luck - we also have a package repository at https://repo.ops.city/ (running as a go unikernel on GCP) that will allow you to run and deploy pre-made applications. If you don't see something that you'd like to us there's also a way of importing docker containers into unikernels via ops which works for most (but not all) applications.
-
Unikernels: The Next Stage of Linux's Dominance
For instance the filesystems have no permissions because there are no users because it is only running one process. Linux is ~30M LOC and half of that is drivers. When you deploy to a cloud you only really need a handful of drivers - something to talk to the disk, the network, a clock, etc. That's very different than deploying to bare metal servers where you have hundreds of different nics, usb, disk drives, etc. .... but it goes a lot further than that. The CFS scheduler and others are written specifically with the intention that the operating system is going to have to manage tens or hundreds of applications with tens of users. If you go to AWS and boot up a linux instance you'll find around a hundred programs running without you installing anything - even if it is on a vm with only one thread. Multiple processes which unikernels eschew come with a ton of baggage. Shared memory, IPC calls, scheduling, permissions, etc. We used to get questions asking why we didn't just make patches to linux (which this paper argues for btw) and the answer is simple - doing so is actually more work and harder to deal with than just writing a new unikernel specific kernel from scratch which is what we did. Might be worth pointing out that I've worked at a unikernel company for the past 5 years that is in charge of the open source https://nanos.org and https://ops.city toolchains.
-
Nanos: A kernel designed to run one and only one application
You an also build from source here: https://github.com/nanovms/nanos && https://github.com/nanovms/ops .
There are also packages available through AUR/homebrew and the like: https://ops.city/downloads .
The script is only there facilitate the 'install' such as ensuring you have qemu installed locally or assessing whether you have kvm/hvf rights/etc.
Also, I don't think this is documented yet but you can target various PRs/builds with ops via this way:
ops run /bin/ls --nanos-version d632de2
zig
-
Show HN: I made a better Perplexity for developers
It's "Zig" not "Zag". https://ziglang.org/ Zig is under heavy development, but there's a single page https://ziglang.org/documentation/0.12.0/ that is a reasonably comprehensive source of truth about the current state of the language.
- The search for easier safe systems programming
-
Memory-mapped IO registers in Zig. (2021)
There is an issue proposing this approach: https://github.com/ziglang/zig/issues/4284
- Zig Programming Language
- Zig Language 0.12 Release
-
Zig 0.12.0 Release Notes
https://github.com/ziglang/zig/issues/224
e.g.:
> > When debugging/prototyping, it's useful to comment out a line without having to refactor, e.g.
-
How to Write a PHP Extension with Zig?
When writing code in a scripting language, sometimes you need that extra bit of performance (or maybe an async feature from Zig).
-
Bun - The One Tool for All Your JavaScript/Typescript Project's Needs?
NodeJS is by no means a slow runtime, it wouldn’t be so popular if it was. But compared to Bun, it’s slow. Bun was built from the ground up with speed in mind, using both JavascriptCore and Zig. The Bun team spent an enormous amount of time and energy trying to make Bun fast, including lots of profiling, benchmarking, and optimizations.
-
Bun 1.1
ntdll.dll!RtlUserThreadStart()
There are valid reasons to use APIs from NTDLL. Where I disagree with zig#1840 is the idea that it is always better to use NTDLL versions of API. Every other software ecosystem uses the standard Win32 APIs and diverging from that without a good reason seems like a good way to have unexpected behavior. One concrete example is most users and programmers expect Windows to redirect some file system paths when running on WOW64. But this is implemented in Kernel32, not ntdll.
https://github.com/ziglang/zig/issues/11894
- Zig, Rust, and Other Languages
What are some alternatives?
nanos - A kernel designed to run one and only one application in a virtualized environment
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
elvish - Powerful scripting language & Versatile interactive shell
Odin - Odin Programming Language
mitchellh/cli - A Go library for implementing command-line interfaces.
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
Dnote - A simple command line notebook for programmers
rust - Empowering everyone to build reliable and efficient software.
flag - Flag is a simple but powerful command line option parsing library for Go support infinite level subcommand
go - The Go programming language
cobra - A Commander for modern Go CLI interactions
ssr-proxy-js - A Server-Side Rendering Proxy focused on customization and flexibility!