illumos-gate
glibc
illumos-gate | glibc | |
---|---|---|
36 | 27 | |
1,692 | 1,228 | |
1.3% | - | |
9.6 | 0.0 | |
5 days ago | over 6 years ago | |
C | C | |
- | GNU General Public License v3.0 or later |
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.
illumos-gate
- C stdlib isn't threadsafe and even safe Rust didn't save us
- Oxide Cuts Data Center Power Consumption in Half
-
The Last Sun Sparc Workstation
It’s still going, in the form of Illumos: https://illumos.org/
-
CVE-2023-2163: How we found and fixed an eBPF Linux Kernel Vulnerability
DTrace and eBPF are "not so different" in the sense that dtrace programs / hooks are also a form of low-level code / instruction set that the kernel (dtrace driver) validates at load. It's an "internal" artifact of dtrace though, https://github.com/illumos/illumos-gate/blob/master/usr/src/... and to my knowledge, nothing like a clang/gcc "dtrace target" exists to translate more-or-less arbitrary higher-level language "to low-level dtrace".
The additional flexibility eBPF gets from this is amazing really. While dtrace is a more-targeted (and for its intended usecases, in some situations still superior to eBPF) but also less-general tool.
(citrus vs. stone fruit ...)
- "Doors" in Solaris: Lightweight RPC Using File Descriptors (1996)
-
What Is PID 0?
We can see it is called sched. Why sched? This article talked about the historic role of PID 0 in process swapping. Process swapping is a scheduling problem (like a lot of problems in software). This is why swappers are traditionally called medium-term or memory schedulers. Illumos generally gives most groupings of kernel worker threads their own processes with their own PIDs, but one, called "sched", remains in PID 0, and its responsibility? Process swapping:
https://github.com/illumos/illumos-gate/blob/579c23696ac6891...
The Wikipedia article has now been hastily edited, and replaces a claim that was true only of certain Unixes other than Linux with a claim true only of certain Unixes including Linux. Is this an improvement?
-
eBPF Documentary
It may become a footnote on Linux, but Linux isn't the only system out there -- and DTrace remains alive and well in many systems (not least in its reference implementation in illumos[0]).
[0] https://github.com/illumos/illumos-gate
-
Oxide Computer releases distribution of illumos intended to power the Oxide Rack
Nobody's paid to have it pass Open Group Unix Branding certification tests
https://www.opengroup.org/openbrand/register/
so it can't use the UNIX™ trade mark.
But it's got the AT&T Unix kernel & userland sources contained in it.
PDP-11 Unix System III: https://www.tuhs.org/cgi-bin/utree.pl?file=SysIII/usr/src/ut...
IllumOS: https://github.com/illumos/illumos-gate/blob/b8169dedfa435c0...
-
In OpenZFS and Btrfs, everyone was just guessing
> it seems like this bug might actually date back to the very beginning of ZFS with Sun
Looks like you might be right about that. The oldest commit referenced in the fix [0] was from 2006[1], which was just months after Sun released ZFS.
[0] https://github.com/openzfs/zfs/pull/15571
[1] https://github.com/illumos/illumos-gate/commit/c543ec060d
- Getaddrinfo() on glibc calls getenv(), oh boy
glibc
-
Making memcpy(NULL, NULL, 0) well-defined
I'm sure other folks could dig up the code for Newlib, uclibc, and others, and they'd see the same thing.
On a related note, ISO C has THREE different things that most people tend to lump together as "undefined behavior." They are:
Implementation-defined behavior: ISO doesn't require any particular behavior, but they do require implementations to consistently apply a particular behavior, and document that behavior.
Unspecified behavior: ISO doesn't require any particular behavior, but they do require implementations to consistently use a particular behavior, but they don't require that behavior to be documented.
Undefined behavior: ISO doesn't require any particular behavior, and they don't require implementations to define any particular behavior either.
[1]: https://github.com/lattera/glibc/blob/master/string/memcpy.c
-
Scan HTML faster with SIMD instructions – Chrome edition
This thing? There's no hope for this thing. It's awful. https://github.com/lattera/glibc/blob/master/string/strspn.c
- `Strlen` in Glibc
-
How does sqrt() work in glibc?
I am writing a short paper for school and the topic is Fast Inverse Square Root and alternatives. One of the questions is how the sqrt-function is implemented in glibc. Here is the code of that function.
-
A collection of lock-free data structures written in standard C++11
The code isn't the easiest to read but in glibc it seems that the syscall is only performed if waiter are detected in userspace during an unlock operation
https://github.com/lattera/glibc/blob/master/nptl/pthread_mu...
-
Converting my new code (Bytearray2Float64) into 19 Programming Language
You might still not realize, but floats are a large topic. Have a look at eg. this implementation here: https://github.com/lattera/glibc/blob/master/stdlib/strtod_l.c
-
Honest question about this "The byte order fallacy" blog post.
This is a nice write up, thank you. However, I'm stilling interpreting this as a "fun trick" rather than the common sense method for solving the problem. For example, looking at the source code for htonl() from glibc: https://github.com/lattera/glibc/blob/master/inet/htonl.c
-
Dio deleted the tweet shortly after
Second of all: The horrifying truth is that there is no such thing as a canonical text representation for IPv4 (source) (and yes... I am indeed citing the failed attempt to standardize this as my source for it not being standardized). Authoritatively speaking, all possible (non-binary) representations are equally invalid. In fact, text address resolution is typically delegated to the OS kernel, so what constitutes a "usable" address is liable to vary depending on if you're using Linux, OSX, Windows, or Other.
-
Discussion Thread
Optimized code gets really weird. The creators of strlen, for example, decided that iterating over each character to find the end was far too slow. So instead, they convert the character pointer into an int pointer and do bitwise manipulation with the int on two different magic numbers so they can check four/eight characters at once.
- Tengo una duda en algo C/C++
What are some alternatives?
linux - Linux kernel source tree
DirectXMath - DirectXMath is an all inline SIMD C++ linear algebra library for use in games and graphics apps
linux - Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/
Cello - Higher level programming in C
unix-v6 - UNIX 6th Edition Kernel Source Code
fastapprox - Approximate and vectorized versions of common mathematical functions
awesome-space - 🛰️🚀A list of awesome space-related packages and resources maintained by The Orbital Index
multiversion-concurrency-control - Implementation of multiversion concurrency control, Raft, Left Right concurrency Hashmaps and a multi consumer multi producer Ringbuffer, concurrent and parallel load-balanced loops, parallel actors implementation in Main.java, Actor2.java and a parallel interpreter
ipd - illumos Project Discussion
riscv-asm-manual - RISC-V Assembly Programmer's Manual
orbiter - Open-source repository of Orbiter Space Flight Simulator
libjxl - JPEG XL image format reference implementation