C/C++ find out list of C functions supported in FreeBSD



Reaction score: 988
Messages: 2,273

Memory safety is implemented by paying attention to hardware addresses in the C code.
Ah, no. Memory safety means prevention of access to invalid memory (i.e. the language should actively discourage you from having variables pointing to the uninitialized memory, already freed memory or memory belonging to a data structure of a different type). That is usually done by eliminating pointer arithmetic from the language, implementing bound checks and garbage collection (although Rust has lifetime tracking instead). For example, languages with garbage collection avoid use-after-free errors by forbidding programmers from explicitly freeing things — GC does that automatically once it detects there are zero references to a particular object/struct.

Sandboxing is ultimately an implementation of memory safety.
We have sandboxes for native code: emulators, hypervisors, jails. The latter two ultimately rely on the MMU (memory management unit), which obviously isn't a language property.

But, Intel's TSX fiasco??? links, please.
It used to be an advertisement point for the Haswell family of processors: https://en.wikipedia.org/wiki/Transactional_Synchronization_Extensions. To this day those instructions are barely used and pretty much never talked about. The only thing having quicker fall from grace in the last decade that I can remember would be HP's "The Machine". (Please, google that yourself using the terms provided to you.)


Son of Beastie

Reaction score: 2,404
Messages: 3,281

The largest RAM in a single address space every built must have been somewhere around 1 PB to 1.5 PB. Meaning a computer where one CPU core can address every byte of a 1PB address space, using load and store instructions, without going through network protocols. I don't know whether the current Summit/Sierra computers (which are about 3-4 PB of memory) have a single address space, but the slightly older IBM P775 did. Note that these are all NUMA architectures, where the memory performance varies greatly with the logical separation from the memory (like L1/L2/L3 cache versus memory, just extended out to remote memory).

In practice, these computers are typically configured with highly partitioned memory, each CPU only using memory that is relatively near it, for better performance.

For amusement: The 64 bit address space only allows for 16 EiB of memory, and we are today already at multiple PB, so we're getting within a factor of 1000 of running out. For disk storage, we have run out: there are file system where the capacity can no longer be measured in a 64-bit number.