Open source and other operating systems Books
Pearson Education (US) Advanced Programming in the UNIX Environment
Book SynopsisThe late W. Richard Stevens was the acclaimed author of UNIX Network Programming, Volumes 1 and 2, widely recognized as the classic texts in UNIX networking; TCP/IP Illustrated, Volumes 1-3; and the first edition of this book. Stephen A. Rago is the author of UNIX System V Network Programming (Addison-Wesley, 1993). Rago was one of the Bell Laboratories developers who built UNIX System V Release 4. He served as a technical reviewer for the first edition of Advanced Programming in the UNIX Environment. Rago currently works as a research staff member in the Storage Systems Group at NEC Laboratories America.Table of ContentsForeword to the Second Edition xix Preface xxi Preface to the Second Edition xxv Preface to the First Edition xxix Chapter 1: UNIX System Overview 1 1.1 Introduction 1 1.2 UNIX Architecture 1 1.3 Logging In 2 1.4 Files and Directories 4 1.5 Input and Output 8 1.6 Programs and Processes 10 1.7 Error Handling 14 1.8 User Identification 16 1.9 Signals 18 1.10 Time Values 20 1.11 System Calls and Librar y Functions 21 1.12 Summary 23 Chapter 2: UNIX Standardization and Implementations 25 2.1 Introduction 25 2.2 UNIX Standardization 25 2.3 UNIX System Implementations 33 2.4 Relationship of Standards and Implementations 36 2.5 Limits 36 2.6 Options 53 2.7 Feature Test Macros 57 2.8 Primitive System Data Types 58 2.9 Differences Between Standards 58 2.10 Summary 60 Chapter 3: File I/O 61 3.1 Introduction 61 3.2 File Descr iptors 61 3.3 open and openat Functions 62 3.4 creat Function 66 3.5 close Function 66 3.6 lseek Function 66 3.7 read Function 71 3.8 write Function 72 3.9 I/O Efficiency 72 3.10 File Shar ing 74 3.11 Atomic Operations 77 3.12 dup and dup2 Functions 79 3.13 sync, fsync, and fdatasync Functions 81 3.14 fcntl Function 82 3.15 ioctl Function 87 3.16 /dev/fd 88 3.17 Summary 90 Chapter 4: Files and Directories 93 4.1 Introduction 93 4.2 stat, fstat, fstatat, and lstat Functions 93 4.3 File Types 95 4.4 Set-User-ID and Set-Group-ID 98 4.5 File Access Per missions 99 4.6 Ownership of New Files and Directories 101 4.7 access and faccessat Functions 102 4.8 umask Function 104 4.9 chmod, fchmod, and fchmodat Functions 106 4.10 Sticky Bit 108 4.11 chown, fchown, fchownat, and lchown Functions 109 4.12 File Size 111 4.13 File Tr uncation 112 4.14 File Systems 113 4.15 link, linkat, unlink, unlinkat, and remove Functions 116 4.16 rename and renameat Functions 119 4.17 Symbolic Links 120 4.18 Creating and Reading Symbolic Links 123 4.19 File Times 124 4.20 futimens, utimensat, and utimes Functions 126 4.21 mkdir, mkdirat, and rmdir Functions 129 4.22 Reading Director ies 130 4.23 chdir, fchdir, and getcwd Functions 135 4.24 Device Special Files 137 4.25 Summary of File Access Per mission Bits 140 4.26 Summary 140 Chapter 5: Standard I/O Library 143 5.1 Introduction 143 5.2 Streams and FILE Objects 143 5.3 Standard Input, Standard Output, and Standard Error 145 5.4 Buffer ing 145 5.5 Opening a Stream 148 5.6 Reading and Writing a Stream 150 5.7 Line-at-a-Time I/O 152 5.8 Standard I/O Efficiency 153 5.9 Binary I/O 156 5.10 Positioning a Stream 157 5.11 For matted I/O 159 5.12 Implementation Details 164 5.13 Temporar y Files 167 5.14 Memory Streams 171 5.15 Alternatives to Standard I/O 174 5.16 Summary 175 Chapter 6: System Data Files and Information 177 6.1 Introduction 177 6.2 Password File 177 6.3 Shadow Passwords 181 6.4 Group File 182 6.5 Supplementary Group IDs 183 6.6 Implementation Differences 184 6.7 Other Data Files 185 6.8 Login Accounting 186 6.9 System Identification 187 6.10 Time and Date Routines 189 6.11 Summary 196 Chapter 7: Process Environment 197 7.1 Introduction 197 7.2 main Function 197 7.3 Process Termination 198 7.4 Command-Line Arguments 203 7.5 Environment List 203 7.6 Memory Lay out of a C Program 204 7.7 Shared Librar ies 206 7.8 Memory Allocation 207 7.9 Environment Var iables 210 7.10 setjmp and longjmp Functions 213 7.11 getrlimit and setrlimit Functions 220 7.12 Summary 225 Chapter 8: Process Control 227 8.1 Introduction 227 8.2 Process Identifiers 227 8.3 fork Function 229 8.4 vfork Function 234 8.5 exit Functions 236 8.6 wait and waitpid Functions 238 8.7 waitid Function 244 8.8 wait3 and wait4 Functions 245 8.9 Race Conditions 245 8.10 exec Functions 249 8.11 Changing User IDs and Group IDs 255 8.12 Interpreter Files 260 8.13 system Function 264 8.14 Process Accounting 269 8.15 User Identification 275 8.16 Process Scheduling 276 8.17 Process Times 280 8.18 Summary 282 Chapter 9: Process Relationships 285 9.1 Introduction 285 9.2 Ter minal Logins 285 9.3 Networ k Logins 290 9.4 Process Groups 293 9.5 Sessions 295 9.6 Controlling Terminal 296 9.7 tcgetpgrp, tcsetpgrp, and tcgetsid Functions 298 9.8 Job Control 299 9.9 Shell Execution of Programs 303 9.10 Orphaned Process Groups 307 9.11 FreeBSD Implementation 310 9.12 Summary 312 Chapter 10: Signals 313 10.1 Introduction 313 10.2 Signal Concepts 313 10.3 signal Function 323 10.4 Unreliable Signals 326 10.5 Interrupted System Calls 327 10.6 Reentrant Functions 330 10.7 SIGCLD Semantics 332 10.8 Reliable-Signal Ter minology and Semantics 335 10.9 kill and raise Functions 336 10.10 alarm and pause Functions 338 10.11 Signal Sets 344 10.12 sigprocmask Function 346 10.13 sigpending Function 347 10.14 sigaction Function 349 10.15 sigsetjmp and siglongjmp Functions 355 10.16 sigsuspend Function 359 10.17 abort Function 365 10.18 system Function 367 10.19 sleep, nanosleep, and clock_nanosleep Functions 373 10.20 sigqueue Function 376 10.21 Job-Control Signals 377 10.22 Signal Names and Numbers 379 10.23 Summary 381 Chapter 11: Threads 383 11.1 Introduction 383 11.2 Thread Concepts 383 11.3 Thread Identification 384 11.4 Thread Creation 385 11.5 Thread Termination 388 11.6 Thread Synchronization 397 11.7 Summary 422 Chapter 12: Thread Control 425 12.1 Introduction 425 12.2 Thread Limits 425 12.3 Thread Attr ibutes 426 12.4 Synchronization Attr ibutes 430 12.5 Reentrancy 442 12.6 Thread-Specific Data 446 12.7 Cancel Options 451 12.8 Threads and Signals 453 12.9 Threads and fork 457 12.10 Threads and I/O 461 12.11 Summary 462 Chapter 13: Daemon Processes 463 13.1 Introduction 463 13.2 Daemon Character istics 463 13.3 Coding Rules 466 13.4 Error Logging 469 13.5 Single-Instance Daemons 473 13.6 Daemon Conventions 474 13.7 Client–Server Model 479 13.8 Summary 480 Chapter 14: Advanced I/O 481 14.1 Introduction 481 14.2 Nonblocking I/O 481 14.3 Record Locking 485 14.4 I/O Multiplexing 500 14.5 Asynchronous I/O 509 14.6 readv and writev Functions 521 14.7 readn and writen Functions 523 14.8 Memory-Mapped I/O 525 14.9 Summary 531 Chapter 15: Interprocess Communication 533 15.1 Introduction 533 15.2 Pipes 534 15.3 popen and pclose Functions 541 15.4 Coprocesses 548 15.5 FIFOs 552 15.6 XSI IPC 556 15.7 Message Queues 561 15.8 Semaphores 565 15.9 Shared Memor y 571 15.10 POSIX Semaphores 579 15.11 Client–Server Proper ties 585 15.12 Summary 587 Chapter 16: Network IPC: Sockets 589 16.1 Introduction 589 16.2 Socket Descr iptors 590 16.3 Addressing 593 16.4 Connection Establishment 605 16.5 Data Tr ansfer 610 16.6 Socket Options 623 16.7 Out-of-Band Data 626 16.8 Nonblocking and Asynchronous I/O 627 16.9 Summary 628 Chapter 17: Advanced IPC 629 17.1 Introduction 629 17.2 UNIX Domain Sockets 629 17.3 Unique Connections 635 17.4 Passing File Descriptors 642 17.5 An Open Server, Version 1 653 17.6 An Open Server, Version 2 659 17.7 Summary 669 Chapter 18: Terminal I/O 671 18.1 Introduction 671 18.2 Over view 671 18.3 Special Input Characters 678 18.4 Getting and Setting Ter minal Attr ibutes 683 18.5 Ter minal Option Flags 683 18.6 stty Command 691 18.7 Baud Rate Functions 692 18.8 Line Control Functions 693 18.9 Ter minal Identification 694 18.10 Canonical Mode 700 18.11 Noncanonical Mode 703 18.12 Ter minal Window Size 710 18.13 termcap, terminfo, and curses 712 18.14 Summary 713 Chapter 19: Pseudo Terminals 715 19.1 Introduction 715 19.2 Over view 715 19.3 Opening Pseudo-Ter minal Devices 722 19.4 pty_fork Function 726 19.5 pty Program 729 19.6 Using the pty Program 733 19.7 Advanced Features 740 19.8 Summary 741 Chapter 20: A Database Library 743 20.1 Introduction 743 20.2 History 743 20.3 The Librar y 744 20.4 Implementation Over view 746 20.5 Centralized or Decentralized? 750 20.6 Concurrency 752 20.7 Building the Librar y 753 20.8 Source Code 753 20.9 Perfor mance 781 20.10 Summary 786 Chapter 21: Communicating with a Network Printer 789 21.1 Introduction 789 21.2 The Inter net Pr inting Protocol 789 21.3 The Hyper text Transfer Protocol 792 21.4 Printer Spooling 793 21.5 Source Code 795 21.6 Summary 843 Appendix A: Function Prototypes 845 Appendix B: Miscellaneous Source Code 895 B.1 Our Header File 895 B.2 Standard Error Routines 898 Appendix C: Solutions to Selected Exercises 905 Bibliography 947 Index 955
£49.39
Pearson Education (US) Art of UNIX Programming The
Book SynopsisHelps the readers understand that Unix is really a style of community.Table of Contents I. CONTEXT. 1. Philosophy. Culture? What culture? The durability of Unix. The case against learning Unix culture. What Unix gets wrong. What Unix gets right. Basics of the Unix philosophy. The Unix philosophy in one lesson. Applying the Unix philosophy. Attitude matters too. 2. History. Origins and history of Unix, 1969-1995. Origins and history of the hackers, 1961-1995. The open-source movement: 1998 and onward. The lessons of Unix history. 3. Contrasts. The elements of operating-system style. Operating-system comparisons. What goes around, comes around. II. DESIGN. 4. Modularity. Encapsulation and optimal module size. Compactness and orthogonality. Libraries. Unix and object-oriented languages. Coding for modularity. 5. Textuality. The Importance of Being Textual. Data file metaformats. Application protocol design. Application protocol metaformats. 6. Transparency. Some case studies. Designing for transparency and discoverability. Designing for maintainability. 7. Multiprogramming. Separating complexity control from performance tuning. Taxonomy of Unix IPC methods. Problems and methods to avoid. Process partitioning at the design level. 8. Minilanguages. Taxonomy of languages. Applying minilanguages. Designing minilanguages. 9. Transformation. Data-driven programming. Ad-hoc code generation. 10. Configuration. What should be configurable? Where configurations live. Run-control files. Environment variables. Command-line options. How to choose among configuration-setting methods. On breaking these rules. 11. Interfaces. Applying the Rule of Least Surprise. History of interface design on Unix. Evaluating interface designs. Tradeoffs between CLI and visual interfaces. Transparency, expressiveness, and configurability. Unix interface design patterns. Applying Unix interface-design patterns. The Web browser as universal front end. Silence is golden. 12. Optimization. Don't just do something, stand there! Measure before optimizing. Non-locality considered harmful. Throughput vs. latency. 13. Complexity. Speaking of complexity. A Tale of Five Editors. The right size for an editor. The right size of software. III. IMPLEMENTATION. 14. Languages. Unix's Cornucopia of Languages. Why Not C? Interpreted Languages and Mixed Strategies. Language evaluations. Trends for the Future. Choosing an X toolkit. 15. Tools. A developer-friendly operating system. Choosing an editor. Special-purpose code generators. Make in non-C/C++ Development. Version-control systems. Run-time debugging. Profiling. Emacs as the universal front end. 16. Re-Use. The tale of J. Random Newbie. Transparency as the key to re-use. From re-use to open source. The best things in life are open. Where should I look? What are the issues in using open-source software? Licensing issues. IV. COMMUNITY. 17. Portability. Evolution of C. Unix standards. Specifications as DNA, code as RNA. Programming for Portability. Internationalization. Portability, open standards and open source. 18. Documentation. Documentation concepts. The Unix style. The zoo of Unix documentation formats. The present chaos and a possible way out. The DocBook toolchain. How to write Unix documentation. 19. Open Source. Unix and open source. Best practices for working with open-source developers. The logic of licenses: how to pick one. Why you should use a standard license. Varieties of Open-Source Licensing. 20. Futures. Essence and accident in Unix tradition. Problems in the design of Unix. Problems in the environment of Unix. Problems in the culture of Unix. Reasons to believe. A. Glossary of Abbreviations. B. References. C. Contributors.
£38.47
Pearson Education (US) Design and Implementation of the FreeBSD
Book SynopsisMarshall Kirk McKusick writes books and articles, consults, and teaches classes on UNIX- and BSD-related subjects. While at the University of California at Berkeley, he implemented the 4.2BSD fast filesystem and was the Research Computer Scientist at the Berkeley Computer Systems Research Group (CSRG), overseeing the development and release of 4.3BSD and 4.4BSD. His particular areas of interest are the virtual-memory system and the filesystem. He earned his undergraduate degree in electrical engineering from Cornell University and did his graduate work at the University of California at Berkeley, where he received master's degrees in computer science and business administration, and a doctoral degree in computer science. He has twice been president of the board of the Usenix Association, is currently a member of the FreeBSD Foundation Board of Directors, a member of the editorial board of ACM's Queue magazine, a senior member of the IEEE, and a member of thTable of ContentsPreface xxi About the Authors xxix Part I: Over view 1 Chapter 1: History and Goals 3 1.1 History of the UNIX System 3 1.2 BSD and Other Systems 7 1.3 The Transition of BSD to Open Source 9 1.4 The FreeBSD Development Model 14 References 17 Chapter 2: Design Overview of FreeBSD 21 2.1 FreeBSD Facilities and the Kernel 21 2.2 Kernel Organization 23 2.3 Kernel Services 26 2.4 Process Management 26 2.5 Security 29 2.6 Memory Management 36 2.7 I/O System Overview 39 2.8 Devices 44 2.9 The Fast Filesystem 45 2.10 The Zettabyte Filesystem 49 2.11 The Network Filesystem 50 2.12 Interprocess Communication 50 2.13 Network-Layer Protocols 51 2.14 Transport-Layer Protocols 52 2.15 System Startup and Shutdown 52 Exercises 54 References 54 Chapter 3: Kernel Services 57 3.1 Kernel Organization 57 3.2 System Calls 62 3.3 Traps and Interrupts 64 3.4 Clock Interrupts 65 3.5 Memory-Management Services 69 3.6 Timing Services 73 3.7 Resource Services 75 3.8 Kernel Tracing Facilities 77 Exercises 84 References 85 Part II: Processes 87 Chapter 4: Process Management 89 4.1 Introduction to Process Management 89 4.2 Process State 92 4.3 Context Switching 99 4.4 Thread Scheduling 114 4.5 Process Creation 126 4.6 Process Termination 128 4.7 Signals 129 4.8 Process Groups and Sessions 136 4.9 Process Debugging 142 Exercises 144 References 146 Chapter 5: Security 147 5.1 Operating-System Security 148 5.2 Security Model 149 5.3 Process Credentials 151 5.4 Users and Groups 154 5.5 Privilege Model 157 5.6 Interprocess Access Control 159 5.7 Discretionary Access Control 161 5.8 Capsicum Capability Model 174 5.9 Jails 180 5.10 Mandatory Access-Control Framework 184 5.11 Security Event Auditing 200 5.12 Cryptographic Services 206 5.13 GELI Full-Disk Encryption 212 Exercises 217 References 217 Chapter 6: Memory Management 221 6.1 Terminology 221 6.2 Overview of the FreeBSD Virtual-Memory System 227 6.3 Kernel Memory Management 230 6.4 Per-Process Resources 244 6.5 Shared Memory 250 6.6 Creation of a New Process 258 6.7 Execution of a File 262 6.8 Process Manipulation of Its Address Space 263 6.9 Termination of a Process 266 6.10 The Pager Interface 267 6.11 Paging 276 6.12 Page Replacement 289 6.13 Portability 298 Exercises 308 References 310 Part III: I/OSystem 313 Chapter 7: I/O System Overview 315 7.1 Descriptor Management and Services 316 7.2 Local Interprocess Communication 333 7.3 The Virtual-Filesystem Interface 339 7.4 Filesystem-Independent Services 344 7.5 Stackable Filesystems 352 Exercises 358 References 359 Chapter 8: Devices 361 8.1 Device Overview 361 8.2 I/O Mapping from User to Device 367 8.3 Character Devices 370 8.4 Disk Devices 374 8.5 Network Devices 378 8.6 Terminal Handling 382 8.7 The GEOM Layer 391 8.8 The CAM Layer 399 8.9 Device Configuration 402 8.10 Device Virtualization 414 Exercises 428 References 429 Chapter 9: The Fast Filesystem 431 9.1 Hierarchical Filesystem Management 431 9.2 Structure of an Inode 433 9.3 Naming 443 9.4 Quotas 451 9.5 File Locking 454 9.6 Soft Updates 459 9.7 Filesystem Snapshots 480 9.8 Journaled Soft Updates 487 9.9 The Local Filestore 496 9.10 The Berkeley Fast Filesystem 501 Exercises 517 References 519 Chapter 10: The Zettabyte Filesystem 523 10.1 Introduction 523 10.2 ZFS Organization 527 10.3 ZFS Structure 532 10.4 ZFS Operation 535 10.5 ZFS Design Tradeoffs 547 Exercises 549 References 549 Chapter 11: The Network Filesystem 551 11.1 Overview 551 11.2 Structure and Operation 553 11.3 NFS Evolution 567 Exercises 586 References 587 Part IV: Interprocess Communication 591 Chapter 12: Interprocess Communication 593 12.1 Interprocess-Communication Model 593 12.2 Implementation Structure and Overview 599 12.3 Memory Management 601 12.4 IPC Data Structures 606 12.5 Connection Setup 612 12.6 Data Transfer 615 12.7 Socket Shutdown 620 12.8 Network-Communication Protocol Internal Structure 621 12.9 Socket-to-Protocol Interface 626 12.10 Protocol-to-Protocol Interface 631 12.11 Protocol-to-Network Interface 634 12.12 Buffering and Flow Control 643 12.13 Network Virtualization 644 Exercises 646 References 648 Chapter 13: Network-Layer Protocols 649 13.1 Internet Protocol Version 4 650 13.2 Internet Control Message Protocols (ICMP) 657 13.3 Internet Protocol Version 6 659 13.4 Internet Protocols Code Structure 670 13.5 Routing 675 13.6 Raw Sockets 686 13.7 Security 688 13.8 Packet-Processing Frameworks 700 Exercises 715 References 717 Chapter 14: Transport-Layer Protocols 721 14.1 Internet Ports and Associations 721 14.2 User Datagram Protocol (UDP) 723 14.3 Transmission Control Protocol (TCP) 725 14.4 TCP Algorithms 732 14.5 TCP Input Processing 741 14.6 TCP Output Processing 745 14.7 Stream Control Transmission Protocol (SCTP) 761 Exercises 768 References 770 Part V: System Operation 773 Chapter 15: System Startup and Shutdown 775 15.1 Firmware and BIOSes 776 15.2 Boot Loaders 777 15.3 Kernel Boot 782 15.4 User-Level Initialization 798 15.5 System Operation 800 Exercises 805 References 806 Glossary 807 Index 847
£51.29
Manning Publications Linux in Action
Book SynopsisDescription The Linux operating system powers millions of web servers, data centers, and application platforms worldwide. Whether you're pushing applications to a cloud system like AWS, building a twitter bot on a Raspberry Pi, or rescuing files from a crashed laptop, Linux is required knowledge. Linux in Action is a task-based tutorial that will give readers the skills and deep understanding they'll need to administer a Linux-based system. Key features · Hands-on guide · Step-by-step examples · Task-based Audience Readers should be comfortable working with the files, networks, and basic resources of a modern operating system. About the technology Linux makes it possible to do all kinds of really useful and creative things. For instance, you can load a Linux "live boot" image on a USB stick, boot a PC whose own hard disk has been corrupted, and troubleshoot and fix the problem.
£36.71
APress How JavaScript Works
Book SynopsisJavaScript is a complicated language with a lot of misinformation surrounding how it works. This book provides a comprehensive introduction to JavaScript, from how it works at a technical level to how it is used to create websites and applications. Everything you need to know to start a career in JavaScript development is covered here. How JavaScript Worksbeginswith a practical introduction of the basics before moving into the technical underpinnings of JavaScript, detailing everything you need to know, including variables, memory storage, functions, classes, types, maps, sets and APIs.Once you've fully absorbed these key topics. author Jonathan Simpson will show you how to put them into practice, demonstrating how they are employed for modern web development. You'll learn how to use JavaScript with HTML and CSS to construct web pages and applications, how to change CSS with JavaScript, and how to utilize Fetch and asynchronous operations. Uponcompleting this book, you will have thTable of ContentsCh1 Introduction to JavaScript.- Ch2 Variables, Comments, and Logical Statements.- Ch3 Introduction to Objects, Arrays.- Ch4 Loops and Iterables.- Ch5 References, Values, and Memory Management.- Ch6 Functions and Classes.- Ch7 Types.- Ch8 Manipulating and Interacting with HTML.- Ch9 Maps and Sets.- Ch10 Fetching Data, APIs and Promises.- Ch11 Errors and the Console.- Ch12 Maps and Sets.- Ch13 Websockets.- Conclusion.- Appendix.
£29.69
O'Reilly Media Learning the vi and Vim Editors
Book SynopsisWith this updated edition, Unix and Linux users will learn text editing basics for both vi and Vim ("vi improved") before moving on to advanced editing tools for each editor. Authors Arnold Robbins and Elbert Hannah cover the latest major releases of Vim, including 8.0 and 8.2.
£39.74
Pearson Education (US) The AWK Programming Language
Book SynopsisAlfred V. Aho is Lawrence Gussman Professor Emeritus of Computer Science at Columbia University, and former department chair. Well known for his work on algorithms, data structures, programming languages, compilers, and the foundations of computer science, he has received the ACM A. M. Turing Award and the IEEE John von Neumann Medal. Brian W. Kernighan was a member of the Computing Science Research Center at Bell Labs and is currently a professor in the Computer Science department at Princeton. He is the co-creator of several programming languages and the co-author of numerous books, including the computing classic, The C Programming Language. Peter J. Weinberger, currently at Google, has served as chief technology officer at Renaissance Technologies and as leader of computer science research at Bell Labs. He is a Fellow of the AAAS.Table of ContentsPreface ix Chapter 1: An Awk Tutorial 11.1 Getting Started 11.2 Simple Output 41.3 Formatted Output 71.4 Selection 81.5 Computing with Awk 101.6 Control-Flow Statements 131.7 Arrays 161.8 Useful One-liners 171.9 What Next? 19 Chapter 2: Awk in Action 212.1 Personal Computation 212.2 Selection 232.3 Transformation 252.4 Summarization 272.5 Personal Databases 282.6 A Personal Library 312.7 Summary 34 Chapter 3: Exploratory Data Analysis 353.1 The Sinking of the Titanic 363.2 Beer Ratings 413.3 Grouping Data 433.4 Unicode Data 453.5 Basic Graphs and Charts 473.6 Summary 49 Chapter 4: Data Processing 514.1 Data Transformation and Reduction 514.2 Data Validation 574.3 Bundle and Unbundle 594.4 Multiline Records 604.5 Summary 66 Chapter 5: Reports and Databases 675.1 Generating Reports 675.2 Packaged Queries and Reports 735.3 A Relational Database System 755.4 Summary 83 Chapter 6: Processing Words 856.1 Random Text Generation 856.2 Interactive Text-Manipulation 906.3 Text Processing 926.4 Making an Index 996.5 Summary 105 Chapter 7: Little Languages 1077.1 An Assembler and Interpreter 1087.2 A Language for Drawing Graphs 1117.3 A Sort Generator 1137.4 A Reverse-Polish Calculator 1157.5 A Different Approach 1177.6 A Recursive-Descent Parser for Arithmetic Expressions 1197.7 A Recursive-Descent Parser for a Subset of Awk 1227.8 Summary 126 Chapter 8: Experiments with Algorithms 1298.1 Sorting 1298.2 Profiling 1428.3 Topological Sorting 1448.4 Make: A File Updating Program 1488.5 Summary 153 Chapter 9: Epilogue 1559.1 Awk as a Language 1559.2 Performance 1579.3 Conclusion 160 Appendix A: Awk Reference Manual 163A.1 Patterns 165A.2 Actions 176A.3 User-Defined Functions 196A.4 Output 197A.5 Input 202A.6 Interaction with Other Programs 207A.7 Summary 208 Index 209
£30.39
O'Reilly Media Grep Pocket Reference
Book SynopsisPresents grep, a utility program that helps you locate content in any file on a Unix or Linux system. This book lets you learn methods for filtering large files for specific content. It is suitable for system administrators, security professionals, and developers.
£16.99
APress Web Application Development with Streamlit
Book SynopsisTransition from a back-end developer to a full-stack developer with knowledge of all the dimensions of web application development, namely, front-end, back-end and server-side software. This book provides a comprehensive overview of Streamlit, allowing developers and programmers of all backgrounds to get up to speed in as little time as possible. Streamlit is a pure Python web framework that will bridge the skills gap and shorten development time from weeks to hours. This book walks you through the complete cycle of web application development, from an introductory to advanced level with accompanying source code and resources. You will be exposed to developing basic, intermediate, and sophisticated user interfaces and subsequently you will be acquainted with data visualization, database systems, application security, and cloud deployment in Streamlit. In a market with a surplus demand for full stack developers, this skill set could not possiblTable of Contents Part I: Introduction to Streamlit 1 Getting Started with Streamlit 1.1 Why Streamlit? 1.2 How Streamlit Works 1.3 Firing it up 2 Streamlit Basics 2.1 The Streamlit API 2.2 Creating a basic app Part II: Developing Advanced Interfaces and Applications 3 Architecting Streamlit’s Front-end Design 3.1 Designing the application 3.2 Provisioning multi-page applications 3.3 Data wrangling 4 Graphing in Depth 4.1 Visualization stack 4.2 Exploring Plotly data visualizations Part III: Interfacing with Database and Back-end Systems 5 Database Integration 5.1 Relational Databases 5.2 Non-relational databases 6 Back-end Servers 6.1 The need for back-end servers 6.2 Front-end/ Back-end Communication 6.3 Working with JSON files 6.4 Provisioning a back-end server 6.5 Multi-threading and multi-processing request 6.6 Connecting Streamlit to a Back-end Server Part IV: Enforcing Application Security and Privacy 7 Session State 7.1 Introducing session IDs 7.2 Implementing session state persistently 7.3 Recording user insights 7.4 Implementing session state natively 7.5 Cookies management 8 Authentication and Application Security 8.1 Developing user accounts 8.2 Verifying user credentials 8.3 Secrets management 8.4 Anti-SQL injection measures with SQL Alchemy 8.5 Configuring Git Ignore variables Part V: Deploying Streamlit to the Cloud 9 Persistent Deployment 9.1 Deployment to Streamlit Sharing 9.2 Deployment to Linux 9.3 Deployment to Windows Server 10 Exposing Local Streamlit to the World Wide Web 10.1 Port forwarding over network gateway 10.2 Reverse Port Forwarding using NGROK Part VI: Streamlit Custom Components 11 Building Streamlit components with React.js 11.1 Introduction to Streamlit custom components 11.2 Using React.js to create custom HTML components 11.3 Deploying components as a Pip package 12 Extra-Streamlit-Components Package 12.1 Stepper bar 12.2 Splash screen . . 12.3 Tab bar 12.4 Cookie Manager Part VII: Streamlit Case Studies 13 General Use Cases 13.1 Data science & machine learning applications 13.2 Dashboards and real-time applications 13.3 Time-series applications 13.4 Advanced application development 14 Steamlit at Work 14.1 Iberdrola Renewables 14.2 DummyLearn.com
£41.24
No Starch Press,US Absolute Freebsd, 3rd Edition: The Complete Guide
Book SynopsisAbsolute FreeBSD is your complete guide to FreeBSD, the powerful UNIX-like operating system that's supported modern servers, desktops, and platforms for years. In this completely revised third edition, FreeBSD committer Michael W. Lucas will teach you how to install, configure, and manage FreeBSD-based systems. You'll find added coverage of IPv6 and modern disks, redesigned jail and packaging systems, modern disks, and virtualisation, and learn about two FreeBSD 11.x transformative features designed for cloud-based management, libxo and UCL.Trade Review"A must-have if you are interested on operating systems, not just UNIX or similar software."—Albert Valbuena, Admin... by accident!"A fantastic book on FreeBSD. Clear. Concise. Informative for new FreeBSD users and sysadmins . . . A must-have book for all people interested in learning FreeBSD system management."—Vivek Gite, nixCraft"An ESSENTIAL guide for FreeBSD."—Gordon Ewasiuk, Amazon Vine Voice
£46.49
Manning Publications Modern C
Book SynopsisIf you think “Modern” and “C” don’t belong in the same sentence, think again. The C standards committee actively reviews and extends the language, with updated published C standards as recently as 2018. In Modern C, author Jens Gustedt teaches you the skills and features you need to write relevant programs in this tried-and-true language, including Linux and Windows, device drivers, web servers and browsers, smartphones, and much more! Modern C teaches you to take your C programming skills to new heights, whether you’re just starting out with C or have more extensive experience. Organized by level, this comprehensive guide lets you jump in where it suits you best while still reaping the maximum benefits. Key Features Fundamentals of C programming Operators and functions Performance techniques C library functions For more than four decades, C has proved its usefulness and staying power for everything from massive systems for mainframes, satellites, and internet browsers to tiny embedded systems in vending machines, credit card readers, and alarm clocks. Today you’ll find lightning-fast, elegant C programs running in smartphone kernels, databases, 3D movies, video games, and scores of other modern applications. For programmers comfortable writing simple programs in a language like Java, Python, Ruby, C#, C++, or C. Jens Gustedt has been a senior scientist at the French National Institute for Computer Science and Control (INRIA) since 1998, working in areas including algorithms, scientific experimentation, models for coarse-grained parallelism, and distributed locking. Currently, he’s conducting the Modular C project, which has given rise to libraries such as arbogast and EiLck.
£45.59
In Easy Steps Limited Unix in Easy Steps
Book SynopsisUnix in easy steps demonstrates how to get the most from any Unix-based operating system using the built-in BASH shell interpreter - the "Bourne Again SHell" (BASH). This is the default shell for Linux distributions (such as Ubuntu), Mac OS X, Solaris, and for the Raspbian operating system on Raspberry Pi devices.This book will show you how to use the BASH command-line interface and how to employ BASH''s powerful programming abilities. Complete examples illustrate each aspect with colourised source code and full-colour screenshots depict the actual output. Unix in easy steps begins by demonstrating BASH commands for system navigation and file manipulation so you will quickly become familiar with the command-line interface. It explains all the BASH basics before moving on to describe advanced features such as: Command history. Command-line editing. Environment customisation. This book then introduces BASH programming with examples of flow control, command switches, input/output, job control, and program debugging - allowing you to create your own executable programs by copying the book''s examples. Unix in easy steps has an easy-to-follow style that will appeal to: Users who are completely new to Unix-based operating systems. Casual users who wish to expand their knowledge of their computer system. Those who would like to learn programming skills by writing useful shell scripts. The student who is studying programming at school or college. Those seeking a career in computing and need a fundamental understanding of the BASH interpreter on Unix-based operating systems.
£10.44
Penguin Putnam Inc UNIX and Linux System Administration Handbook
Book SynopsisEvi Nemeth pioneered the discipline of UNIX system administration. She taught and mentored computer science students at the University of Colorado Boulder, was visiting faculty member at Dartmouth College and UC San Diego, and helped bring Internet technology to the developing world through her work with the Internet Society and the United Nations. Garth Snyder has worked at NeXT and Sun and holds a BS in Engineering from Swarthmore College and an MD and an MBA from the University of Rochester. Trent R. Hein (@trenthein) is a serial entrepreneur who is passionate about practical cybersecurity and automation. Outside of technology, he loves hiking, skiing, fly fishing, camping, bluegrass, dogs, and the Oxford comma. Trent holds a BS in Computer Science from the University of Colorado. Ben Whaley is the founder of WhaleTech, an independent consultancy. He was honored by Amazon as one of the first
£51.29
Pearson Education (US) Shell Programming in Unix Linux and OS X
Book SynopsisStephen Kochan is the author or co-author of several best-selling titles on Unix and the C language, including Programming in C, Programming in Objective-C, Topics in C Programming, and Exploring the Unix System. He is a former software consultant for AT&T Bell Laboratories, where he developed and taught classes on Unix and C programming. Patrick Wood is the CTO of the New Jersey location of Electronics for Imaging. He was a member of the technical staff at Bell Laboratories when he met Mr. Kochan in 1985. Together they founded Pipeline Associates, Inc., a Unix consulting firm, where he was vice president. They co-authored Exploring the Unix System, Unix System Security, Topics in C Programming, and Unix Shell Programming.Table of Contents1 A Quick Review of the Basics Some Basic Commands Displaying the Date and Time: The date Command Finding Out Who’s Logged In: The who Command Echoing Characters: The echo Command Working with Files Listing Files: The ls Command Displaying the Contents of a File: The cat Command Counting the Number of Words in a File: The wc Command Command Options Making a Copy of a File: The cp Command Renaming a File: The mv Command Removing a File: The rm Command Working with Directories The Home Directory and Pathnames Displaying Your Working Directory: The pwd Command Changing Directories: The cd Command More on the ls Command Creating a Directory: The mkdir Command Copying a File from One Directory to Another Moving Files Between Directories Linking Files: The ln Command Removing a Directory: The rmdir Command Filename Substitution The Asterisk Matching Single Characters Filename Nuances Spaces in Filenames Other Weird Characters Standard Input/Output, and I/O Redirection Standard Input and Standard Output Output Redirection Input Redirection Pipes Filters Standard Error More on Commands Typing More Than One Command on a Line Sending a Command to the Background The ps Command Command Summary 2 What Is the Shell? The Kernel and the Utilities The Login Shell Typing Commands to the Shell The Shell’s Responsibilities Program Execution Variable and Filename Substitution I/O Redirection Hooking up a Pipeline Environment Control Interpreted Programming Language 3 Tools of the Trade Regular Expressions Matching Any Character: The Period (.) Matching the Beginning of the Line: The Caret (^) Matching the End of the Line: The Dollar Sign $ Matching a Character Set: The [...] Construct Matching Zero or More Characters: The Asterisk (*) Matching a Precise Number of Subpatterns: \{...\} Saving Matched Characters: \(...\) cut The -d and -f Options paste The -d Option The -s Option sed The -n Option Deleting Lines tr The -s Option The -d Option grep Regular Expressions and grep The -v Option The -l Option The -n Option sort The -u Option The -r Option The -o Option The -n Option Skipping Fields The -t Option Other Options uniq The -d Option Other Options 4 And Away We Go Command Files Comments Variables Displaying the Values of Variables Undefined Variables Have the Null Value Filename Substitution and Variables The ${variable} Construct Built-in Integer Arithmetic 5 Can I Quote You on That? The Single Quote The Double Quote The Backslash Using the Backslash for Continuing Lines The Backslash Inside Double Quotes Command Substitution The Back Quote The $(...) Construct The expr Command 6 Passing Arguments The $# Variable The $* Variable A Program to Look Up Someone in the Phone Book A Program to Add Someone to the Phone Book A Program to Remove Someone from the Phone Book ${n} The shift Command 7 Decisions, Decisions Exit Status The $? Variable The test Command String Operators An Alternative Format for test Integer Operators File Operators The Logical Negation Operator ! The Logical AND Operator -a Parentheses The Logical OR Operator -o The else Construct The exit Command A Second Look at the rem Program The elif Construct Yet Another Version of rem The case Command Special Pattern-Matching Characters The -x Option for Debugging Programs Back to the case The Null Command : The && and || Constructs 8 'Round and 'Round She Goes The for Command The $@ Variable The for Without the List The while Command The until Command More on Loops Breaking Out of a Loop Skipping the Remaining Commands in a Loop Executing a Loop in the Background I/O Redirection on a Loop Piping Data into and out of a Loop Typing a Loop on One Line The getopts Command 9 Reading and Printing Data The read Command A Program to Copy Files Special echo Escape Characters An Improved Version of mycp A Final Version of mycp A Menu-Driven Phone Program The $$ Variable and Temporary Files The Exit Status from read The printf Command 10 Your Environment Local Variables Subshells Exported Variables export -p PS1 and PS2 HOME PATH Your Current Directory CDPATH More on Subshells The .Command The exec Command The (...) and { ...; } Constructs Another Way to Pass Variables to a Subshell Your .profile File The TERM Variable The TZ Variable 11 More on Parameters Parameter Substitution ${parameter} ${parameter:-value} ${parameter:=value} ${parameter:?value} ${parameter:+value} Pattern Matching Constructs ${#variable} The $0 Variable The set Command The -x Option set with No Arguments Using set to Reassign Positional Parameters The -- Option Other Options to set The IFS Variable The readonly Command The unset Command 12 Loose Ends The eval Command The wait Command The $! Variable The trap Command trap with No Arguments Ignoring Signals Resetting Traps More on I/O <&- and >&- In-line Input Redirection Shell Archives Functions Removing a Function Definition The return Command The type Command 13 Rolo Revisited Data Formatting Considerations rolo add lu display rem change listall Sample Output 14 Interactive and Nonstandard Shell Features Getting the Right Shell The ENV File Command-Line Editing Command History The vi Line Edit Mode Accessing Commands from Your History The emacs Line Edit Mode Accessing Commands from Your History Other Ways to Access Your History The history Command The fc Command The r Command Functions Local Variables Automatically Loaded Functions Integer Arithmetic Integer Types Numbers in Different Bases The alias Command Removing Aliases Arrays Job Control Stopped Jobs and the fg and bg Commands Miscellaneous Features Other Features of the cd Command Tilde Substitution Order of Search Compatibility Summary Appendixes A Shell Summary B For More Information
£31.82
Pearson Education (US) Ubuntu Linux Unleashed 2021 Edition
Book SynopsisMatthew Helmke has used Ubuntu since 2005. He has written about Linux for several magazines and websites, is a lead author of The Official Ubuntu Book, and has coauthored both A Practical Guide to Linux: Commands, Editors, and Shell Programming and The VMware Cookbook. In his day job, Matthew works for Gremlin (https://www.gremlin.com/) making the Internet more reliable. Matthew first used UNIX in 1987, while studying Lisp on a Vax at the university. He has run a business using only free and open source software, has consulted, and teaches as an adjunct professor for the University of Arizona. You can find out more about Matthew at https://www.linkedin.com/in/matthewhelmke/ or drop him a line with errata or suggestions at matthew@matthewhelmke.com.Table of ContentsIntroduction xxxi PART I: GETTING STARTED Chapter 1 Installing Ubuntu and Post-Installation Configuration 1 Before You Begin the Installation 1 Researching Your Hardware Specifications 2 Installation Options 2 32-Bit Versus 64-Bit Ubuntu 4 Planning Partition Strategies 5 The Boot Loader 5 Installing from DVD or USB Drive 6 Step-by-Step Installation 6 Installing 7 First Update 11 Shutting Down 11 Finding Programs and Files 12 Software Updater 12 The sudo Command 14 Configuring Software Repositories 15 System Settings 17 Detecting and Configuring a Printer 18 Configuring Power Management in Ubuntu 18 Setting the Time and Date 19 Configuring Wireless Networks 20 Troubleshooting Post-Installation Configuration Problems 21 Chapter 2 Background Information and Resources 23 What Is Linux? 23 Why Use Linux? 25 What Is Ubuntu? 27 Ubuntu for Business 27 Ubuntu in Your Home 28 Getting the Most from Linux and Ubuntu Documentation 28 Linux 29 Ubuntu 30 PART II: DESKTOP UBUNTU Chapter 3 Foundations of the Linux GUI 31 Foundations and the X Server 31 Basic X Concepts 32 Using X 33 Elements of the xorg conf File 34 Starting X 39 Using a Display Manager 39 Changing Window Managers 39 Chapter 4 Ubuntu Desktop Options 41 Desktop Environment 41 Using GNOME: A Primer 42 KDE and Kubuntu 45 Xfce and Xubuntu 46 LXDE and Lubuntu 47 MATE and Ubuntu MATE 48 Ubuntu Budgie 49 Ubuntu Kylin 50 Chapter 5 On the Internet 51 Getting Started with Firefox 52 Checking Out Google Chrome and Chromium 53 Chapter 6 Productivity Applications 55 Introducing LibreOffice 56 Other Useful Productivity Software 58 Working with PDFs 58 Writing Scripts 59 Working with XML and DocBook 59 Working with LaTeX 60 Creating Mind Maps 61 Productivity Applications Written for Microsoft Windows 61 Chapter 7 Multimedia Applications 63 Sound and Music 63 Sound Cards 64 Sound Formats 65 Listening to Music 65 Graphics Manipulation 66 The GNU Image Manipulation Program 66 Using Scanners in Ubuntu 67 Working with Graphics Formats 67 Capturing Screen Images 69 Other Graphics Manipulation Options 70 Using Digital Cameras with Ubuntu 70 Handheld Digital Cameras 70 Using Shotwell Photo Manager 71 Burning CDs and DVDs in Ubuntu 71 Creating CDs and DVDs with Brasero 71 Creating CDs from the Command Line 72 Creating DVDs from the Command Line 73 Viewing Video 75 Video Formats 75 Viewing Video in Linux 76 Recording and Editing Audio 76 Editing Video 77 Chapter 8 Games 79 Ubuntu Gaming 79 Installing Proprietary Video Drivers 80 Online Game Sources 81 Steam 81 GOG com 82 Humble 82 itch io 82 LGDB 82 Game Jolt 82 Installing Games from the Ubuntu Repositories 82 Warsow 82 Scorched 3D 83 Frozen Bubble 84 SuperTux 84 Battle for Wesnoth 85 Frets on Fire 85 FlightGear 87 Speed Dreams 87 Games for Kids 88 Commercial Games 88 Playing Windows Games 88 PART III: SYSTEM ADMINISTRATION Chapter 9 Managing Software 91 Ubuntu Software 91 Using Synaptic for Software Management 92 Staying Up to Date 94 Working on the Command Line 95 Day-to-Day APT Usage 95 Finding Software 98 Using apt-get Instead of apt 99 Compiling Software from Source 100 Compiling from a Tarball 100 Compiling from Source from the Ubuntu Repositories 101 Configuration Management 102 dotdee 102 Ubuntu Core 103 Using the Snappy Package Manager 103 Chapter 10 Command-Line Beginner's Class 105 What Is the Command Line? 106 Accessing the Command Line 107 Text-Based Console Login 107 Logging Out 108 Logging In and Out from a Remote Computer 108 User Accounts 109 Reading Documentation 111 Using Man Pages 111 Using apropros 112 Using whereis 112 Understanding the Linux File System Hierarchy 112 Essential Commands in /bin and /sbin 114 Configuration Files in /etc 114 User Directories: /home 115 Using the Contents of the /proc Directory to Interact with or Obtain Information from the Kernel 115 Working with Shared Data in the /usr Directory 117 Temporary File Storage in the /tmp Directory 117 Accessing Variable Data Files in the /var Directory 117 Navigating the Linux File System 117 Listing the Contents of a Directory with ls 118 Changing Directories with cd 120 Finding Your Current Directory with pwd 120 Working with Permissions 120 Assigning Permissions 121 Directory Permissions 122 Altering File Permissions with chmod 123 File Permissions with umask 124 File Permissions with chgrp 125 Changing File Permissions with chown 125 Understanding Set User ID, Set Group ID, and Sticky Bit Permissions 125 Setting Permissions with Access Control Lists 127 Working with Files 128 Creating a File with touch 128 Creating a Directory with mkdir 129 Deleting a Directory with rmdir 129 Deleting a File or Directory with rm 130 Moving or Renaming a File with mv 131 Copying a File with cp 131 Displaying the Contents of a File with cat 132 Displaying the Contents of a File with less 132 Using Wildcards and Regular Expressions 133 Working as Root 133 Understanding and Fixing sudo 134 Creating Users 136 Deleting Users 137 Shutting Down the System 137 Rebooting the System 138 Commonly Used Commands and Programs 139 Chapter 11 Command-Line Master Class, Part 1 141 Why Use the Command Line? 142 Using Basic Commands 143 Printing the Contents of a File with cat 144 Changing Directories with cd 145 Changing File Access Permissions with chmod 147 Copying Files with cp 147 Printing Disk Usage with du 148 Using echo 148 Finding Files by Searching with find 149 Searches for a String in Input with grep 151 Paging Through Output with less 152 Creating Links Between Files with ln 154 Finding Files from an Index with locate 156 Listing Files in the Current Directory with ls 156 Listing System Information with lsblk, lshw, lsmod, lspci, and neofetch 158 Reading Manual Pages with man 159 Making Directories with mkdir 160 Moving Files with mv 161 Renaming Files with rename 161 Deleting Files and Directories with rm 161 Sorting the Contents of a File with sort 162 Printing the Last Lines of a File with tail 163 Printing the Location of a Command with which 164 Downloading Files with wget 164 Chapter 12 Command-Line Master Class, Part 2 167 Redirecting Output and Input 167 stdin, stdout, stderr, and Redirection 169 Comparing Files 170 Finding Differences in Files with diff 170 Finding Similarities in Files with comm 170 Limiting Resource Use and Job Control 171 Listing Processes with ps 171 Listing Jobs with jobs 173 Running One or More Tasks in the Background 173 Moving Jobs to the Background or Foreground with bg and fg 174 Printing Resource Usage with top 175 Setting Process Priority with nice 177 Combining Commands 178 Pipes 178 Combining Commands with Boolean Operators 180 Running Separate Commands in Sequence 180 Process Substitution 181 Executing Jobs in Parallel 181 Using Environment Variables 182 Using Common Text Editors 185 Working with nano 186 Working with vi 187 Working with emacs 188 Working with sed and awk 189 Working with Compressed Files 191 Using Multiple Terminals with byobu192 Doing a Polite System Reset Using REISUB 194 Fixing an Ubuntu System That Will Not Boot 195 Checking BIOS 195 Checking GRUB 195 Reinstalling GRUB 195 Using Recovery Mode 196 Reinstalling Ubuntu 196 Tips and Tricks 196 Running the Previous Command 196 Running Any Previous Command 197 Running a Previous Command That Started with Specific Letters 197 Running the Same Thing You Just Ran with a Different First Word 197 Viewing Your History and More 197 Doing Two or More Things 198 Using Shortcuts 198 Confining a Script to a Directory 198 Using Coreutils 199 Reading the Contents of the Kernel Ring Buffer with dmesg 200 Chapter 13 Managing Users 201 User Accounts 201 The Super User/Root User 202 User IDs and Group IDs 204 File Permissions 204 Managing Groups 205 Group Listing 205 Group Management Tools 206 Managing Users 207 User Management Tools 208 Adding New Users 209 Monitoring User Activity on the System 211 Managing Passwords 212 System Password Policy 212 The Password File 212 Shadow Passwords 214 Managing Password Security for Users 216 Changing Passwords in a Batch 216 Granting System Administrator Privileges to Regular Users 217 Temporarily Changing User Identity with the su Command 217 Granting Root Privileges on Occasion: The sudo Command 219 Disk Quotas 222 Implementing Quotas 222 Manually Configuring Quotas 223 Related Ubuntu Commands 223 Chapter 14 Automating Tasks and Shell Scripting 225 What Is a Shell? 225 Scheduling Tasks 226 Using at and batch to Schedule Tasks for Later 227 Using cron to Run Jobs Repeatedly 229 Using rtcwake to Wake Your Computer from Sleep Automatically 231 Basic Shell Control 233 The Shell Command Line 233 Shell Pattern-Matching Support 235 Redirecting Input and Output 236 Piping Data 237 Background Processing 237 Writing and Executing a Shell Script 237 Running the New Shell Program 239 Storing Shell Scripts for System-wide Access 240 Interpreting Shell Scripts Through Specific Shells 240 Using Variables in Shell Scripts 242 Assigning a Value to a Variable 242 Accessing Variable Values 243 Positional Parameters 243 A Simple Example of a Positional Parameter 243 Using Positional Parameters to Access and Retrieve Variables from the Command Line 244 Using a Simple Script to Automate Tasks 244 Built-in Variables 246 Special Characters 247 Comparison of Expressions in pdksh and bash 250 Comparing Expressions with tcsh 255 The for Statement 259 The while Statement 261 The until Statement 263 The repeat Statement (tcsh) 263 The select Statement (pdksh) 264 The shift Statement 264 The if Statement 265 The expr Statement 266 The case Statement 267 The break and exit Statements 269 Using Functions in Shell Scripts 269 Chapter 15 The Boot Process 271 Running Services at Boot 271 Beginning the Boot Loading Process 272 Loading the Linux Kernel 274 Starting and Stopping Services with systemd 275 Controlling Services at Boot with Administrative Tools 278 Troubleshooting Runlevel Problems 278 Boot-Repair 278 Chapter 16 System-Monitoring Tools 281 Console-Based Monitoring 281 Using the kill Command to Control Processes 283 Using Priority Scheduling and Control 285 Displaying Free and Used Memory with free 286 Disk Space 286 Disk Quotas 287 Checking Log Files 287 Rotating Log Files 289 Graphical Process- and System-Management Tools 292 System Monitor 292 Conky 292 Other Graphical Process- and System-Monitoring Tools 297 KDE Process- and System-Monitoring Tools 298 Enterprise Server Monitoring 298 Chapter 17 Backing Up 301 Choosing a Backup Strategy 301 Why Data Loss Occurs 302 Assessing Your Backup Needs and Resources 303 Evaluating Backup Strategies 304 Making the Choice 308 Choosing Backup Hardware and Media 308 External Hard Drive 308 Network Storage 308 Tape Drive Backups 309 Cloud Storage 309 Using Backup Software 309 tar: The Most Basic Backup Tool 310 The GNOME File Roller 312 The KDE ark Archiving Tool 312 Déjà Dup 313 Back In Time 314 Unison 315 Amanda 315 Alternative Backup Software 316 Copying Files 316 Copying Files Using tar 317 Compressing, Encrypting, and Sending tar Streams 318 Copying Files Using cp 318 Using rsync 319 Version Control for Configuration Files 320 System Rescue 323 The Ubuntu Rescue Disc 323 Restoring the GRUB2 Boot Loader 323 Saving Files from a Nonbooting Hard Drive 324 Chapter 18 Networking 325 Laying the Foundation: The localhost Interface 326 Checking for the Availability of the Loopback Interface 326 Configuring the Loopback Interface Manually 327 Checking Connections with ping, traceroute, and mtr 328 Networking with TCP/IP 330 TCP/IP Addressing 331 Using IP Masquerading in Ubuntu 332 Ports 333 IPv6 Basics 334 Network Organization 337 Subnetting 337 Subnet Masks 337 Broadcast, Unicast, and Multicast Addressing 338 Hardware Devices for Networking 338 Network Interface Cards 338 Network Cable 340 Hubs and Switches 342 Routers and Bridges 343 Initializing New Network Hardware 343 Using Network Configuration Tools 345 Command-Line Network Interface Configuration 346 Network Configuration Files 350 Using Graphical Configuration Tools 355 Dynamic Host Configuration Protocol 355 How DHCP Works 356 Activating DHCP at Installation and Boot Time 357 DHCP Software Installation and Configuration 358 Using DHCP to Configure Network Hosts 359 Other Uses for DHCP 361 Wireless Networking 361 Support for Wireless Networking in Ubuntu 361 Choosing from Among Available Wireless Protocols 363 Beyond the Network and onto the Internet 363 Common Configuration Information 364 Configuring Digital Subscriber Line Access 365 Understanding PPP over Ethernet 366 Configuring a PPPoE Connection Manually 366 Configuring Dial-up Internet Access 367 Troubleshooting Connection Problems 368 Chapter 19 Remote Access with SSH and VNC 371 Setting Up an SSH Server 371 SSH Tools 372 Using scp to Copy Individual Files Between Machines 372 Using sftp to Copy Many Files Between Machines 373 Using ssh-keygen to Enable Key-Based Logins 373 Virtual Network Computing 375 Guacamole 377 Chapter 20 Securing Your Machines 379 Understanding Computer Attacks 379 Assessing Your Vulnerability 381 Protecting Your Machine 382 Securing a Wireless Network 382 Passwords and Physical Security 383 Configuring and Using Tripwire 384 Securing Devices 385 Viruses 385 Configuring Your Firewall 386 AppArmor 388 Forming a Disaster Recovery Plan 390 Chapter 21 Performance Tuning 393 Storage Disk 394 Linux File Systems 394 The hdparm Command 395 File System Tuning 396 The tune2fs Command 396 The e2fsck Command 397 The badblocks Command 397 Disabling File Access Time 397 Kernel 398 Tuned 399 Chapter 22 Kernel and Module Management 401 The Linux Kernel 402 The Linux Source Tree 403 Types of Kernels 405 Managing Modules 406 When to Recompile 408 Kernel Versions 409 Obtaining the Kernel Sources 409 Patching the Kernel 410 Compiling the Kernel 412 Using xconfig to Configure the Kernel 414 Creating an Initial RAM Disk Image 418 When Something Goes Wrong 418 Errors During Compile 418 Runtime Errors, Boot Loader Problems, and Kernel Oops 419 PART IV: UBUNTU AS A SERVER Chapter 23 Sharing Files and Printers 421 Using Network File System 422 Installing and Starting or Stopping NFS 422 NFS Server Configuration 422 NFS Client Configuration 423 Putting Samba to Work 424 Manually Configuring Samba with /etc/samba/smb conf 426 Testing Samba with the testparm Command 429 Starting, Stopping, and Restarting the smbd Daemon 429 Mounting Samba Shares 430 Network and Remote Printing with Ubuntu 431 Creating Network Printers 431 Using the CUPS GUI 433 Avoiding Printer Support Problems 434 Chapter 24 Common Web Server Stacks 437 LAMP 437 LEMP 439 MEAN 440 Chapter 25 Apache Web Server Management 443 About the Apache Web Server 443 Installing the Apache Server 444 Starting and Stopping Apache 444 Runtime Server Configuration Settings 446 Runtime Configuration Directives 446 Editing apache2 conf 447 Apache Multiprocessing Modules 449 Using htaccess Configuration Files 450 File System Authentication and Access Control 452 Restricting Access with Require 452 Authentication 453 Final Words on Access Control 455 Apache Modules 455 mod_access 456 mod_alias 456 mod_asis 456 mod_auth 457 mod_auth_anon 457 mod_auth_dbm 457 mod_auth_digest 457 mod_autoindex4 58 mod_cgi 458 mod_dir and mod_env 458 mod_expires 458 mod_headers 458 mod_include 459 mod_info and mod_log_config 459 mod_mime and mod_mime_magic 459 mod_negotiation 459 mod_rewrite 459 mod_setenvif 460 mod_speling 460 mod_status 460 mod_ssl 460 mod_unique_id 460
£34.42
Pearson Education (US) Practice of Cloud System Administration The
Book SynopsisThomas A. Limoncelli is an internationally recognized author, speaker, and system administrator with more than twenty years of experience at companies like Google, Bell Labs, and StackExchange.com. Strata R. Chalup has more than twenty-five years of experience in Silicon Valley, focusing on IT strategy, best-practices, and scalable infrastructures at firms that include Apple, Sun, Cisco, McAfee, and Palm. Christina J. Hogan has more than twenty years of experience in system administration and network engineering, from Silicon Valley to Italy and Switzerland. She has a master's degree in computer science, a doctorate in aeronautical engineering, and has been part of a Formula 1 racing team.Table of Contents Part I: Design: Building It Chapter 1: Designing in a Distributed World Chapter 2: Designing for Operations Chapter 3: Selecting a Service Platform Chapter 4: Application Architectures Chapter 5: Design Patterns for Scaling Chapter 6: Design Patterns for Resiliency Part II: Operations: Running It Chapter 7: Operations in a Distributed World Chapter 8: DevOps Culture Chapter 9: Service Delivery: The Build Phase Chapter 10: Service Delivery: The Deployment Phase Chapter 11: Upgrading Live Services Chapter 12: Automation Chapter 13: Design Documents Chapter 14: Oncall Chapter 15: Disaster Preparedness Chapter 16: Monitoring Fundamentals Chapter 17: Monitoring Architecture and Practice Chapter 18: Capacity Planning Chapter 19: Creating KPIs Chapter 20: Operational Excellence
£38.47
APress MicroPython for the Internet of Things A
Book SynopsisTagline: Breaking the C-like language barrier to make device programming easy and fastTable of Contents1. What Is the Internet of Things?2. Introducing MicroPython3. MicroPython Hardware4. How to Program in MicroPython5. MicroPython Libraries6. Low-Level Hardware Support7. Electronics for Beginners8. Project 1: Hello, World! MicroPython Style9. Project 2: Stoplight Simulator10. Project 3: Plant Monitoring11. Project 4: Using Weather Sensors12. Where to Go from Here13. Appendix
£52.24
APress Modeling and Animation Using Blender
Book SynopsisDiscover the 3D-modeling and animation power ofBlender 3D. This book starts with a brief introduction to Blender 3D including installation and the user interface. The following two chapters then introduce you to the upgraded tools in Blender 2.80 for 3D modeling, texturing, shading, and animation. The last chapter discusses the Blender game engine and all its core features. Along the way you'll see why Blender 3D has proved its competency in UV unwrapping, texturing, raster graphic editing, rigging, sculpting, animating, motion graphics, and video editing through the years. Modeling and Animation Using Blendergives a thorough tour of Blender Eevee, covering its new features and how to make best use of them. After reading this book you will have the confidence to choose Blender for your next project. What You Will LearnMaster the features of Blender EeveeWork with modeling, animation, and much more using theupdated softwareUnderstand important concepts such as physics and particlesWTable of ContentsChapter 1: The Tour! Chapter 2: Blending with Blender: Getting Started Chapter 3: Blending with Blender: Modeling Workspace Chapter 4: Blending with Blender: Shading Workspace Chapter 5: Let’s Animate Chapter 6: The Future of Game Engine
£44.99
APress Beginning Rust
Book SynopsisLearn to program with Rust 2021 Edition, in an easy, step-by-step manner on Unix, the Linux shell, macOS, and the Windows command line. As you read this book, you''ll build on the knowledge you gained in previous chapters and see what Rust has to offer. Beginning Rust starts with the basics of Rust, including how to name objects, control execution flow, and handle primitive types. You''ll see how to do arithmetic, allocate memory, use iterators, and handle input/output. Once you have mastered these core skills, you''ll work on handling errors and using the object-oriented features of Rust to build robust Rust applications in no time.Only a basic knowledge of programming in C or C++ and familiarity with a command console are required. After reading this book, you''ll be ready to build simple Rust applications.What You Will Learn Get started programming with Rust Understand heterogeneous data structures aTable of Contents1. Introduction2. Printing on Terminal3. Doing Arithmatic4. Naming Objects5. Controlling Execution Flow6. Using Data Sequences7. Using Primitive Types8. Enumerating Cases9. Using Heterogeneous Data Structures10. Defining Functions11. Defining Generic Functions and Structs12. Allocating Memory13. Data Implementation14. Defining Closures15. Using Changeable Strings16. Ranges and Slices17. Using Iterators18. Input/Output and Error Handling19. Using Traits20. Object-Oriented Programming21. Standard Library Collections22. Drops, Moves, and Copies23. Borrowing and Lifetimes24. More about Lifetimes
£49.49
APress Practical Haskell
Book SynopsisGet a practical, hands-on introduction to the Haskell language, its libraries and environment, and to the functional programming paradigm that is fast growing in importance in the software industry. This updated edition includes more modern treatment of Haskell''s web framework and APIs.This book contains excellent coverage of the Haskell ecosystem and supporting tools, including Cabal and Stack for managing projects, HUnit and QuickCheck for software testing, WAI and Elm to develop the back end and front end of web applications, Persistent and Esqueleto for database access, and parallel and distributed programming libraries.You''ll see how functional programming is gathering momentum, allowing you to express yourself in a more concise way, reducing boilerplate, and increasing the safety of your code. Haskell is an elegant and noise-free pure functional language with a long history, having a huge number of library contributors and an active community. Table of ContentsPart I: First Steps 1. Going Functional 2. Declaring the Data Model 3. Increasing Code Reuse 4. Using Containers and Type Classes 5. Laziness and Infinite Structures Part II: Data Mining 6. Knowing Your Clients Using Monads 7. More Monads: Now for Recommendations 8. Working in Several Cores Part III: Resource Handling 9. Dealing with Files: IO and Conduit 10. Building and Parsing Text 11. Safe Database Access 12. Web Applications Part IV: Domain Specific Languages 13. Strong Types 14. Interpreting Offers with Attributes Part V: Engineering the Store 15. Documenting, Testing, and Verifying 16. Architecting Your Application 17. Looking Further
£41.24
APress Introduction to Infrastructure as Code
Book SynopsisGet inspired to explore the depths of the DevOps field. In today''s rapidly transforming world, Infrastructure as Code (IaC) has emerged as an effective approach to maintain, scale, and deploy software systems. This book offers a mixture of foundational IaC concepts and practical examples to give you hands-on experience.You will first gain an understanding of DevOps culture as well as how to adapt to IaC. Introduction to Infrastructure as Code begins by reviewing the innovative features that DevOps in general, and IaC in particular, have to offer for adoption and growth for different verticals. With this solid base established, you will then learn the importance, processes, and outcome of building infrastructure solutions.Authors Sneh Pandya and Riya Guha Thakurta then provide hands-on examples utilizing IaC platforms, open source tools, and essential considerations such as security, scalability, and deployments. Each chapter focuses on one vertical (i.e.Table of ContentsPART 1: CONCEPTSChapter 1: Introduction to Infrastructure as CodeChapter Goal: Understand DevOps culture and fundamentals of Infrastructure as CodeChapter 2: Patterns and Principles of IaCChapter Goal: Learn about every layer of Infrastructure as Code stackChapter 3: Infrastructure ManagementChapter Goal: Explains management of infrastructure in a holistic mannerChapter 4: Production Complexity ManagementChapter Goal: Learn how to maintain, deploy, and scale infrastructure with respect to various environmentsChapter 5: Business SolutionsChapter Goal: Helps you familiarize and understand business aspects and future scope of IaCPART 2: HANDS-ON EXPERIENCEChapter 6: Hands-on IaC with Hashicorp TerraformChapter Goal: Helps you gain hands-on experience with popular open-source IaC platform - Hashicorp's TerraformChapter 7: Hands-on IaC with PuppetChapter Goal: Take you through with another popular open-source IaC tool - PuppetChapter 8: Hands-on IoC with ChefChapter Goal: Helps you with hands-on experience with another popular open-source IaC tool - Chef
£26.99
APress Building Computer Vision Applications Using
Book SynopsisComputer vision is constantly evolving, and this book has been updated to reflect new topics that have emerged in the field since the first edition's publication. All code used in the book has also been fully updated. This second edition features new material covering image manipulation practices, image segmentation, feature extraction, and object identification using real-life scenarios to help reinforce each concept. These topics are essential for building advanced computer vision applications, and you'll gain a thorough understanding of them. The book's source code has been updated from TensorFlow 1.x to 2.x, and includes step-by-step examples using both OpenCV and TensorFlow with Python. Upon completing this book, you'll have the knowledge and skills to build your own computer vision applications using neural networksWhat You Will LearnUnderstand image processing, manipulation techniques, and feature extractionmethodsWork with convolutional neural networks (CNN), single-shot deteTable of Contents
£41.24
The Pragmatic Programmers Kotlin and Android Develoment featuring Jetpack:
Book SynopsisStart building native Android apps the modern way in Kotlin with Jetpack's expansive set of tools, libraries, and best practices. Learn how to create efficient, resilient views with Fragments and share data between the views with ViewModels. Use Room to persist valuable data quickly, and avoid NullPointerExceptions and Java's verbose expressions with Kotlin. You can even handle asynchronous web service calls elegantly with Kotlin coroutines. Achieve all of this and much more while building two full-featured apps, following detailed, step-by-step instructions. With Kotlin and Jetpack, Android development is now smoother and more enjoyable than ever before. Dive right in by developing two complete Android apps. With the first app, Penny Drop, you create a full game complete with random die rolls, customizable rules, and AI opponents. Build lightweight Fragment views with data binding, quickly and safely update data with ViewModel classes, and handle all app navigation in a single location. Use Kotlin with Android-specific Kotlin extensions to efficiently write null-safe code without all the normal boilerplate required for pre-Jetpack + Kotlin apps. Persist and retrieve data as full objects with the Room library, then display that data with ViewModels and list records in a RecyclerView. Next, you create the official app for the Android Baseball League. It's a fake league but a real app, where you use what you learn in Penny Drop and build up from there. Navigate all over the app via a Navigation Drawer, including specific locations via Android App Links. Handle asynchronous and web service calls with Kotlin Coroutines, display that data smoothly with the Paging library, and send notifications to a user's phone from your app. Come build Android apps the modern way with Kotlin and Jetpack! What You Need: You'll need the Android SDK, a text editor, and either a real Android device or emulator for testing. While not strictly required, it's assumed you're using Android Studio, which comes with the Android SDK and simplifies creating an emulator. Also, a few examples require JDK 1.8 or later, though all of these pieces can be completed in other ways when using JDK 1.6.
£37.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Developer Experience Unleashed: The Art of Crafting Efficient Developer Environments
Book SynopsisExplore the intricate world of developer experience (DX) and its impact on the software development process. This book delves into the critical components of DX, such as documentation, tooling, API design, developer support, performance, and reliability, providing actionable insights and strategies to help organizations create development environments that foster productivity, collaboration, and satisfaction among developers.The main topics you’ll review include the evolution of software development methodologies, the intersection of user experience (UX) and DX, and an in-depth exploration of the critical components of DX. You’ll also look at practical approaches to improving DX, real-world examples of organizations that have successfully transformed their developer experience, and a discussion of DX's future trends and challenges. These topics are crucial as the software development landscape has become increasingly complex and competitive. Developer experience is no longer a luxury but a necessity for organizations seeking to attract top talent, drive innovation, and stay ahead in the industry. As the line between UX and DX continues to blur, it is imperative to understand how these two aspects are intertwined and how they can synergistically contribute to the success of software projects. Moreover, these topics are particularly relevant now, as remote work and distributed teams become more commonplace, making it even more critical for organizations to provide developers with the resources, tools, and support they need to be successful. Developer Experience Unleashed will inspire you to recognize the critical role of DX in the software development process and to adopt best practices that foster a synergistic environment where developers and users can thrive together. What You’ll Learn The evolution of software development methodologies Key DX concepts and components Strategies for Improving DX The interconnected nature between DX and user experience Current trends and challenges facing teams and businesses Future trends and opportunities in DX Who This Book Is For Software development professionals, team leads, managers, and executives interested in understanding and improving the developer experience within their organizations.Table of ContentsDeveloper Experience Unleashed CHAPTER 1: INTRODUCTION TO DEVELOPER EXPERIENCECHAPTER 2: THE ESSENCE OF DEVELOPER EXPERIENCECHAPTER 3: DEVELOPER EXPERIENCE AS A COMPETITIVE ADVANTAGECHAPTER 4: CRAFTING EXCEPTIONAL DOCUMENTATIONCHAPTER 5: STREAMLINING DEVELOPER TOOLINGCHAPTER 6: DESIGNING DEVELOPER-CENTRIC APISCHAPTER 7: PROVIDING STELLAR DEVELOPER SUPPORTCHAPTER 8: ENSURING PERFORMANCE AND RELIABILITY CHAPTER 9: MEASURING DEVELOPER EXPERIENCECHAPTER 10: REAL-WORLD IMPROVEMENT STRATEGIESCHAPTER 11: DEVELOPER EXPERIENCE CASE STUDIESCHAPTER 12: THE FUTURE OF DEVELOPER EXPERIENCECHAPTER 13: INTERVIEWS AND EXPERT INSIGHTS (unconfirmed)CHAPTER 14: CONCLUSION (unconfirmed)APPENDIX A: RESOURCES AND FURTHER READINGAPPENDIX B: TOOLS AND TECHNOLOGIES RECOMMENDATIONSAPPENDIX C: TEMPLATES AND CHECKLISTSAPPENDIX D: FREQUENTLY ASKED QUESTIONS (FAQS)
£41.24
Wiley TCPIP Architecture Design and Implementation in Linux
Book SynopsisProvides thorough knowledge of Linux TCP/IP stack and kernel framework for its network stack Blends concepts and implementation under one cover. Corporations have widely accepted Linux as the base OS for their networking products Authors gradually explain the different aspects of socket programming Includes nearly 250 illustrations.Table of ContentsPreface. Acknowledgments. 1. INTRODUCTION. 1.1 Overview of TCP/IP Stack. 1.2 Source Code Organization for Linux 2.4.20. 1.3 TCP/IP Stack and Kernel Control Paths. 1.4 Linux Kernel Until Version 2.4 Is Non-preemptible. 1.5 Linux Process and Thread. 1.6 Kernel Synchronization Mechanism. 1.7 Application Interfaces for TCP/IP Programming. 1.8 Shutdown. 1.9 I/O. 1.10 TCP State. 1.11 Summary. 2. PROTOCOL FUNDAMENTALS. 2.1 TCP. 2.2 TCP Options (RFC 1323). 2.3 TCP Data Flow. 2.4 Delayed Acknowledgment. 2.5 Nagle’s Algorithm (RFC 896). 2.6 TCP Sliding Window Protocol. 2.7 Maximizing TCP Throughput. 2.8 TCP Timers. 2.9 TCP Congestion Control. 2.10 TCP Performance and Reliability. 2.11 IP (Internet Protocol). 2.12 Routing. 2.13 netstat. 2.14 traceroute. 2.15 ICMP. 2.16 ping. 2.17 ARP/RARP. 2.18 Summary. 3. KERNEL IMPLEMENTATION OF SOCKETS. 3.1 Socket Layer. 3.2 VFS and Socket. 3.3 Protocol Socket Registration. 3.4 struct inet_protosw. 3.5 Socket Organization in the Kernel. 3.6 Socket. 3.7 inet_create. 3.8 Flow Diagram for Socket Call. 3.9 Summary. 4. KERNEL IMPLEMENTATION OF TCP CONNECTION SETUP. 4.1 Connection Setup. 4.2 Bind. 4.3 Listen. 4.4 Connection Request Handling by Kernel. 4.5 Accept. 4.6 Client Side Setup. 4.7 Summary. 5. sk_buff AND PROTOCOL HEADERS. 5.1 struct sk_buff. 5.2 struct skb_shared_info. 5.3 sk_buff and DMA—SKB_FRAG_STRUCT. 5.4 Routines Operating on sk_buff. 5.5 sk_buff Builds Protocol Headers as It Traverses Down the Protocol Layers. 5.6 sk_buff Extracts Protocol Headers as It Traverses Up the Protocol Layers When a Packet Arrives. 5.7 Summary. 6. MOVEMENT OF sk_buff ACROSS PROTOCOL LAYERS. 6.1 Packet Traversing Down the TCP/IP Stack. 6.2 Routed Packet Ready for Transmission. 6.3 Kernel Flow for a Packet Moving Down the Stack. 6.4 Packet Traversing Up the TCP/IP Stack. 6.5 Kernel Flow for a Packet Moving Up the Stack. 6.6 Summary. 7. TCP SEND. 7.1 TCP Segmentation Unit for Sending Data. 7.2 Segmentation with Scatter–Gather Technique. 7.3 Sending OOB Data. 7.4 Flow for TCP Segmentation Unit and Send Process. 7.5 Functional Level Flow for Segmentation and Send Mechanism. 7.6 Summary. 8. TCP RECEIVE. 8.1 Queuing Mechanism. 8.2 Processing of TCP Data from the Receive Queue. 8.3 TCP Urgent Byte Processing. 8.4 DATA Flow Diagram for Receiving Data over the TCP Socket. 8.5 Summary. 9. TCP MEMORY MANAGEMENT. 9.1 Transmit Side TCP Memory Management. 9.2 Receive Side TCP Memory Management. 9.3 Freeing of Memory Allocated to a Receive Buffer. 9.4 System-Wide Control Parameters Are Worth Noticing When It Comes to TCP Memory Management. 9.5 Summary. 10. TCP TIMERS. 10.2 TCP Retransmit Timer. 10.3 Zero Window Probe Timer. 10.4 Delay ACK Timer. 10.5 Keepalive Timer. 10.6 SYN-ACK Timer. 10.7 TIME_WAIT Timer. 10.7.8 __tcp_tw_hashdance(). 10.8 Summary. 11. TCP CORE PROCESSING. 11.1 TCP Incoming Segment Processing. 11.2 Fast Path Processing. 11.3 Slow Path Processing. 11.4 Processing of Incoming ACK. 11.5 Processing of SACK blocks. 11.6 Reordering Length. 11.7 Processing TCP Urgent Pointer. 11.8 Processing Data Segments in Slow Path. 11.9 Overview of Core TCP Processing. 11.10 Summary. 12. TCP STATE PROCESSING. 12.1 Overview of State Processing. 12.2 TCP States. 12.3 Processing of Duplicate/Partial ACKs in Recovery State. 12.4 Processing of Duplicate/Partial ACKs in Loss State. 12.5 Default Processing of TCP States. 12.6 Processing of TCP Non-open States when ACKed Beyond tp → high_seq. 12.7 Summary. 13. NETLINK SOCKETS. 13.1 Introduction to Netlink Sockets. 13.2 Netlink Socket Registration and Initialization at Boot Time. 13.3 How Is the Kernel Netlink Socket Created? 13.4 How Is the User Netlink Socket Created? 13.5 Netlink Data Structures. 13.6 Other Important Data Strutures. 13.7 Netlink Packet Format. 13.8 Netlink Socket Example—tc Command for Adding a qdisc. 13.9 Flow Diagram for tc Command in Kernel Space. 13.10 Summary. 14. IP ROUTING. 14.1 Routing. 14.2 Policy-Based Routing. 14.3 Multipathing. 14.4 Record Route Options (RFC 791) and Processing by Linux Stack. 14.5 Source Routing. 14.6 Linux Kernel Implementation of Routing Table and Caches. 14.7 Routing Cache Implementation Overview. 14.8 Managing Routing Cache. 14.9 Implementation Overview of Forwarding Information Base (FIB). 14.10 Adding New Entry in Routing Table Using ip Command (RT Netlink Interface). 14.11 What Happens When the ip Command Is Run with a Rule Option for Adding an Entry in the Routing Table? 14.12 FIB Traversal Flow Diagram. 14.13 Summary. 15. IP QUALITY OF SERVICE IN LINUX (IP QoS). 15.1 Introduction. 15.2 Basic Components of Linux Traffi c Control. 15.3 Linux Implementation of pfi fo_fast qdisc. 15.4 Queueing Discipline Data Structure. 15.5 tc User Program and Kernel Implementation Details. 15.6 The tc Commands for Creating Class Hierarchy for CBQ. 15.7 Filters. 15.8 u32 Filter Implementation. 15.9 Route Filter Implementation. 15.10 Enqueue. 15.11 Overview of Linux Implementation of CBQ. 15.12 cbq_dequeue(). 15.13 Summary. 16. IP FILTER AND FIREWALL. 16.1 Netfi lter Hook Framework. 16.2 Netfi lter Hooks on IP Stack. 16.3 Overview of Netfi lter Hooks on Linux TCP-IP Stack. 16.4 Registration of Netfi lter Hooks. 16.5 Processing of Netfi lter Hooks. 16.6 Compatibility Framework. 16.7 Ip Chains. 16.8 How Is the Packet Filtered with Ipchains. 16.9 Iptables. 16.10 Iptables Filter Rules and Target Organization. 16.11 Organization of Filter Rules and Target for Iptables. 16.12 Filtering Packets with Iptables. 16.13 Summary. 17. NET SOFTIRQ. 17.1 Why Net SoftIRQs, and How Do We Raise Them? 17.2 How Are SoftIRQs Are Processed, and When? 17.3 Registration of SoftIRQs. 17.4 Packet Reception and Delayed Processing by Rx SoftIRQ. 17.5 Processing of Net Rx SoftIRQ. 17.6 Packet Transmission and SoftIRQ. 17.7 Summary. 18. TRANSMISSION AND RECEPTION OF PACKETS. 18.1 DMA Ring Buffers for Transmission and Reception of Packets. 18.2 Packet Reception Process. 18.3 Packet Transmission Process. 18.4 Implementation of Reception and Transmission of Packets. 18.5 Rx Interrupt for Reception of Packets. 18.6 Transmission of Packets. 18.7 Summary. 19. lkcd AND DEBUGGING TCP/IP STACK. 19.1 lkcd Source and Patches. 19.2 Touching the Socket. 19.3 Looking into the Receive Socket Buffer. 19.3.1 Route Information in sk_buff. 19.4 Peep into Send Socket Buffer. 19.5 TCP Segmentation Unit. 19.6 Send Congestion Window and ssthresh. 19.7 Retransmissions and Route. 19.8 Peeping into Connection Queues and SYN Queues. 19.9 Routing and IP Qos lcrash Steps. 19.10 CBQ (Class-Based) Queueing Discipline lcrash Steps. 19.11 U32 Filters. 19.12 Route Filters. 19.13 FIB Table lcrash Output for Setting Up the Realm Using ip Command. 19.14 lcrash Output for Setting Up Route Filter Using tc Command. 19.15 Netlink Data Structure. 19.16 Summary. 20. NEXT EDITION. Bibliography. Index.
£105.26
John Wiley & Sons Inc C and UNIX
Book SynopsisSome things just naturally fit together. Such is the case for C and UNIX: these software tools have been developed in tandem -- C is an excellent programming language, UNIX is an excellent operating system. They work well together and many software developers choose to take advantage of the symbiotic relationship between C and UNIX. In this book the essential features of C and UNIX are introduced, and readers are shown how to write more powerful and more efficient programs. The book is divided into four parts: Basic Program Syntax and Control, Program Design and Control of Input/Output, Data Structure Design and Management, and Advanced Features of C and UNIX.Table of ContentsPrograms. Flow of Control. Functions. Input/Output. Program Design. Arrays. Strings. Structures. Dynamic Memory Management. Data Structure Design. Specialized Tools. Advanced Programming Topics. Advanced Design Methods. Appendices. Index.
£140.35
IEEE Computer Society Press,U.S. TclTk for Programmers
Book Synopsis
£84.56
John Wiley & Sons Inc Ubuntu Linux Toolbox 1000 Commands for Power
Book SynopsisThis updated bestseller from Linux guru Chris Negus is packed with an array of new and revised material As a longstanding bestseller, Ubuntu Linux Toolbox has taught you how to get the most out Ubuntu, the world''s most popular Linux distribution. With this anticipated new edition, Christopher Negus returns with a host of new and expanded coverage on tools for managing file systems, ways to connect to networks, techniques for securing Ubuntu systems, and a look at the latest Long Term Support (LTS) release of Ubuntu, all aimed at getting you up and running with Ubuntu Linux quickly. Covers installation, configuration, shell primer, the desktop, administrations, servers, and security Delves into coverage of popular applications for the web, productivity suites, and e-mail Highlights setting up a server (Apache, Samba, CUPS) Boasts a handy trim size so that you can take it with you on the go Ubuntu Linux Toolbox,Table of Contents Introduction xix Chapter 1: Starting with Ubuntu Linux 1 Ubuntu, Debian, and Linux 2 Understanding Ubuntu Releases 3 Ubuntu Compared to Other Linux Distributions 3 Finding Ubuntu Resources 5 Ubuntu Software 7 Focusing on Linux Commands 7 Finding Commands 9 Reference Information in Ubuntu 11 Using help Messages 12 Using man Pages 12 Using info Documents 15 Summary 15 Chapter 2: Installing Ubuntu and Adding Software 17 Obtaining and Installing Ubuntu 17 Preparing to Install 18 Choosing Installation Options 19 Answering Installation Questions 19 Working with Debian Software Packages 20 Working with Software Packages 22 Enabling More Repositories for apt 23 Adding Software Collections with tasksel 24 Managing Software with APT 25 Finding Packages with APT 27 Installing Packages with APT 27 Upgrading Packages with APT 28 Upgrading a Single Package with APT 28 Removing Packages with APT 29 Cleaning Up Packages with APT 29 Downloading Packages with APT 30 Managing Software with dpkg 30 Installing a Package with dpkg 32 Removing a Package with dpkg 32 Extracting Files from a .deb File with dpkg 32 Querying Information about .deb Packages 33 Managing Software with aptitude 35 Updating and Upgrading Packages with aptitude 37 Querying Information about Packages with aptitude 37 Installing Packages with aptitude 38 Removing Packages with aptitude 38 Cleaning Up Packages with aptitude 39 Useful Combinations of Options with aptitude 39 Verifying Installed Packages with debsums 41 Building deb Packages 44 Summary 47 Chapter 3: Using the Shell 49 Terminal Windows and Shell Access 49 Using Terminal Windows 49 Using Virtual Consoles 51 Using the Shell 52 Using Bash History 53 Using Command Line Completion 54 Redirecting stdin and stdout 54 Using alias 57 Watching Commands 58 Watching Files 58 Acquiring Super User Power 58 Delegating Power with sudo 59 Using the su Command 61 Using Environment Variables 62 Creating Simple Shell Scripts 64 Editing and Running a Script 64 Adding Content to Your Script 65 Summary 68 Chapter 4: Working with Files 69 Understanding File Types 69 Using Regular Files 69 Using Directories 71 Using Symbolic and Hard Links 71 Using Device Files 72 Using Named Pipes and Sockets 73 Setting File/Directory Permissions 73 Changing Permissions with chmod 74 Setting the umask 76 Changing Ownership 76 Traversing the Filesystem 77 Copying Files 79 Changing File Attributes 80 Searching for Files 82 Finding Files with locate 82 Locating Files with find 83 Using Other Commands to Find Files 85 Finding Out More about Files 86 Listing Files 86 Verifying Files 86 Summary 88 Chapter 5: Manipulating Text 89 Matching Text with Regular Expressions 89 Editing Text Files 90 Using the JOE Editor 91 Using the Pico and nano Editors 92 Graphical Text Editors 94 Listing, Sorting, and Changing Text 94 Listing Text Files 94 Paging through Text 95 Paginating Text Files with pr 96 Searching for Text with grep 97 Replacing Text with sed 99 Translating or Removing Characters with tr 101 Checking Differences between Two Files with diff 101 Using awk and cut to Process Columns 104 Converting Text Files to Different Formats 105 Summary 105 Chapter 6: Playing with Multimedia 107 Working with Audio 107 Playing Music 107 Adjusting Audio Levels 109 Ripping CD Music 110 Encoding Music 111 Streaming Music 114 Converting Audio Files 116 Transforming Images 117 Getting Information about Images 117 Converting Images 118 Converting Images in Batches 119 Playing with Video 121 Playing Video Files 121 Summary 123 Chapter 7: Administering Filesystems 125 Understanding Filesystem Basics 125 Creating and Managing Filesystems 127 Partitioning Hard Disks 127 Working with Filesystem Labels 131 Formatting a Filesystem 132 Viewing and Changing Filesystem Attributes 133 Creating and Using Swap Partitions 135 Mounting and Unmounting Filesystems 136 Mounting Filesystems from the fstab File 136 Mounting Filesystems with the mount Command 138 Unmounting Filesystems with umount 140 Checking Filesystems 141 Creating Encrypted Filesystems 143 Checking RAID Disks 146 Finding Out about Filesystem Use 147 Logical Volume Manager 149 Creating LVM Volumes 149 Using LVM Volumes 151 Growing the LVM Volume 152 Shrinking an LVM Volume 153 Removing LVM Logical Volumes and Groups 153 Summary 154 Chapter 8: Backups and Removable Media 155 Backing Up Data to Compressed Archives 155 Creating Backup Archives with tar 155 Using Compression Tools 157 Listing, Joining, and Adding Files to tar Archives 160 Deleting Files from tar Archives 160 Backing Up over Networks 161 Backing Up tar Archives over ssh 161 Backing Up Files with rsync 162 Backing Up with unison 164 Backing Up to Removable Media 165 Creating Backup Images with mkisofs 165 Burning Backup Images with cdrecord 168 Making and Burning DVDs with growisofs 170 Summary 170 Chapter 9: Checking and Managing Running Processes 171 Listing Active Processes 172 Viewing Active Processes with ps 172 Watching Active Processes with top 177 Finding and Controlling Processes 179 Using pgrep to Find Processes 179 Using fuser to Find Processes 180 Changing Running Processes 181 Scheduling Realtime Processes 188 Summary 189 Chapter 10: Managing the System 191 Monitoring Resources 191 Monitoring Memory Use 192 Monitoring CPU Usage 196 Monitoring Storage Devices 198 Mastering Time 201 Changing Time/Date with Graphical Tools 201 Displaying and Setting Your System Clock 202 Displaying and Setting Your Hardware Clock 203 Using Network Time Protocol to Set Date/Time 204 Managing the Boot Process 205 Understanding the GRUB Boot Loader 205 Modifying the GRUB Boot Loader 206 Controlling Startup and Run Levels 207 Straight to the Kernel 209 Poking at the Hardware 211 Summary 213 Chapter 11: Managing Network Connections 215 Configuring Networks from the GUI 215 Managing Network Interface Cards 216 Managing Network Connections 221 Starting and Stopping Ethernet Connections 221 Viewing Ethernet Connection Information 223 Using Wireless Connections 225 Checking Name Resolution 226 Troubleshooting Network Problems 228 Checking Connectivity to a Host 228 Checking Address Resolution Protocol 229 Tracing Routes to Hosts 231 Displaying netstat Connections and Statistics 233 Other Useful Network Tools 234 Summary 235 Chapter 12: Accessing Network Resources 237 Running Commands to Browse the Web 237 Transferring Files 239 Downloading Files with wget 239 Transferring Files with cURL 241 Transferring Files with FTP Commands 241 Using SSH Tools to Transfer Files 243 Using Windows File Transfer Tools 246 Sharing Remote Directories 246 Sharing Remote Directories with NFS 246 Sharing Remote Directories with Samba 248 Sharing Remote Directories with SSHFS 251 Chatting with Friends in IRC 252 Using Text-Based E‑mail Clients 253 Managing E‑mail with mail 254 Managing E‑mail with mutt 256 Summary 257 Chapter 13: Doing Remote System Administration 259 Doing Remote Login and Tunneling with SSH 259 Using Legacy Communications Tools 260 Configuring SSH 261 Logging in Remotely with ssh 262 Using byobu and screen for Remote Shells 267 Managing Remote Shells with Screen 268 Using byobu to Manage Remote Shells 270 Using a Remote Windows Desktop 272 Connecting to a Windows Desktop with Remmina 272 Connecting to a Windows Desktop with rdesktop 274 Using Remote Linux Desktop and Applications 274 Sharing Desktops Using VNC 275 Setting Up the VNC Server 276 Starting Up the VNC Client 277 Using VNC on Untrusted Networks with SSH 277 Summary 278 Chapter 14: Locking Down Security 279 Working with Users and Groups 279 Managing Users the GUI Way 280 Adding User Accounts 280 Changing useradd Defaults 281 Modifying User Accounts 282 Deleting User Accounts 283 Managing Passwords 283 Adding Groups 286 Checking on Users 286 Configuring the Built-In Firewall 288 Understanding iptables Firewalls 289 Listing iptables Rules 291 Setting Other Firewall Rules 292 Saving and Reloading Firewall Rules 294 Using Advanced Security Features 294 Summary 295 Chapter 15: Setting Up a Virtualization Host and Virtual Machines 297 Can Your Computer Support Virtualization? 298 Checking for CPU Virtualization Support 298 Enabling Virtualization Support in the BIOS 299 Is the Host Computer 32- or 64-Bit? 300 Checking Available RAM and Disk Space 300 Adding Virtualization Software 301 Adding Your User Account to libvirtd 302 Managing Virtual Machines with virt-manager 302 Creating a Virtual Machine in virt-manager 304 Starting and Stopping Virtual Machines with virt-manager 305 Managing Virtual Machines with Commands 306 Creating a Virtual Machine with virt-install 306 Starting and Stopping Virtual Machines with virsh 308 Summary 309 Appendix A: Using vi or Vim Editors 311 Starting and Quitting the vi Editor 311 Moving Around in vi 313 Changing and Deleting Text in vi 314 Using Miscellaneous Commands 314 Modifying Commands with Numbers 315 Using ex Commands 315 Working in Visual Mode 316 Appendix B: Shell Special Characters and Variables 317 Using Special Shell Characters 317 Using Shell Variables 318 Appendix C: Getting Information from /proc 321 Viewing /proc Information 321 Changing /proc Information 325 Index 327
£19.54
John Wiley & Sons Inc LPIC2 Linux Professional Institute Certification
Book SynopsisFull coverage of the latest LPI-level 2 exams, with bonus online test bank LPIC-2 is the one-stop preparation resource for the Linux Professional Institute''s Advanced Level certification exam. With 100 percent coverage of all exam objectives, this book provides clear and concise coverage of the Linux administration topics you''ll need to know for exams 201 and 202. Practical examples highlight the real-world applications of important concepts, and together, the author team provides insights based on almost fifty years in the IT industry. This brand new second edition has been completely revamped to align with the latest versions of the exams, with authoritative coverage of the Linux kernel, system startup, advanced storage, network configuration, system maintenance, web services, security, troubleshooting, and more. You also get access to online learning tools including electronic flashcards, chapter tests, practice exams, and a glossary of critical terms to help youTable of ContentsIntroduction xxiii Assessment Test xliii Part I The LPI 201 Exam 1 Chapter 1 Starting a System 3 The Linux Boot Process 4 Following the Boot Process 4 Viewing the Boot Process 5 The Firmware Startup 6 The BIOS Startup 6 The UEFI Startup 7 Linux Bootloaders 8 GRUB Legacy 9 GRUB 2 12 Alternative Bootloaders 14 Secure Bootloaders 15 Process Initialization 16 The SysV Method 17 The systemd Method 21 The Upstart Method 26 System Recovery 27 Kernel Failures 27 Root Drive Failure 29 Summary 31 Exam Essentials 31 Review Questions 33 Chapter 2 Maintaining the System 37 Keeping Users Informed 38 Looking at Fluid Messaging 39 Looking at Static Messaging 47 Backing Up the System 51 Developing a Backup Strategy 51 Performing Backups 61 Installing Programs from Source 72 Obtaining the Installation Files 73 Unpacking the Installation Files 73 Reading Installation Documentation 74 Compiling Preparation 75 Compiling the Program 76 Completing the Installation 76 Managing Resource Usage 79 Measuring Resource Usage 79 Predicting Resource Usage 83 Troubleshooting Resource Usage 85 Summary 87 Exam Essentials 87 Review Questions 89 Chapter 3 Mastering the Kernel 93 What Is the Kernel? 94 The Kernel Features 94 Parts of the Kernel 104 Kernel Versions 107 Compiling a Kernel 108 Obtaining Source Code 109 Creating the Configuration File 110 Compiling and Installing the Kernel 114 Compiling and Installing Modules 116 Creating an Initial RAM Disk 116 Booting the New Kernel 118 Creating a Kernel Package 119 Maintaining the Kernel 120 Working with Module Files 120 Module Commands 120 Working with Hardware 125 Automatically Detecting Hardware 128 Troubleshooting the Kernel 129 Summary 132 Exam Essentials 133 Review Questions 135 Chapter 4 Managing the Filesystem 139 Operating the Linux Filesystem 140 Understanding Filesystem Structures 140 Understanding Filesystem Types 141 Making a Filesystem 144 Attaching a Filesystem 146 Exploring Additional Filesystem Topics 162 Looking at Memory-Based Linux Filesystems 162 Looking at the Btrfs Filesystem 163 Exploring Btrfs Subvolumes 165 Exploring Btrfs Snapshots 169 Looking at Optical Filesystems 171 Looking at Swap Filesystems 177 Looking at Network-Based Filesystems 180 Understanding Auto-Mounting 180 Looking at Encrypted Filesystems 183 Maintaining Linux Filesystems 185 Adjusting a Filesystem 185 Checking and Repairing a Filesystem 187 Using SMART 189 Summary 192 Exam Essentials 192 Review Questions 195 Chapter 5 Administering Advanced Storage Devices 199 Configuring RAID 200 Understanding RAID 200 Implementing RAID on Linux 204 Managing a RAID Array 216 Adjusting Storage Devices 221 Looking at Drive Interface Concepts 221 Testing and Tuning Drives 223 Implementing iSCSI 234 Managing Logical Volumes 245 Understanding LVM 245 Creating Logical Volumes 246 Supporting Logical Volumes 254 Understanding the Device Mapper 263 Summary 264 Exam Essentials 264 Review Questions 267 Chapter 6 Navigating Network Services 271 Networking Basics 272 The Physical Layer 272 The Network Layer 274 The Transport Layer 278 The Application Layer 279 Configuring Network Features 279 Network Configuration Files 280 Graphical Tools 282 Command-Line Tools 284 Basic Network Troubleshooting 288 Checking the Log Files 288 Viewing the ARP Cache 289 Sending Test Packets 290 Testing Network Routes 291 Testing Client/Server Connectivity 293 Finding Host Information 295 Network Security 297 Advanced Network Troubleshooting 297 Viewing Open Network Connections 297 Viewing Network Statistics 300 Scanning the Network 302 Capturing Network Traffic 303 Summary 308 Exam Essentials 308 Review Questions 310 Part II The LPI 202 Exam 315 Chapter 7 Organizing Email Services 317 The Linux Mail System 318 Mail Transfer Agent 319 Mail Delivery Agent 321 Mail User Agent 323 Email Protocols 325 Simple Mail Transfer Protocol 326 Post Office Protocol 332 Internet Message Access Protocol 334 Using Email Servers 338 Using Sendmail 338 Using Postfix 342 Local Email Delivery 351 Procmail Basics 351 Sieve 356 Remote Email Delivery 359 Using Courier 359 Using Dovecot 360 Summary 363 Exam Essentials 364 Review Questions 366 Chapter 8 Directing DNS 371 Configuring a DNS Server 372 Understanding DNS and BIND 372 Configuring DNS on Linux 379 Starting, Stopping, and Reloading BIND 395 Configuring BIND Logging 398 Creating and Maintaining DNS Zones 403 Exploring BIND Zone Files 403 Managing BIND Zones on Linux 417 Securing a DNS Server 427 Setting Up Basic Security 427 Jailing BIND 431 Using DNSSEC 434 Connecting via TSIG 440 Employing DANE 442 Summary 445 Exam Essentials 445 Review Questions 447 Chapter 9 Offering Web Services 451 What Is a Web Server? 452 Web Server Basics 452 The HTTP Standard 453 Linux Web Servers 459 The Apache Web Server 461 Installing an Apache Server 462 Configuring the Apache Server 464 Hosting Dynamic Web Applications 472 Creating a Secure Web Server 474 Using a Proxy Server 482 Installing Squid 482 Configuring Squid 483 Configuring Clients 486 The Nginx Server 487 Installing Nginx 487 Configuring Nginx 488 Summary 490 Exam Essentials 491 Review Questions 493 Chapter 10 Sharing Files 497 Looking at Samba 498 Understanding Samba 498 Configuring Samba 500 Troubleshooting Samba 527 Looking at NFS 530 Understanding NFS 530 Configuring NFS 533 Securing NFS 549 Troubleshooting NFS 552 Looking at FTP Servers 553 Understanding FTP 554 Configuring vsftpd 556 Configuring Pure-FTPd 568 Summary 575 Exam Essentials 575 Review Questions 577 Chapter 11 Managing Network Clients 581 Assigning Network Addresses 582 The DHCP Standard 583 Linux DHCP Software 584 Installing a Linux DHCP Server 585 Configuring a DHCP Server 585 Configuring Clients 590 Authentication Service 591 PAM Basics 591 Configuring PAM 594 Using PAM Application Files 595 Network Directories 597 LDAP Basics 597 The OpenLDAP Server 601 Implementing LDAP Clients 607 Summary 613 Exam Essentials 613 Review Questions 615 Chapter 12 Setting Up System Security 619 Server Network Security 620 Port Scanning 620 Intrusion Detection Systems 628 External Network Security 631 Using iptables 634 Routing in Linux 639 Connecting Securely to a Server 639 OpenSSH 640 OpenVPN 643 Security Resources 646 US-CERT 646 SANS Institute 647 Bugtraq 647 Summary 648 Exam Essentials 649 Review Questions 651 Appendix Answers to Review Questions 655 Chapter 1: Starting a System 656 Chapter 2: Maintaining the System 659 Chapter 3: Mastering the Kernel 662 Chapter 4: Managing the Filesystem 664 Chapter 5: Administering Advanced Storage Devices 667 Chapter 6: Navigating Network Services 670 Chapter 7: Organizing Email Services 673 Chapter 8: Directing DNS 676 Chapter 9: Offering Web Services 678 Chapter 10: Sharing Files 681 Chapter 11: Managing Network Clients 684 Chapter 12: Setting Up System Security 687 Index 691
£43.50
Reed Media Services The OpenBSD PF Packet Filter Book
£19.32
Reed Media Services The Best of FreeBSD Basics
£32.07
APress Beginning Game Development with Godot
Book SynopsisLearn the fundamentals of Godot by diving headfirst into creating a 2D platformer from scratch. This book is a hands-on, practical guide to developing 2D games using the Godot Engine 3.2.3/3.3, with the help of GDScript.Author Maithili Dhule begins by explaining some basic tools and techniques used to make games, the factors that need to be considered while choosing a game engine, and pointing out the benefits of using Godot. She then walks you through downloading the engine and guides you as you explore key features of its interface. Next, you''ll receive a concise introduction to the basics of GDScript, the main scripting language used in Godot, before moving on to essential topics such as Godot''s node-scene architecture, the interaction of various physics bodies, the creation of game scenes, and writing scripts. As the book progresses, you''ll learn how to create and animate your game character, design the game world, add enemies, and implement a coin-collection syTable of ContentsChapter 1: Introduction to Game Development Sub –Topics:• Brief history of game development• Fundamentals of making games• What is a game engine? • How do we choose a game engine?• Why choose Godot? Chapter 2: Getting Started with GodotSub – Topics:• Downloading the Godot engine• Starting a new project • Exploring the Godot interface• Icons and shortcutsChapter 3: GDScript in a NutshellSub - Topics:• Keywords, operators, and identifiers• Commenting code• Variables and data types• Functions and method calls• Example code Chapter 4: Exploring Game PhysicsSub - Topics:• Node-scene architecture• Physics bodies – what are they? • RigidBody2D • StaticBody2D• Collision shapes • Introducing gravity• Try it yourself – Your first game scene Chapter 5: Adding Game GraphicsSub - Topics: • Creating game objects • Instances of scenes• Importing game assets• Writing a game script• Adding and detecting key presses• Try it yourself – Creating your player Chapter 6: Game Animations Sub - Topics: • Giving life to the player • Player animation • Detecting the floor and ceiling • Adjusting gravity• Try it yourself – Making your player run, jump, and climbChapter 7: Building the World Sub –Topics:• Parallax background • Try it yourself – Creating a parallax background• Tilemaps, Tilesets, and the Tile Palette• Painting the game level• Implementing camera-follow• Try it yourself – Designing the game worldChapter 8: Counting Wins and Losses Sub – Topics: • Coin-collection • Deleting in-game objects • Using signals • Creating enemies• Try it yourself – Adding rewards and enemies• Game scene change• Try it yourself – Creating the game over sceneChapter 9: Game GUISub - Topics:• The title screen • Buttons• Adding music and sound effects Chapter 10: Publishing your GameSub - Topics: • Exporting the game to various platforms• Monetization • Introducing game updates• What next?
£46.74
APress Pro Angular
Book SynopsisWelcome to this one-stop shop for learning Angular. Pro Angular is the most concise and comprehensive guide available, giving you the knowledge you need to take full advantage of this popular framework for building your own dynamic JavaScript applications.Angular is an open-source JavaScript library maintained by Google. It has many excellent options when it comes to server-side development and is used in some of the largest and most complex web applications in the world to enhance HTML in the browser. Its cornerstone is the ability to create applications that are extendable, maintainable, testable, and standardized. Knowing Angular''s foundations and understanding its applications is an asset in any developer toolbox.The fifth edition of this popular guide explains how to get the most from Angular, presenting the range of benefits it can offer. You will begin learning how to use Angular in your projects, starting with the nuts-and-bolts concepts, and progreTable of ContentsPart I – Getting Ready Chapter 1. Getting Ready Chapter 2. Jumping Right In Chapter 3. Primer, Part I Chapter 4. Primer, Part II Chapter 5. SportsStore: A Real Application Chapter 6. SportsStore: Orders and Checkout Chapter 7. SportsStore:Administration Chapter 8. SportsStore: Progressive Features and Deployment Part II - Working with Angular Chapter 9. Understanding Angular Projects and Tools Chapter 10. Using Data Bindings Chapter 11. Using the Built-In Directives Chapter 12. Using Events and Forms Chapter 13. Creating Attribute Directives Chapter 14. Creating Structural Directives Chapter 15. Understanding Components Chapter 16. Using and Creating Pipes Chapter 17. Using Services Chapter 18. Using Service Providers Chapter 19. Using and Creating Modules Part III - Advanced Angular Features Chapter 20. Creating the Example Project Chapter 21. Using the Forms API, Part I Chapter 22. Using the Forms API, Part II Chapter 23. Making HTTP Requests Chapter 24. Routing and Navigation, Part I Chapter 25. Routing and Navigation, Part II Chapter 26. Routing and Navigation, Part III Chapter 27. Using Animations Chapter 28. Working with Component Libraries Chapter 29. Angular Unit Testing
£49.49
APress How to be a Web Developer
Book SynopsisThis complete beginner's guide is for anyone interested in becoming a web developer. Aimed at those without any previous experience, this book provides an overview of the key principles of modern web development. You'll gain insight into the key facets of JavaScript, HTML and CSS, as well as the difference between front-end, back-end, and full stack development. You'll also be introduced to popular tools and frameworks such as React, Angular, GraphQL, and Node.js, and gain an understanding of the role of a web developer: what it entails, how to secure your first role, and how to survive your first week in the job.Moreover, How to be a Web Developer will take you through the steps of building your first web application, allowing you to apply the principles you've learned in a practical way. Filled with additional information and resources, this book will give you the knowledge and tools needed to start your journey tobecoming a professional web developer.What You Will LearnMaster theTable of Contents Part I: Getting Started- IntroductionPart II: The Tech Stack - SQL Basics - HTML& CSS - GraphQL & JavaScript - The Back-End - Other Technologies You Should Know Part III: Landing Your First Role - Your First Role - Working in A Team - Project Management Methods Part IV: In Summary - Conclusions
£25.19
Peer to Peer,U.S. Lion's Commentary on UNIX with Source Code
£29.40
APress From Bash to Z Shell: Conquering the Command Line
Book Synopsis* In-depth, unique coverage of ZSH, one of most modern and powerful of all shells. Also covers Bash, the preferred shell for most serious Linux and Unix users. * Very strong author and tech review team: Co-author Peter Stephenson has been involved in the development of Zsh since the 1990s when he started to write the FAQ. For the last few years, he has served as coordinator of the shell's development. Tech Reviewers: Ed Schaefer is the "Shell Corner" columnist for SysAdmin Magazine and Bart Schaefer is one of the lead developers of Zsh development. * Book is immediately useful, packed with short example and suggestions that the reader can put to use in their shell environment. * Extensive coverage of interactive and advanced shell features, including shell extensions, completion functions, and shortcuts. * Great book for users of all expertise; perennial seller. Table of ContentsA table of contents is not available for this title.
£46.74
Tilted Windmill Press Ed Mastery: The Standard Unix Text Editor
£8.99
Tilted Windmill Press Relayd and Httpd Mastery
£22.49
Tilted Windmill Press Sudo Mastery
£22.49
Tilted Windmill Press Ed Mastery
£26.99
Tilted Windmill Press DNSSEC Mastery, 2nd Edition
£31.49
Packt Publishing Limited Kali Linux 2: Windows Penetration Testing
Book SynopsisKali Linux: a complete pentesting toolkit facilitating smooth backtracking for working hackers About This Book • Conduct network testing, surveillance, pen testing and forensics on MS Windows using Kali Linux • Footprint, monitor, and audit your network and investigate any ongoing infestations • Customize Kali Linux with this professional guide so it becomes your pen testing toolkit Who This Book Is For If you are a working ethical hacker who is looking to expand the offensive skillset with a thorough understanding of Kali Linux, then this is the book for you. Prior knowledge about Linux operating systems and the BASH terminal emulator along with Windows desktop and command line would be highly beneficial. What You Will Learn • Set up Kali Linux for pen testing • Map and enumerate your Windows network • Exploit several common Windows network vulnerabilities • Attack and defeat password schemes on Windows • Debug and reverse-engineer Windows programs • Recover lost files, investigate successful hacks and discover hidden data in innocent-looking files • Catch and hold admin rights on the network, and maintain backdoors on the network after your initial testing is done In Detail Microsoft Windows is one of the two most common OS and managing its security has spawned the discipline of IT security. Kali Linux is the premier platform for testing and maintaining Windows security. Kali is built on the Debian distribution of Linux and shares the legendary stability of that OS. This lets you focus on using the network penetration, password cracking, forensics tools and not the OS. This book has the most advanced tools and techniques to reproduce the methods used by sophisticated hackers to make you an expert in Kali Linux penetration testing. First, you are introduced to Kali's top ten tools and other useful reporting tools. Then, you will find your way around your target network and determine known vulnerabilities to be able to exploit a system remotely. Next, you will prove that the vulnerabilities you have found are real and exploitable. You will learn to use tools in seven categories of exploitation tools. Further, you perform web access exploits using tools like websploit and more. Security is only as strong as the weakest link in the chain. Passwords are often that weak link. Thus, you learn about password attacks that can be used in concert with other approaches to break into and own a network. Moreover, you come to terms with network sniffing, which helps you understand which users are using services you can exploit, and IP spoofing, which can be used to poison a system's DNS cache. Once you gain access to a machine or network, maintaining access is important. Thus, you not only learn penetrating in the machine you also learn Windows privilege's escalations. With easy to follow step-by-step instructions and support images, you will be able to quickly pen test your system and network. Style and approach This book is a hands-on guide for Kali Linux pen testing. This book will provide all the practical knowledge needed to test your network's security using a proven hacker's methodology. The book uses easy-to-understand yet professional language for explaining concepts.
£39.99
Packt Publishing Limited Building Low Latency Applications with C++: Develop a complete low latency trading ecosystem from scratch using modern C++
Book SynopsisExplore techniques to design and implement low latency applications and study the impact of latency reduction Purchase of the print or Kindle book includes a free PDF eBook Key Features Understand the impact application performance latencies have on different business use cases Develop a deep understanding of C++ features for low latency applications through real-world examples and performance data Learn how to build all the components of a C++ electronic trading system from scratch Book DescriptionC++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies. With this book, you’ll gain insights into the performance requirements for low latency applications and the C++ features critical to achieving the required performance latencies. You’ll also solidify your understanding of the C++ principles and techniques as you build a low latency system in C++ from scratch. You’ll understand the similarities between such applications, recognize the impact of performance latencies on business, and grasp the reasons behind the extensive efforts invested in minimizing latencies. Using a step-by-step approach, you’ll embark on a low latency app development journey by building an entire electronic trading system, encompassing a matching engine, market data handlers, order gateways, and trading algorithms, all in C++. Additionally, you’ll get to grips with measuring and optimizing the performance of your trading system. By the end of this book, you’ll have a comprehensive understanding of how to design and build low latency applications in C++ from the ground up, while effectively minimizing performance latencies. What you will learn Gain insights into the nature of low latency applications across various industries Understand how to design and implement low latency applications Explore C++ design paradigms and features for low latency development Discover which C++ features are best avoided in low latency development Implement best practices and C++ features for low latency Measure performance and improve latencies in the trading system Who this book is forThis book is for C++ developers who want to gain expertise in low latency applications and effective design and development strategies. C++ software engineers looking to apply their knowledge to low latency trading systems such as HFT will find this book useful to understand which C++ features matter and which ones to avoid. Quantitative researchers in the trading industry eager to delve into the intricacies of low latency implementation will also benefit from this book. Familiarity with Linux and the C++ programming language is a prerequisite for this book.Table of ContentsTable of Contents Product Information Document Introducing Low Latency Application Development in C++ Designing Some Common Low Latency Applications in C++ Exploring C++ Concepts from A Low-Latency Application’s Perspective Building the C++ Building Blocks for Low Latency Applications Designing Our Trading Ecosystem Building the C++ Matching Engine Communicating with Market Participants Processing Market Data and Sending Orders to the Exchange in C++ Building the C++ Trading Algorithm’s Building Blocks Building the C++ Market Making and Liquidity Taking Algorithms Adding Instrumentation and Measuring Performance Analyzing and Optimizing the Performance of Our C++ System
£33.99
Packt Publishing Limited Instant Debian: Build a Web Server
Book SynopsisFilled with practical, step-by-step instructions and clear explanations for the most important and useful tasks. A concise guide full of step-by-step recipes to teach you how to install and configure a Debian web server. This is an ideal book if you are an administrator on a Development Operations team or infrastructure management, who is passionate about Linux and their Web applications but have no previous experience with Debian or APT-based systems.
£19.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG PostgreSQL Query Optimization: The Ultimate Guide to Building Efficient Queries
Book SynopsisWrite optimized queries. This book helps you write queries that perform fast and deliver results on time. You will learn that query optimization is not a dark art practiced by a small, secretive cabal of sorcerers. Any motivated professional can learn to write efficient queries from the get-go and capably optimize existing queries. You will learn to look at the process of writing a query from the database engine’s point of view, and know how to think like the database optimizer. The book begins with a discussion of what a performant system is and progresses to measuring performance and setting performance goals. It introduces different classes of queries and optimization techniques suitable to each, such as the use of indexes and specific join algorithms. You will learn to read and understand query execution plans along with techniques for influencing those plans for better performance. The book also covers advanced topics such as the use of functions and procedures, dynamic SQL, and generated queries. All of these techniques are then used together to produce performant applications, avoiding the pitfalls of object-relational mappers.This second edition includes new examples using Postgres 15 and the newest version of the PostgresAir database. It includes additional details and clarifications about advanced topics, and covers configuration parameters in greater depth. Finally, it makes use of advancements in NORM, using automatically generated functions. What You Will Learn Identify optimization goals in OLTP and OLAP systems Read and understand PostgreSQL execution plans Distinguish between short queries and long queries Choose the right optimization technique for each query type Identify indexes that will improve query performance Optimize full table scans Avoid the pitfalls of object-relational mapping systems Optimize the entire application rather than just database queries Who This Book Is ForIT professionals working in PostgreSQL who want to develop performant and scalable applications, anyone whose job title contains the words “database developer” or “database administrator" or who is a backend developer charged with programming database calls, and system architects involved in the overall design of application systems running against a PostgreSQL databaseTable of Contents1. Why Optimize?2. Theory - Yes, We Need It!3. Even More Theory Algorithms4. Understanding Execution Plans5. Short Queries and Indexes6. Long Queries and Full Scans7. Long Queries: Additional Techniques8. Optimizing Data Modification9. Design Matters10. Application Development and Performance11. Functions12. Dynamic SQL13. Avoiding the Pitfalls of Object-Relational Mapping14. More Complex Filtering and Search15. Ultimate Optimization Algorithm16. Conclusion
£44.99
APress Modern TypeScript
Book SynopsisDive into the world of TypeScript, a popular superset of the JavaScript language that enhances the development experience with static typing. This book covers every aspect of TypeScript in a concise and easy-to-understand style, making it the ultimate resource for mastering TypeScript.Author Ben Beattie-Hood provides comprehensive coverage of TypeScript's features, such as structural typing, optionality and union types, computed and recursive types, and much more. Each chapter is packed with practical, real-world examples and insider tips drawn from his 20 years of experience as a trainer, ensuring you understand the most important concepts and learn how to avoid common pitfalls.Modern TypeScript will put you on the path to becoming a TypeScript expert, help you greatly reduce errors, and boost your delivery velocity. Whether you're building small projects or large-scale applications, this book will give you the skills and confidence to write cleaner, scalable, and more maintainable coTable of Contents
£29.69
APress Network Programming with Go Language
Book SynopsisDive into key topics in network architecture implemented with the Google-backed open source Go programming language. Networking topics such as data serialization, application level protocols, character sets and encodings are discussed and demonstrated in Go. This book has been updated to the Go version 1.18 which includes modules, generics, and fuzzing along with updated and additional examples. Beyond the fundamentals, Network Programming with Go, Second Edition covers key networking and security issues such as HTTP protocol changes, validation and templates, remote procedure call (RPC) and REST comparison, and more. Additionally, authors Ronald Petty and Jan Newmarch guide you in building and connecting to a complete web server based on Go. Along the way, use of a Go web toolkit (Gorilla) will be employed. This book can serve as both an essential learning guide and reference on networking concepts and implementation in Go. Free source code is avaTable of Contents1: Architectural Layers2: Overview of the Go Language3: Socket-Level Programming4: Data Serialization5: Application-Level Protocols6: Managing Character Sets and Encodings7: Security8: HTTP9: Templates10: A Complete Web Server11: HTML12: XML13: Remote Procedure Call14: REST15: WebSockets16: Gorilla17: TestingAppendix A: FuzzingAppendix B: Generics
£46.74
APress Programming 101
Book SynopsisProgramming permeates almost all aspects of our lives. This includes being active on social media, shopping online, and participating in virtual courses. It also includes driving a car and using many devices. This book will teach you the basics of programming using the Processing programming language and provide practice with logical, algorithmic thinking. It can provide insight into what is involved in producing the technical infrastructure of our world. While reading this book, you can build programs based on your own ideas, using images you create or acquire and making connections to activities you enjoy.The chapters in the book will demonstrate the process of programming, starting with formulating an idea, planning, building on past projects, and refining the work, similar to writing an essay or composing a song. This approach will guide you to make use of logic and mathematics to produce beautiful effects. The text contains an Appendix with an introductiTable of Contents1. Basics2. Interactions3. Animation Using Arrays and Parallel Structures4. Classes 5. More Interactions6. Images, Graphics, and Building on Prior Work7. Using Files for Making a Holiday Card8. Combining Videos, Images, and Graphics9. Hangman10. 3DAppendix: Processing and JavaScript: p5.js
£46.74