Richard Gorton
161 Temple St.
Framingham, MA
01701
(508) 820-7672
http://theworld.com/~gorton
Goal: A position utilizing my technical and
creative abilities to convert blue sky ideas into usable tools and
products.
Skills: Interception and manipulation of
system semantics at the instruction, library interface, and system
call levels, inside the kernel and in user space. Specifically,
binary translators, binary optimizers, compilers, interpreters, and
behavior-based security systems. Primarily Linux/UNIX; C, and various
assembly languages.
Experience:
March, 2007 to present: AMD
Oct, 2001 to March, 2007: Cisco Systems, Inc. (formerly Okena, Inc.)
Architected and developed UNIX user-space buffer overflow protection mechanisms
for Cisco Security Agent, a Host Intrusion Prevention product.
Implemented various in-kernel system call interceptors and call-chain
evaluation code. Maintain and enhanced rule language compiler and
interpreter. Developed various security policies for both Windows and
UNIX; consultant to other business units wishing to develop custom
security policies for their IP telephony appliances. Enhanced various
mechanisms including: web-server application plug-in filters, network
properties (@csanode), DRM-related properties (@sensitive).
Architected and implemented prototype Data Leakage plugin partner API.
Aug, 2000 to Aug, 2001: API NetWorks, Inc
Developed and maintained system-level software, including device
drivers, system exercisers, and Linux kernel code for API's systems
(single and dual processor 21264 Alpha). Created a set of Linux
kernel patches which boosted kernel performance by 40% via assembly
language tuning; wrote an article describing
how it was achieved. Extended and maintained a flash driver/upgrade
utility package. Project leader for a manufacturing & burn-in
stress test sytem. Debugged and created Linux kernel patches for
problems uncovered by the burn-in system.
May, 1992 to July, 2000: Compaq Computer Corp
(Digital Equipment Corp.)
Developer and Manager in an
advanced development group attached to Digital's Semiconductor
organization. Initially focused on constructing migration tools for
Alpha, then building prototypes and enabler tools for StrongARM CPUs.
Various projects included:
Dynamic binary optimization project initiator &
leader:
Research the feasibility and value of dynamic binary
optimization. Objective is to determine how to build a system which
will transparently, automatically, and dynamically improve
performance of arbitrary binary applications, through architectural,
micro-architectural, and value specialization optimizations. Wrote
initial concept white paper, defined goals, devised and implemented
experiments to determine feasibility, practicality, and various
technical aspects of a dynamic binary optimization system. The
proof-of-concept system was demonstrated in September, 1998 at a
corporate analysts briefing, and showed a speedup of 8%. The work
ressulted in being an invited speaker at HotChips 11.
StrongARM 1500 GNU tools project leader &
developer:
Modify the GNU tools (gcc and gas) to support the
coprocessor instructions on the SA1500, and to generate code
sequences using these instructions. Modified GCC 2.8.1 to generate
the coprocessor instructions and was a mentor for the developer
modifying the assembler. The modified tools were delivered ahead of
business schedule, prior to the availability of functioning silicon.
The tools were further modified to work around pass 1 processor
bugs. The delivered tools enabled the bootstrapping of a prototype
board featuring NetBSD, Dolby AC-3, and MPEG-2 decoding.. Also wrote
multiple articles about using the GNU tools for a customer
newsletter.
GCC developer:
Benchmarked, analyzed, and
modified egcs on Alpha, resulting in a 5% SPECint95 performance
improvement under Digital UNIX.
Ported the sound driver subsytem from Linux/x86 to Linux/Alpha (kernel 1.3.57)
Supervised five developers doing advanced development for a year. The StrongARM projects were collaborative efforts with a corporate research group in Palo Alto, my group, and various developers in the UK. The Linux/Alpha platform development work was done jointly with developers in the UK. The projects supervised were:
GCC/StrongARM
Java JIT/JVM on StrongARM
Linux/Alpha platform development
Profile-directed binary translation research
Ongoing support for two binary translator products
JavaOS/StrongARM development
JavaOS/Alpha investigation.
SunOS to OSF/1 binary translator co-initiator &
V1.0 project leader (FreePort Express)
Co-authored the initial
technical and business opportunity proposals; co-developed the
proof-of-concept prototype; and was the technical project leader up
to the release of version 1.0. FreePort Express was a freely
available (over the web) compiler-like tool which converts SunOS 4
(aka Solaris 1.x) applications into Digital UNIX executables. At the
peak of staffing, my development team consisted of 16 engineers,
including some in a clean-room environment.
Prototype big-endian to little-endian binary translator project leader and developer. Project goals were two fold: an investigative effort to determine feasibility of endian-converting binary translators, and to create a porting tool for a single customer. A working, usable tool was delivered to the customer ahead of schedule, and enabled them to run their application on Alpha systems.
MIPS Ultrix to DEC OSF/1 binary translator developer and project leader (mx). Developer on a small team: debugged and extended the translator and runtime; implemented and ran test suites; performed performance analysis; implemented performance improvements; and packaged the software using Digital's installation tool. Project leader for V1.1, and V1.2 (current). Translated benchmarks exceeded native performance at the initial release of OSF/1 systems.
Oct, 1985 to May, 1992: Liant Software Corp. - http://www.liant.com
Project leader for PL/I, FORTRAN, BASIC, and Pascal
compilers. Maintained and enhanced front-ends and language runtime
libraries, improved QA suites, and released updates.
Improved
performance for a number of UNIX platforms, including boosting SPARC
and 88000 benchmarks by 2x-4x via peepholing, instruction inlining,
leaf routine frame removal, and inline block data movement.
Integrated a prototype instruction scheduler, doubling its
compile-time performance in the process.
Lead developer for a
large, time critical project, requiring the rehosting of six
compilers and a debugger; the products were all delivered on
schedule.
Tools developer - maintained in-house development
tools, including source code control system, build system, and other
tools used to develop compilers.
Team member for the PRIMOS to
SunOS development environment migration.
Ported Liant’s
compilers and debugger to a wide variety of UNIX systems.
Jan, 1985 to September, 1985: Boston Systems Office
Worked as part of a team writing a new generation of VAX to 68K cross development tools.
May, 1983: B. Sc. Applied Computer Science, University of Wisconsin Parkside
Patents, Publications & advisories:
Linux Journal (Aug, 2001) Kernel Korner article: boosting kernel performance
HotChips 11 (Aug, 1999) Wiggins/Redstone: an online program specializer
Patent application: computing path profiles (related to Wiggins/Redstone)
Patent application: Secure local execution (security policy)
Security advisory: discoverer of CERT-2006-1174 (useradd)
Miscellany:
Director, Gorton Studios, Inc. Eagan, Minnesota