Linux Systems Programming

Contents

Dependencies

cluster_linux Linux cluster_linux_sysprog Linux Systems Programming cluster_linux_sysprog_fileio File I/O cluster_linux_sysprog_intro_hw Introductory Live Hacking, Hardware-Wise (sysfs GPIO) cluster_linux_sysprog_blocking_io Blocking I/O: What Is That? cluster_linux_sysprog_posix_threads POSIX Threads cluster_linux_sysprog_basics Linux Systems Programming: Basics cluster_linux_sysprog_process Processes cluster_linux_sysprog_scheduling Scheduling cluster_linux_basics Linux Basics cluster_linux_basics_shell The Shell (Bash - “Bourne Again Shell”) cluster_linux_basics_intro Introduction: Concepts and Terminology cluster_linux_basics_permissions File System Permissions cluster_linux_toolchain Toolchain, And Cross Development linux_sysprog_events Sysprog: Events linux_sysprog_signals Sysprog: Signals linux_sysprog_ipc Sysprog: POSIX IPC linux_sysprog_fileio_example_O_RDONLY O_RDONLY: Reading a File linux_sysprog_fileio_basics File I/O: Basics linux_sysprog_fileio_example_O_RDONLY->linux_sysprog_fileio_basics linux_basics_permissions_basics Permissions: Mode, User and Group Ownership linux_sysprog_fileio_example_O_RDONLY->linux_basics_permissions_basics linux_sysprog_fileio_duplicate Duplicating (Whats Going On?) linux_sysprog_fileio_duplicate->linux_sysprog_fileio_basics linux_sysprog_fileio_basics_exercise_hole Exercise: Create File With Hole linux_sysprog_fileio_basics_exercise_hole->linux_sysprog_fileio_basics linux_sysprog_fileio_fileio_group File I/O linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_example_O_RDONLY linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_duplicate linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_basics_exercise_hole linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_basics linux_sysprog_fileio_misc Miscellaneous linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_misc linux_sysprog_fileio_example_O_WRONLY O_WRONLY: Writing A File (Which Must Exist) linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_example_O_WRONLY linux_sysprog_fileio_basics_exercise_copy Exercise: Copy A File linux_sysprog_fileio_fileio_group->linux_sysprog_fileio_basics_exercise_copy linux_sysprog_fileio_example_O_CREAT O_CREAT: Creating A File linux_sysprog_fileio_example_O_CREAT->linux_sysprog_fileio_basics linux_sysprog_fileio_example_O_CREAT->linux_sysprog_fileio_example_O_WRONLY linux_sysprog_fileio_example_O_CREAT->linux_basics_permissions_basics linux_sysprog_basics_groupnode Linux Systems Programming: Basics linux_sysprog_fileio_basics->linux_sysprog_basics_groupnode linux_sysprog_fileio_basics->linux_basics_permissions_basics linux_sysprog_fileio_misc->linux_sysprog_fileio_basics linux_sysprog_fileio_example_O_WRONLY->linux_sysprog_fileio_example_O_RDONLY linux_sysprog_fileio_example_O_WRONLY->linux_sysprog_fileio_basics linux_sysprog_fileio_example_O_WRONLY->linux_basics_permissions_basics linux_sysprog_fileio_basics_exercise_copy->linux_sysprog_fileio_basics linux_sysprog_basics_errorhandling Error Handling linux_sysprog_fileio_basics_exercise_copy->linux_sysprog_basics_errorhandling linux_sysprog_fileio_basics_exercise_copy->linux_basics_permissions_basics linux_sysprog_fileio_exercise_w1_sensor Exercise: Read Temperature From Onewire Sensor linux_sysprog_fileio_exercise_w1_sensor->linux_sysprog_fileio_basics linux_sysprog_fileio_exercise_w1_sensor->linux_sysprog_basics_errorhandling linux_sysprog_fileio_exercise_w1_sensor->linux_basics_permissions_basics linux_sysprog_fileio_example_O_EXCL O_EXCL: Creating A File, But Failing If It Already Exists linux_sysprog_fileio_example_O_EXCL->linux_sysprog_fileio_example_O_CREAT linux_sysprog_fileio_example_O_EXCL->linux_sysprog_fileio_basics linux_sysprog_fileio_example_O_EXCL->linux_basics_permissions_basics linux_sysprog_intro_hw_watch Interrupts In Userspace linux_sysprog_intro_hw_sysfs_gpio Intro: sysfs GPIO linux_sysprog_intro_hw_watch->linux_sysprog_intro_hw_sysfs_gpio linux_sysprog_intro_hw_get Get Value Of GPIO linux_sysprog_intro_hw_watch->linux_sysprog_intro_hw_get linux_sysprog_intro_hw_get->linux_sysprog_intro_hw_sysfs_gpio linux_sysprog_blocking_io_blocking_io_file Blocking I/O (On A File): What is That? linux_sysprog_blocking_io_blocking_io Blocking I/O: What is That? (“Everything is a file”) linux_sysprog_blocking_io_blocking_io_file->linux_sysprog_blocking_io_blocking_io linux_sysprog_blocking_io_blocking_io->linux_sysprog_fileio_basics linux_sysprog_blocking_io_blocking_io_timer Blocking I/O: On A Timer? WTF? linux_sysprog_blocking_io_blocking_io_timer->linux_sysprog_fileio_basics linux_sysprog_blocking_io_blocking_io_timer->linux_sysprog_blocking_io_blocking_io linux_sysprog_blocking_io_blocking_io_network Blocking I/O: On A Network Socket linux_sysprog_blocking_io_blocking_io_network->linux_sysprog_fileio_basics linux_sysprog_blocking_io_blocking_io_network->linux_sysprog_blocking_io_blocking_io linux_sysprog_posix_threads_exercise_mutex Mutex: Solve Load/Modify/Store Conflict linux_sysprog_posix_threads_mutex Synchronization linux_sysprog_posix_threads_exercise_mutex->linux_sysprog_posix_threads_mutex linux_sysprog_posix_threads_lifecycle Thread Life Cycle linux_sysprog_posix_threads_basics Basics linux_sysprog_posix_threads_lifecycle->linux_sysprog_posix_threads_basics linux_sysprog_posix_threads_miscellaneous Miscellaneous linux_sysprog_posix_threads_exercise_condition_variable Condition Variable: Message Queue linux_sysprog_posix_threads_miscellaneous->linux_sysprog_posix_threads_exercise_condition_variable linux_sysprog_posix_threads_condition_variable Communication: Condition Variable linux_sysprog_posix_threads_exercise_condition_variable->linux_sysprog_posix_threads_condition_variable linux_sysprog_posix_threads_condition_variable->linux_sysprog_posix_threads_exercise_mutex linux_sysprog_scheduling_basics Scheduling (and Multitasking) linux_sysprog_posix_threads_basics->linux_sysprog_scheduling_basics linux_sysprog_posix_threads_mutex_trylock Trylock/islocked linux_sysprog_posix_threads_mutex_trylock->linux_sysprog_posix_threads_mutex linux_sysprog_posix_threads_last_warning Last Warning linux_sysprog_posix_threads_last_warning->linux_sysprog_posix_threads_miscellaneous linux_sysprog_posix_threads_exercise_pthcreate_racecondition Thread Creation, Race Condition linux_sysprog_posix_threads_mutex->linux_sysprog_posix_threads_exercise_pthcreate_racecondition linux_sysprog_posix_threads_exercise_pthcreate_racecondition->linux_sysprog_posix_threads_lifecycle linux_sysprog_basics_groupnode->linux_sysprog_basics_errorhandling linux_sysprog_basics_syscalls System Calls vs. Library Functions linux_sysprog_basics_groupnode->linux_sysprog_basics_syscalls linux_sysprog_basics_errorhandling->linux_sysprog_basics_syscalls linux_toolchain_basics Toolchain: Basics linux_sysprog_basics_syscalls->linux_toolchain_basics linux_sysprog_process_tree The Process Tree (And Environment, And procfs) linux_sysprog_process_commandline Process: Arguments, Exit Status linux_sysprog_process_tree->linux_sysprog_process_commandline linux_basics_intro_process_tree Process Hierarchy (Parent, Child Process) linux_sysprog_process_tree->linux_basics_intro_process_tree linux_basics_intro_environment Environment (Variables) linux_sysprog_process_tree->linux_basics_intro_environment linux_basics_intro_process Processes, Scheduling, Address Spaces linux_sysprog_process_tree->linux_basics_intro_process linux_sysprog_process_commandline->linux_basics_intro_process linux_sysprog_scheduling_realtime Realtime linux_sysprog_scheduling_realtime->linux_sysprog_blocking_io_blocking_io linux_sysprog_scheduling_wakeup_latency Wakeup Latency, CPU Frequency (Gotcha) linux_sysprog_scheduling_realtime->linux_sysprog_scheduling_wakeup_latency linux_sysprog_scheduling_realtime_api Realtime API linux_sysprog_scheduling_realtime_api->linux_sysprog_posix_threads_lifecycle linux_sysprog_scheduling_realtime_api->linux_sysprog_posix_threads_mutex linux_sysprog_scheduling_realtime_api->linux_sysprog_scheduling_realtime linux_sysprog_scheduling_processes_and_threads Tasks? Processes? Threads? linux_sysprog_scheduling_processes_and_threads->linux_sysprog_scheduling_basics linux_sysprog_scheduling_wakeup_latency->linux_sysprog_blocking_io_blocking_io linux_sysprog_scheduling_wakeup_latency->linux_sysprog_scheduling_basics linux_sysprog_scheduling_basics->linux_sysprog_blocking_io_blocking_io linux_sysprog_scheduling_exam_questions Scheduling: Exam Questions linux_sysprog_scheduling_exam_questions->linux_sysprog_scheduling_realtime linux_sysprog_scheduling_exam_questions->linux_sysprog_scheduling_processes_and_threads linux_sysprog_scheduling_exam_questions->linux_sysprog_scheduling_wakeup_latency linux_basics_shell_special_paths Special Paths linux_basics_shell_paths Absolute and Relative Paths linux_basics_shell_special_paths->linux_basics_shell_paths linux_basics_shell_cwd Current Working Directory linux_basics_shell_cwd->linux_basics_shell_paths linux_basics_shell_commandline Commandline linux_basics_shell_cwd->linux_basics_shell_commandline linux_basics_shell_cwd->linux_basics_intro_process linux_basics_shell_paths->linux_basics_shell_commandline linux_basics_shell_ls Directory Listings: The ls Command linux_basics_shell_ls->linux_basics_shell_special_paths linux_basics_shell_ls->linux_basics_shell_cwd linux_basics_shell_ls->linux_basics_shell_paths linux_basics_intro_overview Overview linux_basics_shell_ls->linux_basics_intro_overview linux_basics_shell_commandline->linux_basics_intro_overview linux_basics_shell_file_dir_create_rm Creating And Removing Files and Directories linux_basics_shell_file_dir_create_rm->linux_basics_shell_cwd linux_basics_shell_file_dir_create_rm->linux_basics_shell_paths linux_basics_intro_process_tree->linux_basics_intro_process linux_basics_intro_environment->linux_basics_intro_process linux_basics_intro_process->linux_basics_intro_overview linux_basics_permissions_basics->linux_basics_shell_ls linux_toolchain_basics->linux_basics_shell_file_dir_create_rm