Systems Programming and C Fundamentals

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/27

flashcard set

Earn XP

Description and Tags

This set covers systems programming definitions, software categories, OS architecture specifically Linux, system calls, the differences between C and C++, bitwise operators, and memory manipulation functions.

Last updated 6:35 PM on 5/22/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

28 Terms

1
New cards

System

A collection of various components.

2
New cards

Programming

The activity of designing and implementing programs.

3
New cards

Systems Programming

The activity of designing and implementing system programs.

4
New cards

System Programs

Programs required for the effective execution of general user programs on a computer system.

5
New cards

Utilities

Small programs or tools designed to perform specific tasks that help manage, maintain, or support system functionality.

6
New cards

Application Software

A program or set of programs used to solve a problem using the computer as an instrument, providing services to the user like word processors or web browsers.

7
New cards

System Software

Software that supports the operation of the computer, interfacing between hardware and application software, including compilers, loaders, and operating systems.

8
New cards

Operating System (OS)

A special program that resides between the computer hardware and application software.

9
New cards

Linux

A multiuser, multitasking, free and open source operating system with a Unix-like feel.

10
New cards

Linux Distributions

Packages consisting of the Linux kernel, basic software/utilities, and a package manager; examples include Debian, Fedora, Gentoo, and Kali.

11
New cards

Kernel

The central part of the OS that interfaces directly with the hardware.

12
New cards

Shell

The user interface for command execution in a Linux OS architecture.

13
New cards

System Calls

Generally available as assembly-language instructions, these provide the API interaction with system resources and transition the system from user mode to kernel mode.

14
New cards

GNU C Library (glibc)

A library that facilitates system calls by providing wrappers, support for threading, and basic application services.

15
New cards

User Mode

A CPU mode where certain instructions, such as modifying page tables, are prohibited to prevent abuse.

16
New cards

Kernel Mode

A privileged CPU mode where the OS code takes control, updates privileges, and performs requested functions.

17
New cards

Context-switch

The expensive process where the hardware saves its state and the OS code takes control of the CPU during a system call.

18
New cards

errno

A variable used to store an error number when a system call error occurs.

19
New cards

perror()

A function called to display an error message when a system call fails.

20
New cards

Procedural Programming

The programming paradigm followed by C where importance is given to the sequence of steps and a top-down approach.

21
New cards

Function Overloading

A feature supported by C++ using polymorphism that allows multiple functions with the same name, which is absent in C.

22
New cards

NAMESPACE

A feature in C++ used to avoid name collisions that is not present in C.

23
New cards

Reference Variables

A feature in C++ that allows two variable names to point to the same memory location, which is not allowed in C.

24
New cards

Bitwise Operators

Operators that perform bit-by-bit operations on integral types, providing the power of a low-level language for memory manipulation.

25
New cards

Mask

A value used in conjunction with bitwise operators to set bits on or off or to determine if a bit is currently on or off.

26
New cards

memcpy

voidmemcpy(voiddest,constvoidsrc,sizetn);void *memcpy (void *dest, const void *src, size_t n); - Copies a block of nn bytes from src to dest and returns a pointer to dest.

27
New cards

memset

voidmemset(voids,intc,sizetn);void *memset (void *s, int c, size_t n); - Sets nn bytes of s to the byte value c.

28
New cards

memcmp

intmemcmp(constvoids1,constvoids2,sizetn);int memcmp (const void *s1, const void *s2, size_t n); - Compares the first nn bytes of two arrays; the comparison is case sensitive.