Reading
Embedded Linux
- Cross-Compiled Linux From Scratch - Embedded An incomplete version of Cross Liniux From Scratch for embedded targets.
- penguinppc.org: Embedded Systems A resource page for embedded systems using Linux on PowerPC. Includes a dated but very complete HowTo.
- Context Switching Overheads for Linux on ARM Platforms (PDF).
C++ Programming
- Why C++ isn’t just an Object-Oriented Programming Language (PDF). Addendum to OOPSLA’95 Proceedings.
- C++ in Embedded Systems: Myth and Reality
- ISO/IEC TR 18015:2006(E) Technical Report on C++ Performance
- Moss: Efficient C/C++ Coding Technique This paper is mostly about C coding techniques. Again, the author recommends not using C++ for embedded systems. The C coding techniques make reading this paper worthwhile if you’re new to C/C++.
- Quiroz: Using C++ Efficiently In Embedded Applications This paper is rather old, early 1998, but the author’s approach is good: Measure the cost of C++ features and determine which you can afford. Features should be analysed on a cost/benefit basis.
- Saks: Reducing Run-Time Overhead in C++ Programs
- Saks: Representing and Manipulating Hardware in Standard C and C++
- Tribolet and Palmer: Embedded C and C++ Compiler Evaluation Methodology
- Wrapping C++ Member Function Calls(PDF)
- Embedded Programming with C++ This paper presents uCR, a C++ runtime package for embedded program development.
- Safe Labels in C++ Manipulate bits and groups of bits easily, efficiently, and safely in C++.
- C++ Hash Table Memoization: Simplifying Dynamic Programming
C++ Standards Work for Concurency and Threading
For a more complete list of issues and proposals concerning threading and concurrency support in the C++ Standard see Threads and memory model for C++ on Hans Boehm’s Web site.
- Trip Report: Ad-Hoc Meeting on Threads in C++ - A report on the C++ standards committee’s work to specify language primitives for concurrent processing.
- Sequencing and the concurrency memory model
- A finer-grained alternative to sequence points
- A Memory Model for C++: Strawman Proposal
- Signals and Slots for Library TR
- Asynchronous Exceptions for Threads
- A Threading API for C++
- Multithreading API for C++0X - A Layered Approach
- Transporting Values and Exceptions between Threads
Software Development
- Software Development Amidst the Whiz of Silver Bullets… A humorous look at the current whiz of silevr bullets that will save us all from having to work so hard.
- No Silver Bullet A classic essay by Fred Brooks, author of The Mythical Man-Month
, outlining why there are no easy technical solutions to the problems of software development.
- Escape the software development paradigm trap From Dr. Dobb’s Journal.
- Living With Compliance Another article from Dr. Dobb’s. This one is about software compliance in all its manifestations. Part 3 “Whose code is it anyway?” is epecially topical.
Networking Software
- FFPF: Fairly Fast Packet Filters (PDF)
- A Readable TCP in the Prolac Protocol Language(PDF) This paper discusses some C++ TCP implementations. The Prolac Protocol language could also serve as a source of constructs required in a generic networking protocol C++ library. Also see: Prolac language reference manual(PDF), and Masters’ thesis: Prolac: a language for protocol compilation(PDF).
- Speeding Up Networking (PDF) by Van Jacobson, noted networking researcher. This presentation suggests several architectural tweaks to the Linux networking stack to improve performance.
- Design, Implementation, and Evaluation of a Single-Copy Protocol Stack (PDF) Data copying and checksumming are the most expensive operations on hosts performing high-bandwidth network I/O.
- Fast and Flexible Application-Level Networking on Exokernel Systems (PDF) Application-level networking is a promising software organization for improving performance and functionality for important network services. The Xok/ExOS exokernel system includes application level support for standard network services, while at the same time allowing application writers to specialize networking services.
- Lazy Receiver Processing (LRP): A Network Subsystem Architecture for Server Systems This paper proposes a new network subsystem architecture based on lazy receiver processing (LRP), which provides stable overload behavior, fair resource allocation, and increased throughput under heavy load from the network.
- The BSD Packet Filter: A New Architecture for User-level Packet Capture.
- The structuring of systems using upcalls
Lock Free Data Structures
- Lock-free Interprocess Communication
- Lock-Free Data Structures(PDF)
- Lock-Free Data Structures with Hazard Pointers(PDF)
Object Oriented/Object Based Operating Systems and Kernels
- Designing and Implementing Choices:an Object-Oriented System in C++
- Object-Oriented Operating Systems Design and the Revival of Program Families(PDF)
Memory Allocation (malloc/free, new/delete)
- Some storage allocation techniques for container classes
- The design of the basis of the glibc allocator
- Embedded.com - Proactive Debugging A malloc() leads to heap fragmentation-though it may contain vast amounts of free memory, the heap may be so broken into small, unusable chunks that malloc() fails.








[…] Reading […]
Pingback by nerd1951.com»Blog Archive » Too Busy to Blog — June 22, 2006 @ 12:19 am