دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Stewart Weiss
سری:
ناشر: Hunter College
سال نشر: 2020
تعداد صفحات: 536
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 6 Mb
در صورت تبدیل فایل کتاب Unix Lecture Notes به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب یادداشت های سخنرانی یونیکس نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Introduction to System Programming Introduction A Programming Illusion Cornerstones of UNIX Files and the File Hierarchy Processes Users and Groups Privileged and Non-Privileged Instructions Environments Shells Online Documentation: The Man Pages The UNIX Kernel API System Resources System Calls System Libraries UNIX and Related Standards The Problem The Solution: Standards The C Library and C Standards Learning System Programming by Example The UNIX File Hierarchy About Pathnames and Directories Working with Directories Files and Filenames Filenames What is a File? Working with Files File Attributes Viewing and Modifying File Attributes Symbolic Links Under the Hood: How Logging In Works UNIX From The System Programmer's Perspective A First System Program A First Attempt at the more Program A Bit About Terminals Device Special Files Examples A Second Attempt at the more Program What Is Still Wrong? A Third Attempt at the more Program Where We Go from Here Brief History of UNIX UNIX at the User Level Notation Logging In Logging Out Online Help: The man Pages Shells Shell Features Standard I/O and Redirection Command Separators and Multitasking The Shell as a Command Scripts Some Historical Remarks About Shells Login Records, File I/O, and Performance Introduction Commands Are (Usually) Programs The who Command Researching Commands In UNIX Reading Man Pages Man Page Searching Digging Deeper into the who Command Reading the Correct Header Files What Next? Writing who Reading Structures From a File The open() and close() System Calls A First Attempt at Writing who What to Do with System Call Errors Displaying login Records A Second Attempt at Writing who Suppressing Records That Are Not Active Logins Displaying Login Time in Human-Readable Form A Third Version of who A POSIX-compliant Version Summary Using a File in Read/Write Mode Opening a File in Read/Write Mode Logout Records Using lseek to Move the File Pointer Updating the utmp File on Logout Another Use of lseek Performance and Efficiency : Writing the cp Command What cp Does Opening/Creating Files For Writing Creating/Truncating Files Writing to Files A First Attempt at cp Timing Programs Buffering and its Impact on Performance System Call Overhead System Buffering Memory Mapped I/O Returning to who User-Defined Buffering Final Comments Filters: An Introduction sort head and tail cut Regular Expressions and grep Examples The Rest of the grep Family egrep fgrep File Globs 3 File Systems and the File Hierarchy 3.1 Introduction 3.2 File System Abstraction 3.3 File System Mounting 3.4 Disk Partitions 3.5 UNIX File Systems 3.6 The Principal Components of a UNIX File System 3.6.1 Defining and Creating File Systems 3.6.2 File Storage 3.6.3 How the Kernel Creates Files 3.6.4 How the Kernel Accesses Files 3.7 The ls Command 3.8 The Directory Interface 3.9 Implementing ls 3.10 A Second Version of ls 3.10.1 Adding the -l Option to ls 3.10.2 Converting File Mode to String Format 3.10.3 Converting User/Group ID to Strings 3.10.4 Formatting Time 3.10.5 Getting the Name of the Reference of a Link 3.11 The Three Special Bits 3.11.1 The Set-User-ID Bit 3.11.2 The Set-Group-ID Bit 3.11.3 The Sticky-Bit 3.11.4 The Special Bits and ls 3.12 A Final Version of ls 3.13 Modifying File Attributes 3.13.1 Type of a File 3.13.2 Permission Bits and Special Bits 3.13.3 Number of Links to a File 3.13.4 Owner and Group of a File 3.13.5 Size of a File 3.13.6 Modification and Access Time 3.13.7 Name of a File 3.14 Traversing the Tree, Up and Down 3.15 The pwd Command 3.15.1 Implementing the pwd Command 3.15.2 About pwd 3.15.3 How pwd Works 3.15.4 A First Version of pwd 3.15.5 Multiple File Systems: Mounting 3.15.6 Duplicate I-node Numbers and Cross-Device Links 3.15.7 A Second Version of pwd 3.15.8 Symbolic Links 3.15.9 System Calls Related to Symbolic Links 3.16 Tree Walks 3.16.1 The nftw() Tree Walk Function 3.16.2 The du Command 3.16.3 The fts File Hierarchy Traversal Functions Appendix A A.1 Useful Command-Line Options for ls A.1.1 Bit Masks A.2 The find Command Control of Disk and Terminal I/O Overview Open Files Using fcntl() to Control File Descriptor Attributes Appending and Race Conditions Controlling the Connection When Opening a File Device Files Naming and Organizing Device Files Accessing Devices Via Device Files Device Drivers and the /dev Directory Disk Drivers Pseudo-Terminals Character I/O Interfaces Other Character Devices Writing to a Device File Terminals and Terminal I/O An Experiment Terminal Devices: An Overview The stty Command Programming the Terminal Driver Implementing stty: showtty Non-Canonical Terminal Modes Other Terminal Processing Modes I/O Control Using ioctl Summary Interactive Programs and Signals The Different Types of UNIX Programs Software Tools (Filters) Daemons Interactive User Programs Designing Interactive User Programs Two Different Paradigms A Simple Text Editor: simplevi Features of simplevi Program Design Terminal Interaction The Main Program Non-Blocking Input Allowing Time-Outs A Test Program Signals Typing Ctrl-C at a Terminal Sources of Signals Signal Types Sending Signals Signal Generation and Delivery Signal Handling Putting It Together Weaknesses of the Signal Mechanism Signal Handling The "Right" Way Multiple Signals The sigaction() call The sigaction struct Example Example Creating Signal Mask Sets Blocking Signals Temporarily around Critical Sections Summary Event Driven Programming Introduction Common Features of Event-Driven Programs Terminal-based Games The Curses (NCurses) Library NCurses Basics Screen Updating Building Programs A Core Repertoire of Functions Important Points About Windows and Refreshing A Few Simple Programs User Input in NCurses Multiple Windows in NCurses Adding Timing to Programs: Sleeps Combining User Input and Timing Timing with the alarm() and pause() system calls Interval Timers Three kinds of timers: Real, Virtual, and Profile The Initial and Repeating Values How Timers Are Implemented in UNIX Timer Limitations and Precautions Timers and Signals in Video Games Cautions About Signal Handler Design A Demonstration Non-polling Input Non-polling I/O Using the O_ASYNC Flag The bouncestr.c Program Using O_ASYNC: Flawed Version The bouncestr.c Program Using O_ASYNC : A Proper Solution The bouncestr.c Program Using AIO Simulating Multiple Timers Summary Process Architecture and Control Introduction Examining Processes on the Command Line Process Groups Foreground and Background Processes Sessions The Memory Architecture of a Process Overview The Process Structure The User Structure The Text Segment The Stack Segment The Data Segment From File to Memory A Program To Display The Virtual Memory Boundaries Creating New Processes Using fork Other Versions of fork() Synchronizing Processes with Signals Executing Programs: The exec family The execve() System Call The exec() Library Functions Synchronizing Parents and Children: wait and exit Exit() Stage Left Waiting for Children to Terminate Using wait() Using waitpid() Non-blocking waits Waiting for State Changes in Children Summary Interprocess Communication, Part I Introduction Unnamed Pipes Parent and Child Sharing a Pipe Atomic Writes More About fpathconf() Pipe Capacity Caveats and Reminders Regarding Blocking I/O and Pipes I/O Redirection Revisited Simulating Output Redirection Simulating the '|' Shell Operator The popen() Library Function Named Pipes Named Pipes at the Command Level Programming With Named Pipes Example An Iterative Server Concurrent Servers The Concurrent Server Client The Concurrent Server Daemon Processes Multiplexed I/O With select Summary Interprocess Communication, Part II Sockets Background Connections Communication Basics The Socket InterfaceThis section must be updated. Some of the methods described are now obsolete. Setting Up a Connection Oriented Service Programming a Connection Oriented Server A Connection-Oriented Client Using Multiplexed I/O Threads Introduction Thread Concepts Programming Using Threads Overview of the Pthread Library Thread Management Creating Threads Design Decision Regarding Shared Data Thread Identification Thread Termination Thread Joining and Joinability Detached Threads Thread Cancellation Thread Properties Stack Size Mutexes Introduction Creating and Initializing Mutexes Locking a Mutex Unlocking a Mutex Destroying a Mutex Examples Using a Normal Mutex Other Types of Mutexes Condition Variables Creating and Destroying Condition Variables Waiting on Conditions Waking Threads Blocked on Conditions Condition Attributes Example Barrier Synchronization Motivation PThreads Barriers Example Reader/Writer Locks Introduction Using Reader/Writer Locks Further Details Example Other Topics Not Covered