Muutke küpsiste eelistusi

E-raamat: Getting Started with Secure Embedded Systems: Developing IoT Systems for micro:bit and Raspberry Pi Pico Using Rust and Tock

  • Formaat: PDF+DRM
  • Ilmumisaeg: 01-Jan-2022
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781484277898
Teised raamatud teemal:
  • Formaat - PDF+DRM
  • Hind: 67,91 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: PDF+DRM
  • Ilmumisaeg: 01-Jan-2022
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781484277898
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Build secure and reliable IoT applications for micro:bit and Raspberry Pi Pico by using Rust and Tock.





One of the first Operating Systems written in Rust, Tock is designed to safely run multiple applications on low power devices, enabling you to build a secure foundation for IoT systems. It is an open-source OS that has recently gained popularity as companies such as Google[ 1] explore and integrate it into their products.





This book guides you through the steps necessary to customize and integrate Tock into your devices. First, you'll explore the characteristics of Tock and how to run it on two of the most popular IoT platforms: micro:bit and Raspberry Pi Pico. Youll also take a look at Rust and how to use it for building secure applications with Tock.





The book focuses on the Tock kernel internals and presents the steps necessary to integrate new features. From simple drivers to the more complex asynchronous ones, you are provided with a detailed description of the Tock kernel API.





Next, you'll review the Tock applications framework for C. Starting from simple Tock APIs to the more complex Inter-Process Communication system, this book provides a complete overview of the Tock application ecosystem.





By taking a practical approach, Getting Started with Secure Embedded Systems provides a starting point for building a secure IoT foundation using the Tock Operating System. 





You will:









Use Rust for embedded systems development Write applications and drivers for Tock Customize the Tock kernel for specific hardware platforms Set a solid base for building secure and reliable IoT applications Use Tock to ensure the security of your microcontrollers and integrate them into your projects Manage products that rely on Tock

Who This Book Is For





