Skip to main content.
Navigation:
DENX
>
DULG
>
MoreInformationFurtherReading
Translations:
Edit
|
Attach
|
Raw
|
Ref-By
|
Printable
|
More
DULG
Sections of this site:
DENX Home
|
DULG
|
ELDK-5
|
Know
|
Training
|
U-Boot
|
U-Bootdoc
Topics
DULG Home
BoardSelect
Manual
FAQ
Application Notes
Changes
Index
List of pages in DULG
Search
%SECTION0{name=MoreInformationFurtherReading}% Further Reading %SECTION1{name=FurtherReadingUpstreaming}% Upstreaming * [[http://www.electronicproducts.com/Software/Development_Tools_and_Software/The_benefits_of_Mainline_Linux_and_the_mindset_of_upstream_development.aspx][The benefits of Mainline Linux and the mindset of upstream development]] %SECTION1{name=FurtherReadingLicensing}% License Issues ---++ Articles * [[http://www.gnu.org/licenses/gpl-2.0.html]]: GNU General Public License, version 2 * [[http://www.gnu.org/copyleft/gpl.html]]: GNU General Public License * [[http://www.softwarefreedom.org/resources/2008/compliance-guide.html]]: A Practical Guide to GPL Compliance * [[http://article.gmane.org/gmane.comp.video.dri.devel/52751]] *Alan Cox* about combining GPL device drivers with closed source user space libraries %SECTION1{name=FurtherReadingLinuxKernel}% Linux kernel ---++ Books * *Karim Yaghmour, Jon Masters, Gilad Ben-Yossef, Philippe Gerum*: "Building Embedded Linux Systems 2nd edition", %BR% Paperback: 462 pages, O'Reilly & Associates; (August 2008); ISBN 10: 0-596-52968-6; ISBN 13: 9780596529680 ISBN 059600222X - IMHO *the* best book about Embedded Linux so far. An absolute must have. * *Greg Kroah-Hartman*: "Linux Kernel in a Nutshell", %BR% 198 pages, O'Reilly ("In Nutshell" series), (December 2006), ISBN 10: 0-596-10079-5; ISBN 13: 9780596100797 %BR% - Tarball of PDF files (3 MB): %BR% [[http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf.tar.bz2]] %BR% - Tarball of !DocBook files (1 MB): %BR% [[http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_xml.tar.bz2]] * *Craig Hollabaugh*: "Embedded Linux: Hardware, Software, and Interfacing", %BR% Paperback: 432 pages; Addison Wesley Professional; (March 7, 2002); ISBN 0672322269 * *Christopher Hallinan*: "Embedded Linux Primer: A Practical Real-World Approach", %BR% 576 pages, Prentice Hall, September 2006, ISBN-10: 0-13-167984-8; ISBN-13: 978-0-13-167984-9 * *Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman*: [[http://www.oreilly.com/catalog/linuxdrive3/]["Linux Device Drivers", 3rd Edition ]]; %BR% Paperback: 636 pages; O'Reilly & Associates; 3rd edition (February 2005); ISBN: 0-596-00590-31 - *The* reference book for writing Linux device drivers. An absolute must have. [[http://lwn.net/Kernel/LDD3/][=> Read online]] * *Jürgen Quade, Eva-Katharina Kunst*: [[http://www.dpunkt.de/buecher/2381.html]["Linux-Treiber entwickeln"]]; Broschur: 436 pages; dpunkt.verlag, Juni 2004; ISBN 3898642380 %BR% - focused on kernel 2.6, unfortunately German only %BR% - [[http://ezs.kr.hsnr.de/TreiberBuch/][=> Read online]] * *Sreekrishnan Venkateswaran*: "Essential Linux Device Drivers", %BR% 744 pages, Prentice Hall, March 2008, ISBN-10: 0-13-239655-6; ISBN-13: 978-0-13-239655-4 %BR% - [[http://safari.adobepress.com/9780132396554/pref01][=> Read online]] ---++ Articles * [[http://www.tldp.org/LDP/tlk/tlk.html][The Linux Kernel]] - describing most aspects of the Linux Kernel. Probably, the first reference for beginners. Lots of illustrations explaining data structures use and relationships. In short: a must have. * [[http://www.tldp.org/LDP/lkmpg/index.html][Linux Kernel Module Programming Guide]] - Very nice 92 pages GPL book on the topic of modules programming. Lots of examples. * *LWN: Porting device drivers to the 2.6 kernel* - Series of articles (37) in Linux Weekly News: http://lwn.net/Articles/driver-porting/ * MIPS Linux Porting Guide: [[http://linux.junsun.net/porting-howto/porting-howto.html]] * Andries Brouwers remarks to the linux kernel: [[http://www.win.tue.nl/~aeb/linux/lk/lk.html]] %SECTION1{name=FurtherReadingUnixProgramming}% General Linux / Unix programming ---++ Books * *W. Richard Stevens*: "Advanced Programming in the UNIX Environment", Addision Wesley, ISBN 0-201-56317-7 * *Eric S. Raymond*: "The Art of Unix Programming", Addision Wesley, ISBN 0131429019 [[http://www.catb.org/~esr/writings/taoup/html/][=> Read online]]. If you don't want to read the whole book then at least look at the [[http://www.catb.org/~esr/writings/taoup/html/ch01s06.html][Basics of the Unix philosophy]] condensing lots of experience into a few rules. This is essential reading. * *David R. Butenhof*: "Programming with POSIX Threads", Addision Wesley, ISBN 0-201-63392-2. * *Bradford Nichols*, *Dick Buttlar* and *Jacqueline Proulx Farrell*: "Pthreads Programming", O'Reilly & Associates * *"Pro Git"* by Scott Chacon %BR% See http://book.git-scm.com/ or download the [[https://github.s3.amazonaws.com/media/progit.en.pdf][current PDF version]]. * *Ross Anderson*: "Security Engineering - A Guide to Building Dependable Distributed Systems" %BR% See http://www.cl.cam.ac.uk/~rja14/book.html * *Paul <nop>McKenney*: "Is Parallel Programming Hard, And, If So, What Can You Do About It?" %BR% Available [[http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html][online and in print]] ---++ Articles * The GNU C Library: [[http://www.linuxselfhelp.com/gnu/glibc/html_chapter/libc_toc.html]] %BR% General Linux Programming: [[http://www.linuxselfhelp.com/cats/programming.html]] * Multi-Threaded Programming With POSIX Threads: %BR% [[http://users.actcom.co.il/~choo/lupg/tutorials/multi-thread/multi-thread.html]] * *Brad Hards*: [[http://www.linuxjournal.com/article/6396][The Linux USB Input Subsystem, Part I]] %BR% http://www.linuxjournal.com/article/6396 * *Brad Hards*: [[http://www.linuxjournal.com/article/6429][Using the Input Subsystem, Part II]] %BR% http://www.linuxjournal.com/article/6429 * *Ulrich Drepper*: Position Independent Binaries: [[http://people.redhat.com/drepper/textrelocs.html]["Text Relocations"]] %BR% http://people.redhat.com/drepper/textrelocs.html * *Ulrich Drepper*: [[http://people.redhat.com/drepper/dsohowto.pdf]["How to Write Shared Libraries"]] %BR% http://people.redhat.com/drepper/dsohowto.pdf * *Ulrich Drepper*: [[http://people.redhat.com/drepper/cpumemory.pdf]["What Every Programmer Should Know About Memory"]] %BR% http://people.redhat.com/drepper/cpumemory.pdf * *David Goldberg*: [[http://www.physics.ohio-state.edu/~dws/grouplinks/floating_point_math.pdf]["What Every Computer Scientist Should Know About Floating-Point Arithmetic"]] %BR% http://www.physics.ohio-state.edu/~dws/grouplinks/floating_point_math.pdf * More Ulrich Drepper stuff: [[http://people.redhat.com/drepper/]] * How to [[http://blog.flameeyes.eu/articles/2008/01/17/today-how-to-identify-unused-exported-functions-and-variables][optimize DSOs]] by identifying unused non-exported functions and data. %BR% http://blog.flameeyes.eu/articles/2008/01/17/today-how-to-identify-unused-exported-functions-and-variables * A quite complete history of the UNIX family can be found here: [[http://www.levenez.com/unix/]] * Unix Manual, first edition, 3 November 1971: [[http://cm.bell-labs.com/cm/cs/who/dmr/1stEdman.html]] * *John Graham-Cumming*: Debugging Makefiles %BR% [[http://newsletter.embedded.com/cgi-bin4/DM/y/e4Kd0G1ErD0FrY0E3FS0EZ]] * Binutils / ld documentation: [[http://sourceware.org/binutils/docs-2.19/ld/Scripts.html#Scripts][Linker Scripts]] * git ready - learn one git command at a time: http://gitready.com/ ---++ Standards: * POSIX.1-2008, IEEE Std 1003.1™-2008, The Open Group Technical Standard Base Specifications, Issue 7: [[http://pubs.opengroup.org/onlinepubs/9699919799/mindex.html]] * Linux Standard Base: [[http://refspecs.freestandards.org/lsb.shtml]] * [[http://www.unix.org/version3/online.html][Single UNIX Specification, Version 3]] (needs registration even for online viewing) * [[http://www.opengroup.org/onlinepubs/007908799/][Single UNIX Specification, Version 2]] * PCI Bus Bindings - Standard for Boot Firmware: %BR% [[http://playground.sun.com/1275/bindings/pci/pci2_1.pdf]] * International standardization working group for the programming language C: [[http://www.open-std.org/jtc1/sc22/WG14/]] %SECTION1{name=FurtherReadingNetworkProgramming}% Network Programming ---++ Books * *W. Richard Stevens*: "TCP/IP Illustrated, Volume 1 - The Protocols", Addision Wesley, ISBN 0-201-63346-9 * *Gary R. Wright, W. Richard Stevens*: "TCP/IP Illustrated, Volume 2 - The Implementation", Addision Wesley, ISBN 0-201-63354-X * *W. Richard Stevens*: "TCP/IP Illustrated, Volume 3 - TCP for Transactions", Addision Wesley, ISBN 0-201-63495-3 * *W. Richard Stevens*: "UNIX Network Programming, Volume 1 - Networking APIs: Sockets and XTI", 2nd ed., Prentice Hall, ISBN-0-13-490012-X * *W. Richard Stevens*: "UNIX Network Programming, Volume 2 - Interprocess Communication", 2nd ed., Prentice Hall, ISBN-0-13-081081-9 ---++ Articles * Linux Networking topics (like [[http://linux-net.osdl.org/index.php/NAPI][NAPI]], [[http://linux-net.osdl.org/index.php/GSO][GSO]], [[http://linux-net.osdl.org/index.php/VLAN][VLAN]], [[http://www.ipsec-howto.org/t1.html][IPsec]] etc.): %BR% [[http://linux-net.osdl.org/index.php/Main_Page]] %SECTION1{name=FurtherReadingCpp}% C++ programming ---++ Books * *Scott Meyers*: "Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)", Addison-Wesley, May 20, 2005, ISBN: 0321334876 %SECTION1{name=FurtherReadingJava}% Java programming ---++ Books * *Joshua Bloch*: "Effective Java -- Programming Language Guide", 2001, Addison Wesley, ISBN 0-201-31005-8, 250 pages %SECTION1{name=InternationalizationAndCharacterSets}% Internationalization And Character Sets ---++ Articles * Wikipedia article on UTF-8: http://en.wikipedia.org/wiki/UTF-8 * "The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)" by Joel Spolsky: http://www.joelonsoftware.com/articles/Unicode.html * "UTF-8 and Unicode FAQ for Unix/Linux" by Markus Kuhn http://www.cl.cam.ac.uk/~mgk25/unicode.html * Understanding Encodings: http://foswiki.org/Development/UnderstandingEncodings %BR% Detailed primer on character sets and encodings, especially in the context of web design %SECTION1{name=FurtherReadingARMProgramming}% ARM Architecture Programming <div class="alignLeft"> ---++ Articles * ARM atomic operations: [[http://www.jonmasters.org/blog/2012/11/13/arm-atomic-operations/]] </div> %SECTION1{name=FurtherReadingPowerPCProgramming}% Power Architecture® Programming <div class="alignLeft"> ---++ Books * Programming Environments Manual for 32-Bit Implementations of the PowerPC architecture: [[http://www.freescale.com/files/product/doc/MPCFPE32B.pdf]] * IBM PDF file (600+ page book) on !PowerPC assembly language: [[http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF778525699600719DF2]] * Power.org™ Standard for Embedded Power Architecture™ Platform Requirements (ePAPR): [[https://www.power.org/documentation/epapr-version-1-1/]] (registration needed) ---++ Articles * Introduction to Assembly on the !PowerPC: [[http://www-106.ibm.com/developerworks/library/l-ppc/?t=gr,lnxw09=PowPC]] * IBM PDF compiler writers guide on PPC asm tuning etc.: [[http://www-3.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF7785256996007558C6]] * A developer's guide to the POWER architecture: [[http://www-128.ibm.com/developerworks/linux/library/l-powarch/index.html]] * <nop>PowerPC EABI Calling Sequence: [[ftp://sourceware.redhat.com/pub/binutils/ppc-docs/ppc-eabi-calling-sequence]] * <nop>PowerPC Embedded Application Binary Interface (32-Bit Implementation): [[ftp://sourceware.redhat.com/pub/binutils/ppc-docs/ppc-eabi-1995-01.pdf]] * Developing <nop>PowerPC Embedded Application Binary Interface (EABI) Compliant Programs [[http://www-306.ibm.com/chips/techlib/techlib.nsf/techdocs/852569B20050FF77852569970071B0D6]] * System V Application Binary Interface - <nop>PowerPC Processor Supplement: [[http://refspecs.freestandards.org/elf/elfspec_ppc.pdf]] * Device Tree Wiki: http://devicetree.org/Main_Page * Device Tree Usage: http://devicetree.org/Device_Tree_Usage * Linux for <nop>PowerPC Embedded Systems HOWTO (very old): %BR% [[http://penguinppc.org/embedded/howto/PowerPC-Embedded-HOWTO.html]] * Linux for <nop>PowerPC Embedded Systems HOWTO (old): %BR% [[http://www.denx.de/twiki/bin/view/PPCEmbedded]] * Understanding MPC5200 Bestcomm Firmware: [[%ATTACHURL%/message.txt][Posting]] on mailto:linuxppc-embedded@ozlabs.org mailing list (see also the mailing list [[http://ozlabs.org/pipermail/linuxppc-embedded/2007-August/027880.html][archive entry]]), source code [[%ATTACHURL%/disasm.c][disasm.c]] for a disassember, and [[%ATTACHURL%/sdHandAssemblyLcdDrd.pdf]["SmartDMA Hand-Assembly Guides"]] document. </div> %SECTION1{name=FurtherReadingEmbeddedTopics}% Embedded Topics ---++ Articles * Things you always wanted to know about NAND flash but never dared to ask: [[http://download.micron.com/pdf/technotes/nand/tn2917.pdf][Micron Application Note]] * The Inconvenient Truths of NAND Flash Memory (contains actual data for data-retention times): [[https://www.micron.com/~/media/Documents/Products/Presentation/flash_mem_summit_jcooke_inconvenient_truths_nand.pdf][Micron Presentation]] * The ultimate goal of [[http://www.caravan.net/ec2plus/][Embedded C++]] is to provide embedded systems programmers with a subset of C++ that is easy for the average C programmer to understand and use. * Our contribution to the Darwin year 2009: Hardware designs that will *not* replicate: [[HardwareToAvoid][Topic in DENX Wiki]]
12.1. Application Notes
1. Abstract
12.3. Mailing Lists
Prev
Home
Next