Home > Computing and Information Technology > Operating systems > Open source and other operating systems > Linux > Embedded Linux Primer: A Practical Real-World Approach(Pearson Open Source Software Development Series)
12%
Embedded Linux Primer: A Practical Real-World Approach(Pearson Open Source Software Development Series)

Embedded Linux Primer: A Practical Real-World Approach(Pearson Open Source Software Development Series)

4.4       |  9 Reviews 
5
4
3
2
1

Out of Stock


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Notify me when this book is in stock
Add to Wishlist

About the Book

Up-to-the-Minute, Complete Guidance for Developing Embedded Solutions with Linux   Linux has emerged as today’s #1 operating system for embedded products. Christopher Hallinan’s Embedded Linux Primer has proven itself as the definitive real-world guide to building efficient, high-value, embedded systems with Linux. Now, Hallinan has thoroughly updated this highly praised book for the newest Linux kernels, capabilities, tools, and hardware support, including advanced multicore processors.   Drawing on more than a decade of embedded Linux experience, Hallinan helps you rapidly climb the learning curve, whether you’re moving from legacy environments or you’re new to embedded programming. Hallinan addresses today’s most important development challenges and demonstrates how to solve the problems you’re most likely to encounter. You’ll learn how to build a modern, efficient embedded Linux development environment, and then utilize it as productively as possible. Hallinan offers up-to-date guidance on everything from kernel configuration and initialization to bootloaders, device drivers to file systems, and BusyBox utilities to real-time configuration and system analysis. This edition adds entirely new chapters on UDEV, USB, and open source build systems.   Tour the typical embedded system and development environment and understand its concepts and components. Understand the Linux kernel and userspace initialization processes. Preview bootloaders, with specific emphasis on U-Boot. Configure the Memory Technology Devices (MTD) subsystem to interface with flash (and other) memory devices. Make the most of BusyBox and latest open source development tools. Learn from expanded and updated coverage of kernel debugging. Build and analyze real-time systems with Linux. Learn to configure device files and driver loading with UDEV. Walk through detailed coverage of the USB subsystem. Introduces the latest open source embedded Linux build systems. Reference appendices include U-Boot and BusyBox commands.