IoT system designers, developers, and integrators who are familiar with operating systems concepts. The book can also be suitable for people with less experience, who want to gain an overview of the latest hardware and software technologies related to building secure IoT systems.





 
About the Authors xiii
About the Technical Reviewer xv
Acknowledgments xvii
Chapter 1 Embedded Systems and Architectures
1(26)
The Eagle Has Landed
1(3)
The Architecture of a Generic Embedded System
4(3)
Central Processing Unit
7(7)
The System Bus
14(1)
The Memory
15(1)
Input/Output Devices
16(1)
The Storage Space
17(1)
The Interrupt Controller
18(2)
The Debug Interface
20(1)
Microcontrollers, Computers, and Hybrid Systems
21(1)
Microcontrollers
22(1)
Computers
22(3)
Hybrids
25(1)
Embedded Systems Platforms
25(1)
Summary
26(1)
Chapter 2 Embedded Systems Software Development
27(22)
What About the Software?
27(1)
Development Languages
28(1)
Assembly Language
28(2)
Structured Programming
30(5)
A Few Words About Security
35(1)
C Programming and Safety
36(2)
Beware of Rust
38(2)
Bare Metal Embedded
40(1)
TheArduino Library
40(1)
CMSIS
41(1)
OpenCM3
41(1)
The Rust Embedded Devices Working Group
41(2)
Embedded Operating Systems and Frameworks
43(1)
FreeRTOS
43(1)
The Zephyr Project
44(1)
Mbed OS
45(1)
RIOT
45(1)
Tock
46(1)
Summary
47(2)
Chapter 3 The Tock System Architecture
49(42)
Why Tock?
49(1)
A Few Words About Operating Systems
50(1)
The Kernel
50(1)
The Drivers
51(1)
The Applications
52(1)
Services
52(1)
The Tock System Architecture
52(3)
User Space
55(1)
The Tock Kernel
56(1)
Hardware Drivers
57(1)
Capsules
58(2)
Security Facts
60(1)
The Tock User Space Architecture
61(1)
Process States
62(3)
System Calls
65(10)
The Process Memory
75(5)
Tock Application Package
80(4)
Flashing the System
84(1)
The Debug Chip
85(1)
Flashing
86(1)
Programming
87(1)
The Safe Way
88(1)
Summary
89(2)
Chapter 4 Rust for Tock
91(70)
Introduction to Rust
91(1)
Rust Primary Data Types
92(2)
Mutability
94(1)
Who Owns A Value?
95(3)
Strings
98(4)
Borrowing
102(4)
Slices
106(2)
Lifetimes
108(1)
Who Is Responsible for Deallocation?
108(5)
Lifetime Elision Rules
113(1)
Generics and Trait Objects
114(1)
A Kind of Inheritance
114(6)
Traits
120(11)
Generic Structures
131(3)
Associated Types
134(1)
Null Values and Error Reporting
135(6)
Rust Concepts Used in Tock
141(1)
Interior Mutability
141(8)
Global Variables
149(1)
Buffer Lifetimes
150(2)
Unwrapping Values
152(3)
Transforming Values
155(4)
Summary
159(2)
Chapter 5 Getting Started with Tock
161(54)
Hardware Requirements
161(1)
About the Tock Repository
162(1)
The Tock Project Structure
163(3)
The libtock-c and libtock-rs Repositories
166(1)
Environment Setup
166(2)
Environment Setup for Programming the micro:bit Device
168(7)
Install the Necessary Tools for the Raspberry Pi Pico
175(7)
Clone the Tock Kernel Source Code
182(2)
Clone Tock Additional Libraries
184(2)
Compile and Deploy the Tock Kernel and Applications
186(2)
Deploy the Tock Kernel on the micro:bit
188(8)
Hello World from micro:bit!
196(4)
Deploy the Tock Kernel on the Raspberry Pi Pico
200(9)
Hello World from Raspberry Pi Pico!
209(4)
Summary
213(2)
Chapter 6 The Structure of a Custom Tock System
215(16)
Initialize the Kernel Component
216(1)
Link the Tock Kernel Repository
216(1)
Add the Board-Specific Folder
217(3)
Create the Drivers Folder
220(2)
Initialize the Userspace Component
222(1)
Link the libtock-c Repository
223(1)
Create the Applications Folder
223(4)
The Rust Toolchain
227(1)
Build the Project
227(1)
Build the Kernel
227(1)
Build an Application
228(1)
Summary
228(3)
Chapter 7 Userspace Applications Development
231(30)
Hardware Requirements
232(1)
Userspace Capsule APIs
232(3)
The Timer Library
235(2)
The GPIO Library
237(1)
Application Example
238(2)
The LED Library
240(1)
Application Example
241(1)
The ADC Library
242(1)
Application Example
243(1)
The Sensor Libraries
244(1)
Reading The Temperature
244(1)
Reading The Motion
245(1)
Application Example
246(2)
Human Interaction Libraries
248(1)
The Console Library
248(2)
The Text Screen Library
250(2)
The Screen Library
252(2)
The Button Library
254(3)
Persistent Data Storage Library
257(3)
Summary
260(1)
Chapter 8 Synchronous Syscall Capsules
261(72)
Hardware Requirements
261(1)
The Tock Capsule
262(1)
Why Write A Capsule?
263(1)
A Closer Look at The System Call Interface
264(1)
The Command System Call
265(4)
The Command Return Structure
269(1)
A Capsule's Architecture
269(1)
The API Definition
270(2)
Writing the Capsule
272(3)
Defining the Driver
275(2)
Defining the Font
277(2)
Connecting the LEDs
279(5)
Display Digits and Letters
284(4)
The Syscall API Implementation
288(3)
Registering the Capsule
291(1)
The Board Implementation
291(1)
The Kernel Resources Trait
291(8)
Starting The Kernel
299(5)
The Digit Letter Display Capsule Registration
304(9)
Writing the Userspace Library
313(1)
The Header File
314(1)
The Library
315(5)
Using the Library Inside the Process
320(2)
Run the Project on the Raspberry Pi Pico
322(1)
The Hardware Setup
322(3)
Setting Up the Driver
325(6)
Using the Driver
331(1)
Summary
332(1)
Chapter 9 Asynchronous Syscall Capsules
333(84)
Requirements
333(1)
Extending the API
334(2)
The command System Call
336(1)
The subscribe System Call
336(1)
The allow System Call
337(4)
Capsule Architecture
341(2)
Asynchronous Tock Drivers
343(2)
Writing the Capsule
345(1)
Defining the Capsule's Data Structures
346(16)
Storing the Buffer
362(4)
Executing the Commands
366(5)
The Text Display
371(10)
The Capsule Registration
381(8)
The Userspace Library Implementation
389(1)
The Userspace API
389(2)
The API Implementation
391(13)
Writing an Example Application
404(1)
The Synchronous Application
404(1)
The Asynchronous Application
405(3)
Using the Raspberry Pi Pico
408(6)
Summary
414(3)
Chapter 10 Service Capsules
417(56)
Requirements
417(1)
The Separation Between Syscall and Service Capsules
418(3)
The TextScreen Driver
421(2)
The Architecture of the Capsule
423(2)
The Text Screen API
425(4)
The Driver Implementation
429(1)
Driver Initialization
429(7)
The TextScreen HIL Implementation
436(13)
The Text Displaying Process
449(3)
The Setup Syscall API Implementation
452(2)
Capsule Registration
454(6)
Capsule Usage
460(1)
The Text Screen API
461(1)
The Setup API
462(3)
Use the Raspberry Pi Pico
465(5)
Summary
470(3)
Chapter 11 Tock Userspace Drivers
473(18)
Requirements
473(1)
The Tock Inter-Process Communication Library
474(2)
Use IPC to Implement a Userspace Driver
476(1)
The TextDisplay Service
476(8)
The Service API
484(4)
The Client Process
488(1)
Summary
489(2)
Chapter 12 Tock Systems Management
491(32)
Running Tockloader
491(1)
Use tockloader with the micro:bit
492(3)
Troubleshooting
495(1)
Use tockloader with the Raspberry Pi Pico
496(1)
Flash the Kernel
496(2)
Device Console
498(1)
Install/Remove Applications
499(1)
Tockloader Install
500(1)
Tockloader Uninstall
501(1)
Update an Application
501(1)
Inspect the Applications
502(1)
List Applications
502(1)
Inspect TAB Files
503(1)
Application Configurations
504(1)
Enable/Disable an Application
505(1)
Sticky Applications
506(1)
Fault Policies
506(3)
Write a Custom FaultPolicy
509(3)
Override the Fault Handler
512(2)
System Information
514(1)
Inspecting Processes
515(1)
System Status
516(1)
List Processes
517(1)
Control the System Processes
518(2)
Kernel Memory
520(1)
Summary
520(3)
Index 523
Alexandru Radovici has a PhD in the field of mobile computing and works as an Assistant Professor at the Politehnica University of Bucharest, teaching subjects related to operating systems, compilers and Internet of Things. Alexandru believes in the power of education and teaching is his passion, so 14 years ago he founded an NGO that focuses on organizing IT educational events. Alexandru is also the co-founder and CTO of Wyliodrin, being in touch with the latest IoT technologies. Alexandru has been a contributor to Tock, adding boards such as the STM32 Discovery Kit and adding support for screens and touch screens. 

Ioana Culic is currently a PhD candidate in the field of Internet of Things and the co-founder of Wyliodrin, a company that offers educational and industrial IoT solutions. She is a Teaching Assistant at the Politehnica University of Bucharest and has also been teaching IoT technologies to high-school and university students at different eventsfor the last five years. Despite the technical background, writing has always been Ioanas passion and she managed to mix the two. She has published several articles in magazines such as the MagPi and Make Magazine and books on Internet of Things technologies. Ioana has been porting JavaScript to Tock.