1/87
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Process
A running program with its own separate memory space.
Thread
A smaller unit of execution inside a process; threads share memory.
Process vs thread
Processes have separate memory; threads share memory and are lighter weight.
Race condition
A bug where output depends on timing/order of shared resource access.
Mutex
A lock that allows one thread at a time into a critical section.
Semaphore
A synchronization tool that controls access to a limited number of resources.
Deadlock
When threads/processes wait forever for resources held by each other.
Critical section
Code that accesses shared data and must be protected from simultaneous access.
Synchronous operation
The caller waits for the operation to finish before continuing.
Asynchronous operation
The operation can run without blocking the caller until completion.
Blocking call
A call that waits until the operation finishes.
Non-blocking call
A call that returns immediately even if the operation is not complete.
Polling
Repeatedly checking whether an event has happened.
Interrupt
A signal that notifies the CPU/system that an event needs attention.
Polling vs interrupt
Polling repeatedly checks; interrupts notify only when something happens.
TCP
Reliable, ordered, connection-based communication with retransmission.
UDP
Fast, connectionless, best-effort communication without delivery guarantees.
TCP vs UDP
TCP prioritizes reliability/order; UDP prioritizes low latency/simplicity.
Why UDP for telemetry
Fresh real-time data is usually more useful than delayed retransmitted old data.
When to use TCP
Commands, configuration, file transfer, software updates, or anything requiring reliable delivery.
When to use UDP
High-rate telemetry, video, audio, broadcasts, or data where occasional loss is acceptable.
IP address
Identifies a device or network interface on a network.
Port
Identifies a specific service/application on a device.
Socket
A communication endpoint, usually IP address plus port plus protocol.
Client
The side that initiates a request or connection.
Server
The side that listens for requests or connections.
Network interface
A network adapter/connection such as Ethernet, Wi-Fi, USB Ethernet, loopback, VPN, or virtual adapter.
Subnet
A logical network range where devices can often communicate directly.
Gateway
The device traffic goes through to reach other networks.
ping
Command used to test whether another device is reachable.
ip addr
Linux command used to view network interfaces and IP addresses.
ip route
Linux command used to view where network traffic will be sent.
ss -tulnp
Linux command used to show listening TCP/UDP ports and owning processes.
netstat
Older command used to inspect network connections and listening ports.
nc / netcat
Tool used to test whether a port is reachable or send simple network data.
tcpdump
Command-line tool for capturing and inspecting network packets.
Wireshark
GUI tool for capturing and analyzing network packets.
Firewall
Software/hardware that can block traffic by IP, port, or protocol.
Port not open
Common causes: service not running, wrong interface, wrong port, or firewall blocking it.
Network unreachable
Common causes: wrong IP, bad subnet, missing route, cable issue, or wrong interface.
Embedded Linux
Linux running on dedicated hardware or embedded devices.
ps
Command used to show running processes.
top
Command used to view live CPU/memory/process usage.
kill
Command used to terminate a process by PID.
systemctl status
Command used to check the status of a Linux service.
journalctl
Command used to view systemd logs.
journalctl -u service
Command used to view logs for a specific service.
tail -f
Command used to follow a log file live.
dmesg
Command used to view kernel/device messages.
lsusb
Command used to list USB devices detected by Linux.
lspci
Command used to list PCI devices detected by Linux.
/dev
Linux directory where device files appear.
/dev/ttyUSB0
Common device path for a USB serial adapter.
/dev/ttyS0
Common device path for a built-in serial port.
chmod +x
Makes a script executable.
rwx permissions
Read, write, execute permissions on Linux files.
UART
Asynchronous serial communication using TX/RX and start/stop bits.
SPI
Synchronous serial protocol using clock, MOSI, MISO, and chip select.
I2C
Synchronous two-wire protocol using clock/data and device addresses.
CAN bus
Robust message-based bus commonly used in vehicles and embedded systems.
Synchronous serial
Sender and receiver share a clock signal; examples include SPI and I2C.
Asynchronous serial
No shared clock; data uses start/stop bits; example is UART.
UART vs SPI
UART is asynchronous TX/RX; SPI is synchronous, usually faster, and uses clock/chip select.
SPI vs I2C
SPI is faster with more wires; I2C uses two wires and addressed devices.
ADC
Analog-to-digital converter; converts analog voltage into a digital value.
DAC
Digital-to-analog converter; converts digital values into analog voltage.
GPIB
Older lab instrument communication bus.
VISA
Software API/layer commonly used to communicate with lab instruments.
Modbus
Industrial communication protocol used for devices/controllers.
VLAN
Virtual LAN used to logically separate network traffic.
HITL / HIL
Hardware-in-the-loop; testing real hardware with simulated inputs/environment.
Virtualized hardware simulation
Test environment that simulates hardware behavior without the physical device.
Test stand
A hardware/software/instrumentation setup used to run tests.
Test fixture
Physical or electrical setup that holds/connects hardware under test.
Instrumentation
Measurement/control equipment such as scopes, power supplies, sensors, or analyzers.
Acceptance criteria
The conditions a component or test must meet to be considered passing.
Flaky test
A test that sometimes passes and sometimes fails without a clear product change.
Common flaky test causes
Timing issues, race conditions, environment state, weak waits, hardware setup issues, or network instability.
Root cause analysis
Finding the underlying reason a failure happened, not just the symptom.
Regression
A bug that reappears or a feature that breaks after a change.
CI / Continuous Integration
Automatically building and testing code after changes.
Jenkins
CI tool used to run builds, tests, scripts, and deployment steps.
Unit test
Test of a small isolated piece of code.
Integration test
Test that checks multiple components working together.
System test
Test of full system behavior.
End-to-end test
Test that exercises a full workflow like a real user/system.
Code coverage
Metric showing how much code is executed by tests.
Coverage threshold
Minimum required code coverage level before a build can pass.