{"product_id":"139114","title":"Yocto: Easy to understand and in-depth ","description":"\u003ccenter\u003e\u003cdiv style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/tmgdisk01.cafe24.com\/images\/vs\/4172\/sv\/3jXPBvhOyeLBCBKwCDlxhEHAXM9nyW.png?v=1765072976\" style=\"max-width:100%;max-height:10px\"\u003e\u003c\/div\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\u003ccenter\u003e\n\n\u003cdiv style=\"width:95%\"\u003e\n\n\u003cdiv style=\"text-align:center;font-size:30px;font-weight:bolder;line-height:1.6em\"\u003e Yocto, easy to understand and deep \u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"border-bottom:1px;border-bottom-style:dotted;border-color:;padding-bottom:20px\"\u003e\u003ccenter\u003e\u003ctable align=\"center\" width=\"100%\"\u003e\u003ctbody style=\"border:0px\"\u003e\n\n\u003ctr\u003e\u003ctd align=\"center\" style=\"line-height:1.2em;text-align:center;font-size:18px;color:black;font-weight:bold;padding-bottom:20px;\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\u003ctr\u003e\u003ctd style=\"text-align:center\"\u003e\u003cimg src=\"https:\/\/image.yes24.com\/goods\/121161680\/XL\" style=\"max-width:100%;height:auto\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\n\n\n\u003c\/tbody\u003e\u003c\/table\u003e\u003c\/center\u003e\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;{split_style6}padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e Description \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;word-break:break-all;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eBook Introduction\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e  \u003cdiv\u003eYocto is an open source project that helps develop custom Linux that runs on any hardware.\u003cbr\u003e There are many cases where you have to learn Yocto in the field, or you know Yocto but only superficially.\u003cbr\u003e This book is designed for developers who want to make development smoother.\u003cbr\u003e It covers most of the knowledge you need to use in the field, starting with the build tool bitbake.\u003cbr\u003e It includes simple examples to help you understand the concepts easily, and describes how to write everything from applications to kernel drivers using Yocto.\u003cbr\u003e Additionally, the latest Yocto version, Kirkstone, is included to keep up with the latest trends.\u003cbr\u003e Readers with experience with embedded Linux will find the book's practical guide to successfully using Yocto helpful.\u003cbr\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003cul\u003e\u003cli\u003e You can preview some of the book's contents. \u003cbr\u003e\u003cspan\u003ePreview\u003c\/span\u003e\n\n\u003c\/li\u003e\u003c\/ul\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003eindex\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eChapter 1.\u003cbr\u003e Introduction to Yocto and the Concept of Abstraction\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 1.1 Abstraction and the Yocto Project\u003cbr\u003e 1.2 Yocto and Future Learning Methods\u003cbr\u003e 1.3 Yocto Project\u003cbr\u003e 1.4 Installation files required for practice\u003cbr\u003e 1.5 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 2.\u003cbr\u003e bitbake\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 2.1 Get Bitbake source\u003cbr\u003e 2.2 Metadata\u003cbr\u003e 2.3 Metadata files\u003cbr\u003e 2.4 Bitbake Grammar First\u003cbr\u003e 2.5 Running bitbake\u003cbr\u003e 2.6 Print “Hello! bitbake world!” with bitbake\u003cbr\u003e 2.7 Interpreting the metadata generated so far\u003cbr\u003e 2.8 Example of bitbake execution procedure\u003cbr\u003e 2.9 Adding a task using the addtask directive\u003cbr\u003e 2.10 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 3.\u003cbr\u003e Poky\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 3.1 OpenEmbedded\u003cbr\u003e 3.2 Download Poky source and run the build\u003cbr\u003e 3.3 Running the build results in the QEMU emulator\u003cbr\u003e 3.4 Checking variable values ​​through bitbake environment variable options\u003cbr\u003e 3.5 Comparison of the software build process for Linux hosts and the build process for the OpenEmbedded build system.\u003cbr\u003e 3.6 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 4.\u003cbr\u003e Work to improve build speed\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 4.1 Getting the source \u003cbr\u003e4.2 Configuring your own source repository PREMIRRORS\u003cbr\u003e 4.3 Creating Your Own Shared State Cache\u003cbr\u003e 4.4 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 5.\u003cbr\u003e Create a new layer and create a recipe\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 5.1 Writing examples to practice grammar\u003cbr\u003e 5.2 Bitbake Grammar Part 2\u003cbr\u003e 5.3 Writing a Hello Application Recipe\u003cbr\u003e 5.4 License\u003cbr\u003e 5.5 Recipe Expansion File\u003cbr\u003e 5.6 The Role of BBFILE_COLLECTIONS and BBFILE_PATTERN Variables\u003cbr\u003e 5.7 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 6.\u003cbr\u003e Adding an initialization manager and debugging via log files\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 6.1 Adding a systemd initialization manager\u003cbr\u003e 6.2 Debugging with Logs\u003cbr\u003e 6.3 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 7.\u003cbr\u003e Optimizing your builds using useful OpenEmbedded core class features.\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 7.1 Building the nano editor using Autotools\u003cbr\u003e 7.2 Build History\u003cbr\u003e 7.3 Reducing disk space with rm-work\u003cbr\u003e 7.4 Building source from external sources using externalsrc\u003cbr\u003e 7.5 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 8.\u003cbr\u003e Dependency\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 8.1 Types of Dependencies\u003cbr\u003e 8.2 PROVIDES variable in recipes that provide dependencies\u003cbr\u003e 8.3 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 9.\u003cbr\u003e Building package groups and build environments\u003c\/b\u003e\u003cbr\u003e \u003cbr\u003e9.1 IMAGE_INSTALL, IMAGE_FEATURES variables\u003cbr\u003e 9.2 Package Group\u003cbr\u003e 9.3 Predefined Package Groups\u003cbr\u003e 9.4 Building a Build Environment with a Custom Build Script\u003cbr\u003e 9.5 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 10.\u003cbr\u003e Creating a custom image and BSP layer based on the Poky distribution\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 10.1 Creating a Custom Image Recipe\u003cbr\u003e 10.2 BSP Layer\u003cbr\u003e 10.3 Bitbake Grammar Part 3\u003cbr\u003e 10.4 Creating a Custom BSP Layer\u003cbr\u003e 10.5 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 11.\u003cbr\u003e Kernel Recipe\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 11.1 Kernel Configuration\u003cbr\u003e 11.2 Create patches for changed or added kernel environment options.\u003cbr\u003e 11.3 Create a patch for the changed or added kernel source\u003cbr\u003e 11.4 Add the generated patch and configuration fragment files to the kernel recipe.\u003cbr\u003e 11.5 Modifying code using devshell\u003cbr\u003e 11.6 Kernel Metadata\u003cbr\u003e 11.7 Configuring non-linux-yocto style kernel recipes\u003cbr\u003e 11.8 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 12.\u003cbr\u003e Extension of kernel recipes\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 12.1 Using local kernel sources via the externalsrc class\u003cbr\u003e 12.2 Using the defconfig file in the kernel source\u003cbr\u003e 12.3 Creating kernel modules outside the kernel source \u003cbr\u003e12.4 Installing Kernel Modules Using the MACHINE_EXTRA_RDEPENDS and MACHINE_ESSENTIAL_EXTRA_RDEPENDS Variables\u003cbr\u003e 12.5 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 13.\u003cbr\u003e Distribution layer\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 13.1 Distribution Layer\u003cbr\u003e 13.2 Creating Your Own Distribution Layer\u003cbr\u003e 13.3 Differences Between DISTRO_FEATURES, IMAGE_FEATURES, and MACHINE_FEATURES.391\u003cbr\u003e 13.4 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 14.\u003cbr\u003e Customer Layer\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 14.1 Creating a Customer Layer\u003cbr\u003e 14.2 Summary of the Great System\u003cbr\u003e 14.3 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 15.\u003cbr\u003e Package\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 15.1 Package tasks during the build process\u003cbr\u003e 15.2 RPM package\u003cbr\u003e 15.3 yum\u003cbr\u003e 15.4 Package Practice through Library Creation\u003cbr\u003e 15.5 Improved library generation package\u003cbr\u003e 15.6 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 16.\u003cbr\u003e do_rootfs and do_image tasks that run the package installation process\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 16.1 do_rootfs task\u003cbr\u003e 16.2 Customizing the Root File System\u003cbr\u003e 16.3 Post-installation script\u003cbr\u003e 16.4 Creating the final image by executing the do_image task\u003cbr\u003e 16.5 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 17.\u003cbr\u003e Shared state cache and signatures\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 17.1 Shared State Cache\u003cbr\u003e 17.2 Signature \u003cbr\u003e17.3 Optimizing the Already Created Shared State Cache\u003cbr\u003e 17.4 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 18.\u003cbr\u003e kirkstone\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 18.1 Features of Kirkstone\u003cbr\u003e 18.2 Installing Kirkstone\u003cbr\u003e Migrating examples from version 18.3 dunfell to kirkstone\u003cbr\u003e 18.4 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 19. SDK (Software Development Kit)\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 19.1 Creating an SDK\u003cbr\u003e 19.2 Creating a Target Application Using the Installed SDK\u003cbr\u003e 19.3 Creating a Target Kernel Module Using the Installed SDK\u003cbr\u003e 19.4 meta-toolchain\u003cbr\u003e 19.5 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 20.\u003cbr\u003e Other topics not covered\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 20.1 Python Function and Variable Extensions\u003cbr\u003e 20.2 Anonymous Python functions\u003cbr\u003e 20.3 Bitbake Grammar Fourth\u003cbr\u003e 20.4 Using the oe-pkgdata-util tool\u003cbr\u003e 20.5 PACKAGECONFIG variables\u003cbr\u003e 20.6 Distribution of Source Code\u003cbr\u003e 20.7 Porting an already created layer\u003cbr\u003e 20.8 Summary\u003cbr\u003e\u003cbr\u003e \u003cb\u003eChapter 21.\u003cbr\u003e devtool\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e 21.1 Devtool Overview\u003cbr\u003e 21.2 Creating an application using devtool\u003cbr\u003e 21.3 Creating a kernel module using devtool\u003cbr\u003e 21.4 Summary\u003cbr\u003e\u003cbr\u003e Special appendix\u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cbr\u003e\u003cdiv\u003e\u003ch5\u003e \u003cb\u003ePublisher's Review\u003c\/b\u003e\n\u003c\/h5\u003e\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cdiv\u003e \u003cb\u003eWhat this book covers\u003c\/b\u003e\u003cbr\u003e \u003cbr\u003e- Explains the basic operations of bitbake so that beginners can learn the structure and concepts of Yocto.\u003cbr\u003e -Describes the basic operation of the Open Embedded build system, including Open Embedded Core and Bitbake.\u003cbr\u003e -How to write code for applications, kernel drivers, etc. using Yocto\u003cbr\u003e -The concept of kirkstone, the latest Yocto version, and how to migrate from the Dunfell version to kirkstone.\u003cbr\u003e - Description and examples of the established Yocto layers based on a layered architecture.\u003cbr\u003e - Explanation and examples of packages and dependencies, the tricky part of Yocto.\u003cbr\u003e - Description and examples of package development using SDK and devtool\u003cbr\u003e - Easy and efficient code writing using embedded cores provided by Yocto\u003cbr\u003e\u003cbr\u003e \u003cb\u003eTarget audience for this book\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e - A beginner who has always been interested in Yocto but doesn't know where or how to start studying. \u003cbr\u003e-A practitioner who is working with Yocto but only vaguely knows how to use it and does not know the overall structure and principles.\u003cbr\u003e -Developers who want to create Linux-based programs using Yocto\u003cbr\u003e\u003cbr\u003e \u003cb\u003eStructure of this book\u003c\/b\u003e\u003cbr\u003e\u003cbr\u003e In Chapter 1, we will learn what Yocto is and understand the meaning of abstraction contained in Yocto.\u003cbr\u003e Chapter 2 takes a closer look at bitbake, the heart of the build system in Yocto.\u003cbr\u003e In Chapter 3, we learn about Poky, which contains an open embedded build system.\u003cbr\u003e Chapter 4 presents two methods to speed up your build before getting started with the practical exercises.\u003cbr\u003e So, you'll learn how to configure your own PREMIRRORS and shared state cache.\u003cbr\u003e In Chapter 5, you will create a new layer, write your own recipe file, and learn the related grammar.\u003cbr\u003e \u003cbr\u003eIn Chapter 6, we will learn how to run the application binary created in Chapter 5 in the init system, systemd, and also learn how to debug it.\u003cbr\u003e Chapter 7 covers build optimization methods using classes provided by Open Embedded Core.\u003cbr\u003e Learn how to build applications easily using Autotools, externalsrc for locating sources locally, rm_work for deleting unnecessary build artifacts, and the buildhistory class for storing build information.\u003cbr\u003e Chapter 8 covers dependencies between recipes and packages.\u003cbr\u003e Dependencies include build dependencies and runtime dependencies, which we will examine in detail.\u003cbr\u003e In Chapter 9, we'll learn about package groups and set up our own build environment for future exercises.\u003cbr\u003e From Chapter 10 onwards, we will create custom images and custom BSP layers based on the Poky distribution. \u003cbr\u003eThis content is learned based on a layered architecture.\u003cbr\u003e By creating layers one by one, we will understand the work actually done in the field.\u003cbr\u003e\u003cbr\u003e In Chapter 11, we learn about kernel recipes.\u003cbr\u003e The Open Embedded Build System provides classes that help you build kernels easily.\u003cbr\u003e This class allows you to easily apply patches and configuration options.\u003cbr\u003e We will also learn about kernel metadata provided by Yocto.\u003cbr\u003e In Chapter 12, we expand on the kernel recipe we learned in Chapter 11 and add more functionality.\u003cbr\u003e We will also learn how to store kernel sources externally by inheriting the externalsrc class and how to use the defconfig file in the kernel source.\u003cbr\u003e You will also learn how to build kernel modules outside the kernel source tree.\u003cbr\u003e In Chapter 13, we learn about the distribution layer. \u003cbr\u003eThis allows us to understand that the deployment layer has preferences for builds across deployments.\u003cbr\u003e And create your own distribution layer to increase your understanding of the distribution layer.\u003cbr\u003e In Chapter 14, we will create the customer layer, the top layer of the layered architecture, to understand how to add and change Yocto-based code distributed by chip vendors in real-world applications.\u003cbr\u003e In Chapter 15, we learn about packages.\u003cbr\u003e To put the results created in a cross-build environment into an actual target, they must be packaged.\u003cbr\u003e To understand packages, we will also learn about creating shared libraries.\u003cbr\u003e\u003cbr\u003e In Chapter 16, we will learn the package installation process.\u003cbr\u003e You will learn how to create the root filesystem, which is the image that will ultimately be created. \u003cbr\u003eChapter 17 goes into more detail about the shared state cache we built in Chapter 4, and we also learn how to optimize the shared state cache.\u003cbr\u003e In Chapter 18, we learn about Kirkstone, the long-term support version of Yocto.\u003cbr\u003e Learn about Kirkstone's unique features and install an actual Kirkstone.\u003cbr\u003e And let's migrate the example previously written in the dunfell version to kirkstone.\u003cbr\u003e In Chapter 19, we learn about SDK.\u003cbr\u003e Since SDK is used as a development environment when developing applications or kernel modules externally, learn how to create an SDK.\u003cbr\u003e Then, install the generated SDK on the host and create an application and external kernel module using the generated SDK.\u003cbr\u003e Chapter 20 covers Python functions, anonymous Python functions, and bitbake syntax. \u003cbr\u003eYou will also learn how to use the oe-pkgdta-util tool, how to configure builds on a feature-by-feature basis using the PACKAGECONFIG variable, how to distribute the source code provided by OpenEmbeddedCore, and how to port and use pre-built layers in your current project.\u003cbr\u003e In Chapter 21, we learn about devtool.\u003cbr\u003e Previously, when creating a new package, we created a layer, wrote a recipe, added the recipe to the layer.conf file, and added the package to the image recipe.\u003cbr\u003e Performing this process requires some effort and basic knowledge of Yocto.\u003cbr\u003e However, using devtool reduces the effort and allows you to develop applications or kernel modules easily even without basic knowledge of Yocto.\u003cbr\u003e Therefore, in Chapter 21, we will learn the concept of devtool and learn how to use devtool through simple examples.\u003cbr\u003e\u003cbr\u003e \u003cb\u003eAuthor's Note\u003c\/b\u003e\u003cbr\u003e \u003cbr\u003eA developer's life seems very difficult.\u003cbr\u003e Because in this rapidly changing era, there are many things to learn and know.\u003cbr\u003e Especially when you jump into becoming a Linux developer, you will realize that the process is by no means easy.\u003cbr\u003e When you look at Linux code, you can often be overwhelmed by its vast code and structure.\u003cbr\u003e Just knowing the C language doesn't make Linux code stand out, and these days, you also need to learn Python, C++, Rust, and other codes, so the speed of interpreting the code is very slow.\u003cbr\u003e\u003cbr\u003e When I first encountered Yocto, I roughly wrote code that would run by referencing code written by other developers, but I couldn't figure out why it had to be done this way or in what order it would be executed. \u003cbr\u003eFor example, there was a time when all I knew about writing a Linux driver was 'write the upstream address in SRC_URI, put the code so that it can be compiled in do_compile, and deploy it in do_install'.\u003cbr\u003e Because of this situation, improving desired functions or reflecting new ideas was put on the back burner, and the sad reality of having to tailor code within the boundaries of narrow background knowledge was happening.\u003cbr\u003e\u003cbr\u003e As a developer, you have to structure and create code the way you want.\u003cbr\u003e Therefore, I think that developers at the same level as me at the time have a responsibility to increase their knowledge of Yocto to prevent such a sad incident from happening.\u003cbr\u003e If there is anyone who is frustrated because they don't know Yocto well like I did back then, I would like to tell them that it is time to take some time to learn the basic concepts and usage of Yocto. \u003cbr\u003eThere is a phrase I like from a book by a popular YouTuber called 'Life is a battle.'\u003cbr\u003e Don't worry about getting older, don't worry about starting too late, don't worry about not doing it right.\u003cbr\u003e It's never too late in this world.\u003cbr\u003e “There is only ‘completeness’ and ‘incompleteness’ in the world.” \u003c\/div\u003e\n\u003cdiv\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cdiv style=\"width:95%;padding-top:20px;padding-bottom:20px\"\u003e\n\n\u003cdiv style=\"text-align:left;font-size:16px;font-weight:bold;padding-bottom:20px\"\u003e GOODS SPECIFICS \u003c\/div\u003e\n\n\u003cdiv style=\"text-align:left;font-size:14px;line-height:1.6em;\"\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eDate of issue:\u003c\/strong\u003e August 28, 2023\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003ePage count, weight, size:\u003c\/strong\u003e 612 pages | 188*235*28mm\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN13:\u003c\/strong\u003e 9791161757780\u003c\/div\u003e\n\n\u003cdiv style=\"width:100%;margin-bottom:5px;line-height:1.6em;font-size:14px\"\u003e - \u003cstrong\u003eISBN10:\u003c\/strong\u003e 1161757783 \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n\u003ccenter\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003ccenter\u003e\u003ctable\u003e\u003ctr\u003e\u003ctd style=\"height:10px\"\u003e\u003c\/td\u003e\u003c\/tr\u003e\u003c\/table\u003e\u003c\/center\u003e\n\n\u003cspan\u003e\u003c\/span\u003e\n\n\u003c\/center\u003e\n\n\n\u003c\/center\u003e","brand":"LIBRAIRIE COREENNE","offers":[{"title":"Default Title","offer_id":43893340373034,"sku":"139114","price":52.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2750\/5962\/files\/141548fe25c2c465761aef739f90a9bd.jpg?v=1765397297","url":"https:\/\/librairie.coreenne.fr\/en\/products\/139114","provider":"LIBRAIRIE COREENNE","version":"1.0","type":"link"}