دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نويسي ویرایش: نویسندگان: Prabhu Eshwarla سری: ISBN (شابک) : 1800560966, 9781800560963 ناشر: Packt Publishing سال نشر: 2020 تعداد صفحات: 388 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 3 مگابایت
در صورت تبدیل فایل کتاب Practical System Programming for Rust Developers: Build fast and secure software for Linux/Unix systems with the help of practical examples به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب برنامه نویسی عملی سیستم برای توسعه دهندگان Rust: با کمک مثال های عملی، نرم افزاری سریع و ایمن برای سیستم های لینوکس/یونیکس بسازید. نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
ویژگیهای Rust، ساختارهای داده، کتابخانهها و زنجیره ابزار مختلف را برای ساختن نرمافزار سیستمهای مدرن با کمک مثالهای عملی کاوش کنید
زبان های برنامه نویسی مدرن مانند Python، JavaScript و Java به طور فزاینده ای برای سطح برنامه پذیرفته شده اند. برنامه نویسی، اما برای برنامه نویسی سیستم ها، C و C++ عمدتاً به دلیل نیاز به کنترل سطح پایین منابع سیستم استفاده می شوند. Rust بهترینهای هر دو دنیا را نوید میدهد: نوع ایمنی جاوا و سرعت و بیان C++، در حالی که شامل ایمنی حافظه بدون زبالهگیر است. اگر شما با Rust و برنامه نویسی سیستم ها تازه کار هستید و به دنبال ایجاد نرم افزار سیستمی قابل اعتماد و کارآمد بدون C یا C++ هستید، این کتاب یک مقدمه جامع است.
این کتاب با شروع هر مبحث با لینوکس رویکردی منحصر به فرد دارد. مفاهیم هسته و APIهای مرتبط با آن موضوع. شما همچنین خواهید دید که چگونه منابع سیستم را می توان از Rust کنترل کرد. با پیشرفت، به موضوعات پیشرفته می پردازید. قبل از یادگیری نحوه استفاده و کامپایل Rust با WebAssembly، برنامه نویسی شبکه را با تمرکز بر جنبه هایی مانند کار با پروتکل های اولیه و پروتکل های شبکه سطح پایین در Rust پوشش خواهید داد. فصلهای بعدی شما را با نمونههای کد عملی و پروژهها آشنا میکند تا به شما کمک کند دانش خود را بسازید.
در پایان این کتاب برنامهنویسی Rust، شما به مهارتهای عملی برای نوشتن ابزارهای نرمافزاری سیستمها، کتابخانهها، مجهز خواهید شد. و ابزارهای کاربردی در Rust.
این کتاب برای توسعه دهندگانی است که دانش اولیه Rust را دارند اما دانش یا تجربه کمی در مورد برنامه نویسی سیستم دارند. برنامه نویسان سیستمی که می خواهند Rust را به عنوان جایگزینی برای C یا C++ در نظر بگیرند نیز این کتاب را مفید خواهند یافت.
Explore various Rust features, data structures, libraries, and toolchain to build modern systems software with the help of hands-on examples
Modern programming languages such as Python, JavaScript, and Java have become increasingly accepted for application-level programming, but for systems programming, C and C++ are predominantly used due to the need for low-level control of system resources. Rust promises the best of both worlds: the type safety of Java, and the speed and expressiveness of C++, while also including memory safety without a garbage collector. This book is a comprehensive introduction if you're new to Rust and systems programming and are looking to build reliable and efficient systems software without C or C++.
The book takes a unique approach by starting each topic with Linux kernel concepts and APIs relevant to that topic. You'll also explore how system resources can be controlled from Rust. As you progress, you'll delve into advanced topics. You'll cover network programming, focusing on aspects such as working with low-level network primitives and protocols in Rust, before going on to learn how to use and compile Rust with WebAssembly. Later chapters will take you through practical code examples and projects to help you build on your knowledge.
By the end of this Rust programming book, you will be equipped with practical skills to write systems software tools, libraries, and utilities in Rust.
This book is for developers with basic knowledge of Rust but little to no knowledge or experience of systems programming. System programmers who want to consider Rust as an alternative to C or C++ will also find this book useful.
Cover Copyright About PACKT Contributors Table of Contents Preface Section 1: Getting Started with System Programming in Rust Chapter 1: Tools of the Trade – Rust Toolchains and Project Structures Technical requirements Choosing the right Rust configuration for your project Choosing a Rust release channel Selecting a Rust project type Introducing Cargo and project structures Automating build management with Cargo Building a basic binary crate Configuring Cargo Building a static library crate Automating dependency management Specifying the location of a dependency Using dependent packages in source code Writing and running automated tests Writing unit tests in Rust Writing integration tests in Rust Controlling test execution Running tests sequentially or in parallel Documenting your project Writing inline documentation comments within crate Writing documentation in markdown files Running documentation tests Summary Further reading Chapter 2: A Tour of the Rust Programming Language Technical requirements Analyzing the problem domain Modeling the system behavior Building the tokenizer Tokenizer data structure Tokenizer data processing Building the parser Parser data structure Parser methods Operator precedence Building the evaluator Dealing with errors Putting it all together Summary Chapter 3: Introduction to the Rust Standard Library Technical requirements The Rust Standard Library and systems programming Exploring the Rust Standard Library Computation-oriented modules Syscalls-oriented modules Building a template engine Template syntax and design Writing the template engine Executing the template engine Summary Further reading Chapter 4: Managing Environment, Command Line, and Time Technical requirements Project scope and design overview What will we build? Technical design Using the Rust Standard Library Coding the imagix library Developing the command-line application and testing Designing the command-line interface Coding the command-line binary using structopt Summary Section 2: Managing and Controlling System Resources in Rust Chapter 5: Memory Management in Rust Technical requirements The basics of OS memory management The memory management lifecycle The process memory layout Understanding the memory layout of Rust programs Rust program memory layout The characteristics of stack, heap, and static memory The Rust memory management lifecycle Overview of the Rust memory management lifecycle Memory allocation Memory use and manipulation Memory deallocation Implementing a dynamic data structure Changes to the design of the template engine Coding the dynamic data structure Summary Further reading Chapter 6: Working with Files and Directories in Rust Technical requirements Understanding Linux system calls for file operations Doing file I/O in Rust Learning directory and path operations Setting hard links, symbolic links, and performing queries Writing a shell command in Rust (project) Code overview Error handling Source metric computation The main() function Summary Chapter 7: Implementing Terminal I/O in Rust Technical requirements Introducing terminal I/O fundamentals Characteristics of terminals The Termion crate What will we build? Working with the terminal UI (size, color, styles) and cursors Writing data structures and the main() function Initializing the text viewer and getting the terminal size Displaying a document and styling the terminal color, styles, and cursor position Exiting the text viewer Processing keyboard inputs and scrolling Listening to keystrokes from the user Positioning the terminal cursor Enabling scrolling on the terminal Processing mouse inputs Summary Chapter 8: Working with Processes and Signals Technical requirements Understanding Linux process concepts and syscalls How does a program become a process? Delving into Linux process fundamentals Spawning processes with Rust Spawning new child processes Terminating processes Checking the status of a child process' execution Handling I/O and environment variables Handling the I/O of child processes Setting the environment for the child process Handling panic, errors, and signals Aborting the current process Signal handling Writing a shell program in Rust (project) Summary Chapter 9: Managing Concurrency Technical requirements Reviewing concurrency basics Concurrency versus parallelism Concepts of multi-threading Spawning and configuring threads Error handling in threads Message passing between threads Achieving concurrency with shared state Defining the program structure Aggregating source file statistics in shared state Pausing thread execution with timers Summary Section 3: Advanced Topics Chapter 10: Working with Device I/O Technical requirements Understanding device I/O fundamentals in Linux What are device drivers? Types of devices Doing buffered reads and writes Working with standard input and output Chaining and iterators over I/O Handling errors and returning values Getting details of connected USB devices (project) Designing the project Writing data structures and utility functions Writing the main() function Summary Chapter 11: Learning Network Programming Technical requirements Reviewing networking basics in Linux Understanding networking primitives in the Rust standard library Programming with TCP and UDP in Rust Writing a UDP server and client Writing a TCP server and client Writing a TCP reverse proxy (project) Writing the origin server – structs and methods Writing the origin server – the main() function Writing the reverse proxy server Summary Chapter 12: Writing Unsafe Rust and FFI Technical requirements Introducing unsafe Rust How do you distinguish between safe and unsafe Rust code? Operations in unsafe Rust Introducing FFIs Reviewing guidelines for safe FFIs Calling Rust from C (project) Understanding the ABI Summary Other Books You May Enjoy Index