1994 20.05 1996

Vol.20 n°5 (#230) may 1995

(ddj_1995_05.jpg)

p.6 EDITORIAL

[author : Jonathan Erickson] #Edito

TABLE OF CONTENTS

FEATURES

p.18 IMPLEMENTING LOADABLE KERNEL MODULES FOR LINUX

[author : Matt Welsh]

The most recent release of Linux, a freely distributed UNIX-like operating system, supports dynamically loaded kernel modules. Matt describes the dynamic-kernel-module implementation, concentrating on the steps required to load a module on a running system.

p.28 SHARED MEMORY AND MESSAGE QUEUES

[author : Richard B. Lam]

Richard presents C++ classes for cross-platform coding of named shared memory and message queues. In doing so, he supports interprocess-communication mechanisms for OS/2, AIX, and Windows NT.

p.32 A CROSS-PLATFORM BINARY DIFF

[author : Kris Coppieters]

BinDiff is a utility that compares two versions of a binary file and creates a diff file containing the differences. Because Kris built BinDiff from a single C source file, it will compile on UNIX, OS/2, DOS, and the Macintosh.

p.40 MAPMAN: BUILDING WINDOWS SYMBOLS FILES

[author : Joseph Hlavaty]

Joe presents MapMan, a Windows map-file manager that lets you build .SYM files for any 16-bit Windows executable, including the DLLs that make up Windows itself.

p.48 LIGHTWEIGHT TASKS IN C

[author : Jonathan Finger]

While most modern operating systems allow multiple threads within a process, earlier-generation systems do not. Jonathan presents a multithreading package that allows for cooperatively multitasked threads within a single process for operating systems that do not explicitly support threads.

p.52 WINDOWS 95 COMMON CONTROLS

[author : Vinod Anantharaman]

Windows 95 GUI building blocks, collectively called "common controls," give you reusable tools for everything from toolbars and tree controls to spin boxes and progress indicators.

p.64 BOB AS A MACRO PROCESSOR LIBRARY

[author : Brett Dutton]

Macro languages are user-programmable interfaces to applications. Brett adds to David Betz's original Bob an API that turns a stand-alone Bob interpreter into a macro processor library. David Betz then presents a new version of Bob that runs as a Windows DLL.

p.142 PORTABLE SCREEN HANDLING

[author : Matt Weisfeld]

Matt presents routines in C, Pascal, Fortran, and Basic for using ANSI escape sequences on a variety of platforms.

EMBEDDED SYSTEMS

p.70 EFFICIENT MC68HC08 PROGRAMMING

[author : Rand Gray and Deepak Mulchandani]

Rand and Deepak examine two basic optimizations for the Motorola MC68HC08 microcontroller: common-subexpression elimination and constant-value propagation.

NETWORKED SYSTEMS

p.80 ROLE-BASED NETWORK SECURITY

[author : William F. Jolitz and Lynne Greer Jolitz]

Role-based security is a mechanism orthogonal to the authentication, encryption, and threat-detection mechanisms implemented in most operating systems. Our authors describe how this minimal mandatory-access-control policy is implemented in the 386BSD operating system.

EXAMINING ROOM

p.86 INSIDE THE OLE 2 SDK

[author : Ira Rodens]

Ira presents techniques for building an OLE client application using the Microsoft OLE 2 SDK. The application allows embedded objects to be placed within a container, then moved, sized, and saved.

PROGRAMMER'S WORKBENCH

p.90 PHOTON AND QNX

[author : Peter D. Varhol]

Photon is a windowing system specifically designed for the QNX operating system. Peter uses the Application Builder, Photon's VB-like development environment, to build a graphical QNX application.

COLUMNS

p.109 PROGRAMMING PARADIGMS

[author : Michael Swaine]

Before examining the pros and cons of visual programming, Michael mulls over the virtues of monkey wrenches.

p.115 C PROGRAMMING

[author : Al Stevens]

Al wraps up his D-Flat project by putting a C++ wrapper called "DFWrap" around D-Flat. In doing so, he rewrites his IMail program in C++.

p.119 ALGORITHM ALLEY

[author : Bruce Schneier]

Rainer Storn implements an optimization algorithm that's based on Monte Carlo methods. To use his program, you simply provide a mathematical formulation of your constraints, without worrying about devising an appropriate objective function.

p.127 PROGRAMMER'S BOOKSHELF

[author : Peter D. Varhol]

Is there really a difference between how East and West Coast high-tech companies go about their business? This is the question Annalee Saxenian asks in her book, Regional Advantage: Culture and Competition in Silicon Valley and Route 128.

FORUM

p.10 LETTERS

[author : you]

p.152 SWAINE'S FLAMES

[author : Michael Swaine]

PROGRAMMER'S SERVICES

p.150 OF INTEREST

[author : Monica E. Berg]