Table of Contents:
Foreword for the First Edition     xxv Foreword for the Second Edition     xxvi Preface     xxvii Acknowledgments for the First Edition     xxxiii Acknowledgments for the Second Edition     xxxv About the Author     xxxvi Chapter 1 Introduction     1 1.1 Why Linux     2 1.2 Embedded Linux Today     3 1.3 Open Source and the GPL     3   1.3.1 Free Versus Freedom     4 1.4 Standards and Relevant Bodies     5   1.4.1 Linux Standard Base     5   1.4.2 Linux Foundation     6   1.4.3 Carrier-Grade Linux     6   1.4.4 Mobile Linux Initiative: Moblin     7   1.4.5 Service Availability Forum     7 1.5 Summary     8   1.5.1 Suggestions for Additional Reading     8 Chapter 2 The Big Picture     9 2.1 Embedded or Not?     10   2.1.1 BIOS Versus Bootloader      11 2.2 Anatomy of an Embedded System     12   2.2.1 Typical Embedded Linux Setup     13   2.2.2 Starting the Target Board     14   2.2.3 Booting the Kernel     16   2.2.4 Kernel Initialization: Overview     18   2.2.5 First User Space Process: init     19 2.3 Storage Considerations     20   2.3.1 Flash Memory     20   2.3.2 NAND Flash     22   2.3.3 Flash Usage     23   2.3.4 Flash File Systems     24   2.3.5 Memory Space     25   2.3.6 Execution Contexts     26   2.3.7 Process Virtual Memory     28   2.3.8 Cross-Development Environment     30 2.4 Embedded Linux Distributions     32   2.4.1 Commercial Linux Distributions     33   2.4.2 Do-It-Yourself Linux Distributions     33 2.5 Summary     34   2.5.1 Suggestions for Additional Reading     35 Chapter 3 Processor Basics     37 3.1 Stand-Alone Processors     38   3.1.1 IBM 970FX     39   3.1.2 Intel Pentium M     39   3.1.3 Intel Atom™     40   3.1.4 Freescale MPC7448     40   3.1.5 Companion Chipsets     41 3.2 Integrated Processors: Systems on Chip     43   3.2.1 Power Architecture     44   3.2.2 Freescale Power Architecture     44   3.2.3 Freescale PowerQUICC I     45   3.2.4 Freescale PowerQUICC II     46   3.2.5 PowerQUICC II Pro     47   3.2.6 Freescale PowerQUICC III  48   3.2.7 Freescale QorIQ™     48   3.2.8 AMCC Power Architecture     50   3.2.9 MIPS     53   3.2.10 Broadcom MIPS     54   3.2.11 Other MIPS     55   3.2.12 ARM     55   3.2.13 TI ARM     56   3.2.14 Freescale ARM     58   3.2.15 Other ARM Processors     59 3.3 Other Architectures     59 3.4 Hardware Platforms     60   3.4.1 CompactPCI     60   3.4.2 ATCA     60 3.5 Summary     61   3.5.1 Suggestions for Additional Reading     62 Chapter 4 The Linux Kernel: A Different Perspective     63 4.1 Background     64   4.1.1 Kernel Versions     65   4.1.2 Kernel Source Repositories     67   4.1.3 Using git to Download a Kernel     68 4.2 Linux Kernel Construction     68   4.2.1 Top-Level Source Directory     69   4.2.2 Compiling the Kernel     69   4.2.3 The Kernel Proper: vmlinux     72   4.2.4 Kernel Image Components     73   4.2.5 Subdirectory Layout     77 4.3 Kernel Build System     78   4.3.1 The Dot-Config     78   4.3.2 Configuration Editor(s     80   4.3.3 Makefile Targets     83 4.4 Kernel Configuration     89   4.4.1 Custom Configuration Options     91   4.4.2 Kernel Makefiles     95 4.5 Kernel Documentation     96 4.6 Obtaining a Custom Linux Kernel     96   4.6.1 What Else Do I Need     97 4.7 Summary     97   4.7.1 Suggestions for Additional Reading     98 Chapter 5 Kernel Initialization     99 5.1 Composite Kernel Image: Piggy and Friends     100   5.1.1 The Image Object     103   5.1.2 Architecture Objects     104   5.1.3 Bootstrap Loader     105   5.1.4 Boot Messages     106 5.2 Initialization Flow of Control     109   5.2.1 Kernel Entry Point: head.o     111   5.2.2 Kernel Startup: main.c     113   5.2.3 Architecture Setup     114 5.3 Kernel Command-Line Processing     115   5.3.1 The __setup Macro     116 5.4 Subsystem Initialization     122   5.4.1 The *__initcall Macros     122 5.5 The init Thread     125   5.5.1 Initialization Via initcalls     126   5.5.2 initcall_debug     127   5.5.3 Final Boot Steps     127 5.6 Summary     129   5.6.1 Suggestions for Additional Reading     130 Chapter 6 User Space Initialization     131 6.1 Root File System     132   6.1.1 FHS: File System Hierarchy Standard     133   6.1.2 File System Layout     133   6.1.3 Minimal File System     134   6.1.4 The Embedded Root FS Challenge     136   6.1.5 Trial-and-Error Method     137   6.1.6 Automated File System Build Tools     137 6.2 Kernel’s Last Boot Steps     137   6.2.1 First User Space Program     139   6.2.2 Resolving Dependencies     139   6.2.3 Customized Initial Process     140 6.3 The init Process     140   6.3.1 inittab     143   6.3.2 Sample Web Server Startup Script     145 6.4 Initial RAM Disk     146   6.4.1 Booting with initrd     147   6.4.2 Bootloader Support for initrd     148   6.4.3 initrd Magic: linuxrc     150   6.4.4 The initrd Plumbing     151   6.4.5 Building an initrd Image     152 6.5 Using initramfs     153   6.5.1 Customizing initramfs     154 6.6 Shutdown     156 6.7 Summary     156   6.7.1 Suggestions for Additional Reading     157 Chapter 7 Bootloaders     159 7.1 Role of a Bootloader     160 7.2 Bootloader Challenges     161   7.2.1 DRAM Controller     161   7.2.2 Flash Versus RAM     162   7.2.3 Image Complexity     162   7.2.4 Execution Context     165 7.3 A Universal Bootloader: Das U-Boot     166   7.3.1 Obtaining U-Boot     166   7.3.2 Configuring U-Boot     167   7.3.3 U-Boot Monitor Commands     169   7.3.4 Network Operations     170   7.3.5 Storage Subsystems     173   7.3.6 Booting from Disk     174 7.4 Porting U-Boot     174   7.4.1 EP405 U-Boot Port     175   7.4.2 U-Boot Makefile Configuration Target     176   7.4.3 EP405 First Build     177   7.4.4 EP405 Processor Initialization     178   7.4.5 Board-Specific Initialization     181   7.4.6 Porting Summary     184   7.4.7 U-Boot Image Format     185 7.5 Device Tree Blob (Flat Device Tree     187   7.5.1 Device Tree Source     189   7.5.2 Device Tree Compiler     192   7.5.3 Alternative Kernel Images Using DTB     193 7.6 Other Bootloaders     194   7.6.1 Lilo     194   7.6.2 GRUB     195   7.6.3 Still More Bootloaders     197 7.7 Summary     197   7.7.1 Suggestions for Additional Reading     198 Chapter 8 Device Driver Basics     201 8.1 Device Driver Concepts     202   8.1.1 Loadable Modules     203   8.1.2 Device Driver Architecture     204   8.1.3 Minimal Device Driver Example     204   8.1.4 Module Build Infrastructure     205   8.1.5 Installing a Device Driver     209   8.1.6 Loading a Module     210   8.1.7 Module Parameters     211 8.2 Module Utilities     212   8.2.1 insmod     212   8.2.2 lsmod     213   8.2.3 modprobe     213   8.2.4 depmod     214   8.2.5 rmmod     215   8.2.6 modinfo     216 8.3 Driver Methods     217   8.3.1 Driver File System Operations     217   8.3.2 Allocation of Device Numbers     220   8.3.3 Device Nodes and mknod     220 8.4 Bringing It All Together     222 8.5 Building Out-of-Tree Drivers     223 8.6 Device Drivers and the GPL     224 8.7 Summary     225   8.7.1 Suggestions for Additional Reading     226 Chapter 9 File Systems     227 9.1 Linux File System Concepts     228   9.1.1 Partitions     229 9.2 ext2     230   9.2.1 Mounting a File System     232   9.2.2 Checking File System Integrity     233 9.3 ext3     235 9.4 ext4     237 9.5 ReiserFS     238 9.6 JFFS2     239   9.6.1 Building a JFFS2 Image     240 9.7 cramfs     242 9.8 Network File System     244   9.8.1 Root File System on NFS     246 9.9 Pseudo File Systems     248   9.9.1 /proc File System     249   9.9.2 sysfs     252 9.10 Other File Systems     255 9.11 Building a Simple File System     256 9.12 Summary     258   9.12.1 Suggestions for Additional Reading     259 Chapter 10 MTD Subsystem     261 10.1 MTD Overview     262   10.1.1 Enabling MTD Services     263   10.1.2 MTD Basics     265   10.1.3 Configuring MTD on Your Target     267 10.2 MTD Partitions     267   10.2.1 Redboot Partition Table Partitioning     269   10.2.2 Kernel Command-Line Partitioning     273   10.2.3 Mapping Driver     274   10.2.4 Flash Chip Drivers     276   10.2.5 Board-Specific Initialization     276 10.3 MTD Utilities     279   10.3.1 JFFS2 Root File System     281 10.4 UBI File System     284   10.4.1 Configuring for UBIFS     284   10.4.2 Building a UBIFS Image     284   10.4.3 Using UBIFS as the Root File System     287 10.5 Summary     287   10.5.1 Suggestions for Additional Reading     288 Chapter 11 BusyBox     289 11.1 Introduction to BusyBox     290   11.1.1 BusyBox Is Easy     291 11.2 BusyBox Configuration     291   11.2.1 Cross-Compiling BusyBox     293 11.3 BusyBox Operation     293   11.3.1 BusyBox init     297   11.3.2 Sample rcS Initialization Script     299   11.3.3 BusyBox Target Installation     300   11.3.4 BusyBox Applets     302 11.4 Summary     303   11.4.1 Suggestions for Additional Reading     304 Chapter 12 Embedded Development Environment     305 12.1 Cross-Development Environment     306   12.1.1 “Hello World” Embedded     307 12.2 Host System Requirements     311   12.2.1 Hardware Debug Probe     311 12.3 Hosting Target Boards     312   12.3.1 TFTP Server     312   12.3.2 BOOTP/DHCP Server     313   12.3.3 NFS Server     316   12.3.4 Target NFS Root Mount     318   12.3.5 U-Boot NFS Root Mount Example     320 12.4 Summary     322   12.4.1 Suggestions for Additional Reading     323 Chapter 13 Development Tools     325 13.1 GNU Debugger (GDB)     326   13.1.1 Debugging a Core Dump     327   13.1.2 Invoking GDB     329   13.1.3 Debug Session in GDB     331 13.2 Data Display Debugger     333 13.3 cbrowser/cscope     335 13.4 Tracing and Profiling Tools     337   13.4.1 strace     337   13.4.2 strace Variations     341   13.4.3 ltrace     343   13.4.4 ps     344   13.4.5 top     346   13.4.6 mtrace     348   13.4.7 dmalloc     350   13.4.8 Kernel Oops     353 13.5 Binary Utilities     355   13.5.1 readelf     355   13.5.2 Examining Debug Information Using readelf     357   13.5.3 objdump     359   13.5.4 objcopy     360 13.6 Miscellaneous Binary Utilities     361   13.6.1 strip     361   13.6.2 addr2line     361   13.6.3 strings     362   13.6.4 ldd     362   13.6.5 nm     363   13.6.6 prelink     364 13.7 Summary     364   13.7.1 Suggestions for Additional Reading     365 Chapter 14 Kernel Debugging Techniques     367 14.1 Challenges to Kernel Debugging     368 14.2 Using KGDB for Kernel Debugging     369   14.2.1 KGDB Kernel Configuration     371   14.2.2 Target Boot with KGDB Support     372   14.2.3 Useful Kernel Breakpoints     376   14.2.4 Sharing a Console Serial Port with KGDB     377   14.2.5 Debugging Very Early Kernel Code     379   14.2.6 KGDB Support in the Mainline Kernel     380 14.3 Kernel Debugging Techniques     381   14.3.1 gdb Remote Serial Protocol     382   14.3.2 Debugging Optimized Kernel Code     385   14.3.3 GDB User-Defined Commands     392   14.3.4 Useful Kernel GDB Macros     393   14.3.5 Debugging Loadable Modules     402   14.3.6 printk Debugging     407   14.3.7 Magic SysReq Key     409 14.4 Hardware-Assisted Debugging     410   14.4.1 Programming Flash Using a JTAG Probe     411   14.4.2 Debugging with a JTAG Probe     413 14.5 When It Doesn’t Boot     417   14.5.1 Early Serial Debug Output     417   14.5.2 Dumping the printk Log Buffer     417   14.5.3 KGDB on Panic     420 14.6 Summary     421   14.6.1 Suggestions for Additional Reading     422 Chapter 15 Debugging Embedded Linux Applications     423 15.1 Target Debugging     424 15.2 Remote (Cross) Debugging     424   15.2.1 gdbserver     427 15.3 Debugging with Shared Libraries     429   15.3.1 Shared Library Events in GDB     431 15.4 Debugging Multiple Tasks     435   15.4.1 Debugging Multiple Processes     435   15.4.2 Debugging Multithreaded Applications     438   15.4.3 Debugging Bootloader/Flash Code     441 15.5 Additional Remote Debug Options     442   15.5.1 Debugging Using a Serial Port     442   15.5.2 Attaching to a Running Process     442 15.6 Summary     443   15.6.1 Suggestions for Additional Reading     444 Chapter 16 Open Source Build Systems     445 16.1 Why Use a Build System?     446 16.2 Scratchbox     447   16.2.1 Installing Scratchbox     447   16.2.2 Creating a Cross-Compilation Target     448 16.3 Buildroot     451   16.3.1 Buildroot Installation     451   16.3.2 Buildroot Configuration     451   16.3.3 Buildroot Build     452 16.4 OpenEmbedded     454   16.4.1 OpenEmbedded Composition     455   16.4.2 BitBake Metadata     456   16.4.3 Recipe Basics     456   16.4.4 Metadata Tasks     460   16.4.5 Metadata Classes     461   16.4.6 Configuring OpenEmbedded     462   16.4.7 Building Images     463 16.5 Summary     464   16.5.1 Suggestions for Additional Reading     464 Chapter 17 Linux and Real Time     465 17.1 What Is Real Time     466   17.1.1 Soft Real Time     466   17.1.2 Hard Real Time     467   17.1.3 Linux Scheduling     467   17.1.4 Latency     467 17.2 Kernel Preemption     469   17.2.1 Impediments to Preemption     469   17.2.2 Preemption Models     471   17.2.3 SMP Kernel     472   17.2.4 Sources of Preemption Latency     473 17.3 Real-Time Kernel Patch     473   17.3.1 Real-Time Features     475   17.3.2 O(1) Scheduler     476   17.3.3 Creating a Real-Time Process     477 17.4 Real-Time Kernel Performance Analysis     478   17.4.1 Using Ftrace for Tracing     478   17.4.2 Preemption Off Latency Measurement     479   17.4.3 Wakeup Latency Measurement     481   17.4.4 Interrupt Off Timing     483   17.4.5 Soft Lockup Detection     484 17.5 Summary     485   17.5.1 Suggestion for Additional Reading     485 Chapter 18 Universal Serial Bus     487 18.1 USB Overview     488   18.1.1 USB Physical Topology     488   18.1.2 USB Logical Topology     490   18.1.3 USB Revisions     491   18.1.4 USB Connectors     492   18.1.5 USB Cable Assemblies     494   18.1.6 USB Modes     494 18.2 Configuring USB     495   18.2.1 USB Initialization     497 18.3 sysfs and USB Device Naming     500 18.4 Useful USB Tools     502   18.4.1 USB File System     502   18.4.2 Using usbview     504   18.4.3 USB Utils (lsusb     507 18.5 Common USB Subsystems     508   18.5.1 USB Mass Storage Class     508   18.5.2 USB HID Class     511   18.5.3 USB CDC Class Drivers     512   18.5.4 USB Network Support     515 18.6 USB Debug     516   18.6.1 usbmon     517   18.6.2 Useful USB Miscellanea     518 18.7 Summary     519   18.7.1 Suggestions for Additional Reading     519 Chapter 19 udev      521 19.1 What Is udev?     522 19.2 Device Discovery     523 19.3 Default udev Behavior     525 19.4 Understanding udev Rules     527   19.4.1 Modalias     530   19.4.2 Typical udev Rules Configuration     533   19.4.3 Initial System Setup for udev     535 19.5 Loading Platform Device Drivers     538 19.6 Customizing udev Behavior     540   19.6.1 udev Customization Example: USB Automounting     540 19.7 Persistent Device Naming     541   19.7.1 udev Helper Utilities     542 19.8 Using udev with busybox     545   19.8.1 busybox mdev     545   19.8.2 Configuring mdev     547 19.9 Summary     548   19.9.1 Suggestions for Additional Reading     548 Appendix A GNU Public License     549 Preamble     550 Terms and Conditions for Copying, Distribution, and Modification     551 No Warranty     555 Appendix B U-Boot Configurable Commands     557 Appendix C BusyBox Commands     561 Appendix D SDRAM Interface Considerations     571 D.1 SDRAM Basics     572   D.1.1 SDRAM Refresh     573 D.2 Clocking     574 D.3 SDRAM Setup     575 D.4 Summary     580   D.4.1 Suggestions for Additional Reading     580 Appendix E Open Source Resources     581 Source Repositories and Developer Information     582 Mailing Lists     582 Linux News and Developments     583 Open Source Legal Insight and Discussion     583 Appendix F Sample BDI-2000 Configuration File     585 Index     593  


Best Sellers


Product Details
  • ISBN-13: 9780137017836
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison Wesley
  • Depth: 19
  • Height: 234 mm
  • No of Pages: 656
  • Series Title: Pearson Open Source Software Development Series
  • Sub Title: A Practical Real-World Approach
  • Width: 184 mm
  • ISBN-10: 0137017839
  • Publisher Date: 04 Nov 2010
  • Binding: Hardback
  • Edition: 2
  • Language: English
  • Returnable: N
  • Spine Width: 39 mm
  • Weight: 1150 gr


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

4.4       |  9 Reviews 
out of (%) reviewers recommend this product
Top Reviews
Rating Snapshot
Select a row below to filter reviews.
5
4
3
2
1
Average Customer Ratings
4.4       |  9 Reviews 
00 of 0 Reviews
Sort by :
Active Filters

00 of 0 Reviews
SEARCH RESULTS
1–2 of 2 Reviews
    BoxerLover2 - 5 Days ago
    A Thrilling But Totally Believable Murder Mystery

    Read this in one evening. I had planned to do other things with my day, but it was impossible to put down. Every time I tried, I was drawn back to it in less than 5 minutes. I sobbed my eyes out the entire last 100 pages. Highly recommend!

    BoxerLover2 - 5 Days ago
    A Thrilling But Totally Believable Murder Mystery

    Read this in one evening. I had planned to do other things with my day, but it was impossible to put down. Every time I tried, I was drawn back to it in less than 5 minutes. I sobbed my eyes out the entire last 100 pages. Highly recommend!


Sample text
Photo of
    Media Viewer

    Sample text
    Reviews
    Reader Type:
    BoxerLover2
    00 of 0 review

    Your review was submitted!
    Embedded Linux Primer: A Practical Real-World Approach(Pearson Open Source Software Development Series)
    Pearson Education (US) -
    Embedded Linux Primer: A Practical Real-World Approach(Pearson Open Source Software Development Series)
    Writing guidlines
    We want to publish your review, so please:
    • keep your review on the product. Review's that defame author's character will be rejected.
    • Keep your review focused on the product.
    • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
    • Refrain from mentioning competitors or the specific price you paid for the product.
    • Do not include any personally identifiable information, such as full names.

    Embedded Linux Primer: A Practical Real-World Approach(Pearson Open Source Software Development Series)

    Required fields are marked with *

    Review Title*
    Review
      Add Photo Add up to 6 photos
      Would you recommend this product to a friend?
      Tag this Book
      Read more
      Does your review contain spoilers?
      What type of reader best describes you?
      I agree to the terms & conditions
      You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

      CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

      These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


      By submitting any content to Bookswagon, you guarantee that:
      • You are the sole author and owner of the intellectual property rights in the content;
      • All "moral rights" that you may have in such content have been voluntarily waived by you;
      • All content that you post is accurate;
      • You are at least 13 years old;
      • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
      You further agree that you may not submit any content:
      • That is known by you to be false, inaccurate or misleading;
      • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
      • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
      • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
      • For which you were compensated or granted any consideration by any unapproved third party;
      • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
      • That contains any computer viruses, worms or other potentially damaging computer programs or files.
      You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


      For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


      All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

      Accept

      New Arrivals


      Inspired by your browsing history


      Your review has been submitted!

      You've already reviewed this product!
      ASK VIDYA