Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
SSD-Guide
Solid State Drive Guide
https://github.com/mikeroyal/SSD-Guide
Last synced: about 20 hours ago
JSON representation
-
Assembly Learning Resources
- AMD GPU ISA documentation
- Assembly - level programming language. It uses mnemonic codes and labels to represent machine-level code with each instruction corresponding to just one machine operation.
- RISC-V Foundation - profit corporation controlled by its 500 members(NVIDIA, Google, Samsung, Raspberry Pi, SiFive, Canonical, and Western Digital) to drive forward the adoption and implementation of the free and open RISC-V instruction set architecture (ISA).
- x86 Assembly Language Reference Manual for Open Solaris
- AMD64 Architecture Programmer’s Manual Volume 1-5
- AMD Developer Guides, Manuals, and ISA Documents
- MIPS Architecture & Technology from Wave Computing
- x86 and amd64 instruction Reference
- Intro to x86 Assembly Language Programming
- Learn Assembly Programming courses on Udemy
- Assembly Languages and Assemblers courses on Coursera
- The Assembler language on z/OS from IBM
- Assembler language from IBM
-
Fabrics
- VirtManager
- HyperKit - level components such as the [VPNKit](https://github.com/moby/vpnkit) and [DataKit](https://github.com/moby/datakit). HyperKit currently only supports macOS using the [Hypervisor.framework](https://developer.apple.com/library/mac/documentation/DriversKernelHardware/Reference/Hypervisor/index.html) making it a core component of Docker Desktop for Mac.
- Cloud Hypervisor - lang.org/) and is based on the [rust-vmm](https://github.com/rust-vmm) crates.
- Xen
- Ganeti
- NVMe over Fabrics (NVMeOF) - capable networks. By leveraging RDMA, NVMf offloads data movement to the network card (NIC), thus reducing the processing overheads involved in handling remote I/O requests on both the host and the target.
- Non-Transparent Bridging (NTB) - domain communication, facilitating communication between devices in different switch partitions. This ability enables both hosts and EPs to initiate transactions to hosts and/or EPs in another switch partition. An NTB or NT Interconnection consists of two or more PCI functions each defined by a Type 0 PCI header that are interconnected by a bridging function. The Type 0 PCI functions are referred to as Non-Transparent EPs (NT EP). Each partition can have at most one NT EP.
- Gen-Z - systems fabric-based architecture designed to interconnect processors, memory devices and accelerators. The fabric enables resource provisioning and sharing to support a diverse range of applications and provide flexibility for system reconfiguration as application demands for different resources change.
- Remote Direct Memory Access(RDMA)fabrics
- Flash file system
- GlusterFS - the-shelf hardware, you can create large, distributed storage solutions for media streaming, data analysis, and other data- and bandwidth-intensive tasks.
- Ceph - defined storage solution designed to address the object, block, and file storage needs of data centers adopting open source as the new norm for high-growth block storage, object stores and data lakes. Ceph provides enterprise scalable storage while keeping [CAPEX](https://corporatefinanceinstitute.com/resources/knowledge/modeling/how-to-calculate-capex-formula/) and [OPEX](https://www.investopedia.com/terms/o/operating_expense.asp) costs in line with underlying bulk commodity disk prices.
- ZFS - ready open source file system and volume manager with unprecedented flexibility and an uncompromising commitment to data integrity.
- OpenZFS - source storage platform. It includes the functionality of both traditional file systems and volume manager. It has many advanced features including:
- PV(ParaVirtualization) - assisted virtualization.
- Network functions virtualization (NFV)
- Software Defined Networking (SDN) - based controllers or application programming interfaces (APIs) to communicate with underlying hardware infrastructure and direct traffic on a network. This model differs from that of traditional networks, which use dedicated hardware devices (routers and switches) to control network traffic.
- Virtualized Infrastructure Manager (VIM)
- Management and Orchestration(MANO) - hosted initiative to develop an Open Source NFV Management and Orchestration (MANO) software stack aligned with ETSI NFV. Two of the key components of the ETSI NFV architectural framework are the NFV Orchestrator and VNF Manager, known as NFV MANO.
- OpenRAN - vendor deployments.
- Open vSwitch(OVS)
- Multi-access edge computing (MEC) - parties across multi-vendor Multi-access Edge Computing platforms.
- Cloud-Native Network Functions(CNF)
- Physical Network Function(PNF)
- Network functions virtualization infrastructure(NFVI)
- KVM (for Kernel-based Virtual Machine) - V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko.
- Apple Hypervisor - party kernel extensions. Hypervisor provides C APIs so you can interact with virtualization technologies in user space, without writing kernel extensions (KEXTs). As a result, the apps you create using this framework are suitable for distribution on the [Mac App Store](https://www.appstore.com/).
- Apple Virtualization Framework - level APIs for creating and managing virtual machines on Apple silicon and Intel-based Mac computers. This framework is used to boot and run a Linux-based operating system in a custom environment that you define. It also supports the [Virtio specification](https://www.redhat.com/en/virtio-networking-series), which defines standard interfaces for many device types, including network, socket, serial port, storage, entropy, and memory-balloon devices.
- Apple Paravirtualized Graphics Framework - accelerated graphics for macOS running in a virtual machine, hereafter known as the guest. The operating system provides a graphics driver that runs inside the guest, communicating with the framework in the host operating system to take advantage of Metal-accelerated graphics.
- Packer
- Vagrant - to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the "works on my machine" excuse a relic of the past. It provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.
- VMware Workstation
- Cadence® Palladium®
- Veloce Hardware-assisted Verification System - generation integrated circuit (IC) designs. It is the first complete, integrated offering that combines best-in-class virtual platform, hardware emulation, and Field Programmable Gate Array (FPGA) prototyping technologies and paves the way to leverage the latest powerful hardware-assisted verification methodologies.
- Synopsys ZeBu® EP1 - up, hybrid, hardware/software debug, simulation acceleration, performance validation and in-circuit emulation.
- SystemVerilog DPI (Direct Programming Interface)
- SystemVerilog Assertions
- SystemVerilog Functional Coverage
- Verilog-to-Routing (VTR) project - wide collaborative effort to provide a open-source framework for conducting FPGA architecture and CAD research and development. The VTR design flow takes as input a Verilog description of a digital circuit, and a description of the target FPGA architecture.
- Verilog Power Estimation
- Universal Verification Methodology (UVM) - testbench-acceleration).
- Compute Express Link™ (CXL™) - supported Cache-Coherent Interconnect for Processors, Memory Expansion and Accelerators. CXL technology maintains memory coherency between the CPU memory space and memory on attached devices, which allows resource sharing for higher performance, reduced software stack complexity, and lower overall system cost.
- Synopsys Euclide - by-construction code development through context specific autocompletion and content assistance that is tuned for Synopsys VCS® simulation, Verdi® debug, and ZeBu® emulation, helping engineers to improve code quality during the entire project development cycle.
- Simvision - level and transaction-based flows across all IEEE-standard design, testbench, and assertion languages. It also supports concurrent visualization of hardware, software, and analog domains. It can be used to debug digital, analog, or mixed-signal designs written in Verilog, SystemVerilog, VHDL, and SystemC® languages or a combination thereof.
- Cadence® SpeedBridge® Adapters - level testing. It's designed for pre-silicon RTL and integration of ASICs and systems on chip (SoCs), the solution can reproduce post-silicon bugs, as the design runs in the actual target system. The solution verifies emulated designs with the actual ASIC/SoC software/hardware, driver development, and application development, and runs with existing software and software test programs.
- Intel® Graphics Virtualization Technology (Intel® GVT) - through, starting from 4th generation Intel Core (TM) processors with Intel processor graphics(Broadwell and newer). It can be used to virtualize the GPU for multiple guest virtual machines, effectively providing near-native graphics performance in the virtual machine and still letting your host use the virtualized GPU normally.
- Synopsys’ Verdi® HW SW Debug - driven SoC verification by providing a synchronized multi-window view of the design’s behavior of both hardware and software. It combines an instruction accurate embedded processor, RTL, C and assembly visibility for a comprehensive SoC debug solution.
-
Firmware Tools, Libraries, and Frameworks
- OpenSK - source implementation for security keys written in Rust that supports both FIDO U2F and [FIDO2](https://fidoalliance.org/fido2/) standards.
- fwupd
- System76 Firmware - line inferface) tool for installing firmware updates. Also, included is the system76-firmware-daemon package, which has a systemd service that exposes a DBUS API for handling firmware updates.
- Firmware Manager - firmware](https://github.com/pop-os/system76-firmware) and [fwupd](https://github.com/fwupd/fwupd), written in Rust.
- Heimdall - platform open-source tool suite used to flash firmware (aka ROMs) onto Samsung mobile devices.
- Nexmon - based firmware patching framework for Broadcom/Cypress WiFi chips that enables you to write your own firmware patches, for example, to enable monitor mode with radiotap headers and frame injection.
- Firmware Analysis Toolkit - store.com/collections/training/products/offensive-iot-exploitation) training conducted by [Attify](https://attify.com/).
- Firmware Analysis and Comparison Tool
- QMK Toolbox - detection and auto-flashing of firmware to keyboards.
- QMK(Quantum Mechanical Keyboard) Firmware - source keyboard firmware for Atmel AVR and [Arm](https://www.arm.com/) USB controllers, and more specifically, the [OLKB product line](https://olkb.com/), the [ErgoDox EZ keyboard](https://ergodox-ez.com/), and the [Clueboard product line](https://clueboard.co/).
- TMK Keyboard Firmware - M.
- Coreboot
- TianoCore - rich, cross-platform firmware development environment for the UEFI and UEFI Platform Initialization (PI) specifications.
- EDK II - rich, cross-platform firmware development environment for the UEFI and PI specifications .
- OpenWrt Project
- CHIPSEC
- Mellanox firmware update and query utility
- Mellanox FlexBoot - iSCSI). Combined with Virtual Protocol Interconnect (VPI) technologies available in ConnectX®-3 and onwards adapters, FlexBoot gives IT Managers the flexibility to deploy servers with one adapter card into InfiniBand or Ethernet networks with the ability to boot from LAN or remote storage targets.
-
Verilog/SystemVerilog Tools
- Apio - built packages, project configuration tools and easy command interface to verify, synthesize, simulate and upload your verilog designs.
- IceStorm
- OpenTimer - Performance Timing Analysis Tool for VLSI Systems.
- Icestudio
- PlatformIO - in. It provides support for multiplatforms and frameworks such as IoT, Arduino, CMSIS, ESP-IDF, FreeRTOS, libOpenCM3, mbed OS, Pulp OS, SPL, STM32Cube, Zephyr RTOS, ARM, AVR, Espressif (ESP8266/ESP32), FPGA, MCS-51 (8051), MSP430, Nordic (nRF51/nRF52), NXP i.MX RT, PIC32, RISC-V.
- PlatformIO for VSCode
- Chisel - lang.org/) programming language, providing designers with the power of a modern programming language to write complex, parameterizable circuit generators that produce synthesizable Verilog.
- Verilog to Routing(VTR) - source framework for conducting FPGA architecture and CAD Research & Development. The VTR design flow takes as input a Verilog description of a digital circuit, and a description of the target FPGA architecture.
- Cascade - In-Time Compiler for Verilog from VMware Research. Cascade executes code immediately in a software simulator, and performs compilation in the background. When compilation is finished, the code is moved into hardware, and from the user’s perspective it simply gets faster over time.
-
C/C++ Tools, Libraries and Frameworks
- Azure SDK for C++
- Azure SDK for C
- C++ Client Libraries for Google Cloud Services
- Vcpkg
- CppSharp
- Thrust - level interface greatly enhances programmer productivity while enabling performance portability between GPUs and multicore CPUs. Interoperability with established technologies such as CUDA, TBB, and OpenMP integrates with existing software.
- JavaCPP
- Spdlog - only/compiled, C++ logging library.
- AWS SDK for C++
- Visual Studio - rich application that can be used for many aspects of software development. Visual Studio makes it easy to edit, debug, build, and publish your app. By using Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, and Windows Store.
- Visual Studio Code
- ReSharper C++
- AppCode - fixes to resolve them automatically. AppCode provides lots of code inspections for Objective-C, Swift, C/C++, and a number of code inspections for other supported languages. All code inspections are run on the fly.
- CLion - platform IDE for C and C++ developers developed by JetBrains.
- Code::Blocks
- Conan
- ANTLR (ANother Tool for Language Recognition)
- Oat++ - efficient web application. It's zero-dependency and easy-portable.
- High Performance Computing (HPC) SDK
- Boost - edge C++. Boost has been a participant in the annual Google Summer of Code since 2007, in which students develop their skills by working on Boost Library development.
- Automake
- Cmake - source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice.
- GDB
- GCC - C, Fortran, Ada, Go, and D, as well as libraries for these languages.
- GSL - squares fitting. There are over 1000 functions in total with an extensive test suite.
- OpenGL Extension Wrangler Library (GLEW) - platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform.
- Libtool
- Maven
- TAU (Tuning And Analysis Utilities) - based sampling. All C++ language features are supported including templates and namespaces.
- Clang - C, C++ and Objective-C++ compiler when targeting X86-32, X86-64, and ARM (other targets may have caveats, but are usually easy to fix). Clang is used in production to build performance-critical software like Google Chrome or Firefox.
- OpenCV - time applications. Cross-Platform C++, Python and Java interfaces support Linux, MacOS, Windows, iOS, and Android.
- Cython
- Infer - C, and C. Infer is written in [OCaml](https://ocaml.org/).
- sparkfun
- vecteezy
- sdsu-physics
- differencebetween
- electrical4u
- differencebetween
-
Firmware Learning Resources
- Embedded Systems | Udacity Free Courses
- Firmware - level software.
- Internet of Things Graduate Program | Stanford Online
- Embedded Systems Certificate | UCSC Silicon Valley Extension
- Embedded Systems Technology (EET) | ODU Online
- Learn Embedded Systems with Online Courses and Classes | edX
- Top Embedded Systems Courses Online | Udemy
- Embedded Linux Online Course - Arm®
- Software Development Online Courses | Coursera
- Learn Software Development with Online Courses and Lessons | edX
-
System Memory
- NAND Flash
- 3D Vertical NAND (V-NAND) - to-cell interference-free structure using Charge Trap Flash (CTF) technology. This change in vertical arrangement of cells these SSDs have better capacities at lower production costs, half the power requirements, twice the speed and ten times the longevity of planar NAND.
- Charge trap flash (CTF) - volatile NOR and NAND flash memory. It's a type of floating-gate MOSFET memory technology, but differs from the conventional floating-gate technology in that it uses a silicon nitride film to store electrons rather than the doped polycrystalline silicon typical of a floating-gate structure.
- NOR Flash
- Universal Flash Storage (UFS) - performance interface designed for use in applications where power consumption needs to be minimized, including mobile systems such as smartphones and tablets as well as automotive applications. Its high-speed serial interface and optimized protocol enable significant improvements in throughput and system performance.
- Flash Translation Layer (FTL) - up. If the write operation was complete, then the new state of the logical sector will be read. No in-between states or complex recovery procedures are required.
- Intel® Optane™ memory
- Memory module
- CMOS (Complementary Metal-Oxide Semiconductor)
- Random Access Memory (RAM) - access data storage media.
- Non-Volatile Random Access Memory (NVRAM) - pin dual inline package (DIP) integrated circuit chip, which helps it to gain the power required to function from the CMOS battery on the motherboard.
- Embedded MultiMediaCard (eMMC)
- Error Correction Code (ECC) memory - bit memory errors. A single-bit memory error is a data error in server output or production, and the presence of errors can have a big impact on server performance. The two types of single-bit memory errors: **hard errors and soft errors**. **Hard errors** are caused by physical factors, such as excessive temperature variation, voltage stress, or physical stress brought upon the memory bits. **Soft errors** occur when data is written or read differently than originally intended, such as variations in voltage on the motherboard, to cosmic rays or radioactive decay that can cause bits in the memory to flip.
- EEPROM (Electrically Erasable Programmable Read-Only Memory) - volatile memory used in integrated in microcontrollers for smart cards/remote keyless systems, and other electronic devices to store relatively small amounts of data by allowing individual bytes to be erased and reprogrammed as needed in an application.
- EPROM - volatile memory type so it retains data even when the power is switched off. Each EPROM is individually programmed by an electronic device.
- Virtual memory - us/windows/client-management/introduction-page-file) or on Linux a [Swap space](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-swapspace).
- Secure virtual memory
- Memory-Mapped Files - mapped files in the same way that native Windows functions access memory-mapped files
- Bcache - based solid-state drives (SSDs), to act as a cache for one or more slower storage devices, such as hard disk drives (HDDs). This effectively creating hybrid volumes and provides performance improvements.
- 3D Vertical NAND (V-NAND) - to-cell interference-free structure using Charge Trap Flash (CTF) technology. This change in vertical arrangement of cells these SSDs have better capacities at lower production costs, half the power requirements, twice the speed and ten times the longevity of planar NAND.
-
SSD Interfaces
- Serial ATA (SATA) - state drives.
- M.2
- NVM Express (NVMe) - device interface specification for accessing a computer's non-volatile storage media usually attached via PCI Express (PCIe) bus.
- PCI Express (PCIe) - speed serial computer expansion bus standard, designed to replace the older PCI, PCI-X and AGP bus standards.
-
PCIe Protocols
- Transaction Layer Packets (TLPs)
- Physical layer - layer OSI model of computer networking. It provides mechanical, electrical and other functional aids available to enable or disable, they maintain and transmit bits about physical connections. This may for example be electrical signals, optical signals (optical fiber, laser), electromagnetic waves (wireless networks) or sound. The techniques used are called technical transmission process. Devices and network components that are associated with the physical layer, for example, the antenna and the amplifier, plug and socket for the network cable, the repeater, the stroke, the transceiver, the T-bar and the terminator.
- Network interface cards (NICs)
- Enumeration
-
Verilog/SystemVerilog Learning Resources
- Verilog
- SystemVerilog
- Verilog Book Shelf
- SystemVerilog for Design and Verification
- Verilog HDL Programming Courses on Udemy
- Top Verilog Programming Courses on Coursera
- Verilog course for Engineers on Technobyte
- Verilog Tutorials and Courses on hackr.io
- Learning Verilog for FPGA Development on LinkedIn Learning
- SystemVerilog tutorial on ChipVerify
- Designing With Verilog Certification from the Xilinx Learning Center
-
C/C++ Learning Resources
- C - purpose, high-level language that was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. It supports structured programming, lexical variable scope, and recursion, with a static type system. C also provides constructs that map efficiently to typical machine instructions, which makes it one was of the most widely used programming languages today.
- Embedded C - committee) to address issues that exist between C extensions for different [embedded systems](https://en.wikipedia.org/wiki/Embedded_system). The extensions hep enhance microprocessor features such as fixed-point arithmetic, multiple distinct memory banks, and basic I/O operations. This makes Embedded C the most popular embedded software language in the world.
- C & C++ Developer Tools from JetBrains
- Open source C++ libraries on cppreference.com
- C++ Graphics libraries
- C++ Libraries in MATLAB
- Google C++ Style Guide
- C++ style guide for Fuchsia
- C and C++ Coding Style Guide by OpenTitan
- Chromium C++ Style Guide
- C++ Core Guidelines
- C++ Style Guide for ROS
- Learn C++
- Learn C : An Interactive C Tutorial
- C++ Institute
- C++ Online Training Courses on LinkedIn Learning
- C++ Tutorials on W3Schools
- Learn C Programming Online Courses on edX
- Learn C++ with Online Courses on edX
- Learn C++ on Codecademy
- Coding for Everyone: C and C++ course on Coursera
- C++ For C Programmers on Coursera
- C++ Online Courses on Udemy
- Top C Courses on Udemy
- Basics of Embedded C Programming for Beginners on Udemy
- C++ For Programmers Course on Udacity
- C++ Fundamentals Course on Pluralsight
Categories
Fabrics
47
C/C++ Tools, Libraries and Frameworks
39
C/C++ Learning Resources
27
System Memory
20
Firmware Tools, Libraries, and Frameworks
18
Assembly Learning Resources
13
Verilog/SystemVerilog Learning Resources
11
Firmware Learning Resources
10
Verilog/SystemVerilog Tools
9
PCIe Protocols
4
SSD Interfaces
4
License
1
Sub Categories
Keywords
cpp
6
c
5
firmware
4
cpp11
2
azure-sdk
2
azure
2
security
2
c-plus-plus
2
verilog
2
embedded
2
qmk
2
cplusplus
2
python
2
cpp14
2
cxx14
2
virtualization
2
cpp17
2
kvm
2
ergodox-ez
1
keyboard-firmware
1
keyboard-support
1
clueboard
1
atmel-avr
1
qmk-firmware
1
macos
1
dfu
1
bootloadhid
1
olkb
1
apio
1
cli
1
fpga
1
icestorm
1
lattice
1
manager
1
package
1
cad
1
circuit-analysis
1
circuit-simulation
1
circuit-simulator
1
update
1
linux
1
webauthn
1
u2f
1
tock-os
1
tock
1
security-key
1
rust
1
opensk
1
hardware
1
fido2
1