This page contains information and links related to various flavors of
Unix and Unix-like operating systems( Linux, the BSD's, Solaris, Mac OSX
and others) as well as info on various related networking, security,
storage, and assorted open source bits of code and info. Lots 'o useful stuff.
A brief commentary on the oft-asked questions:
Why Linux? Why Open-Source technologies? Why not Windows?
Linux, FreeBSD, and other Unixen
Linux related
- Tesseract authored tech pages
- Distributions and support
-
RedHat Inc.
popular Linux distribution and all around Open Source champions
-
SuSE Linux
is a cutting edge distribution with lots of support for new
features and much stability
-
Debian Linux
is very popular with many hardcore hackers, and has inspired many
spin-off distros
-
Slackware
is one of the original hacker distros, still taken very seriously
by sharp Linux aficionados
-
Mandrake Linux
is another quite powerful commercially supported distro
-
Gentoo Linux
is very innovative and growing popularity distro based on the
concept of always building things from their sources...thorough..
-
Knoppix Linux
is very cool distribution that runs off CD and can be used
for customized apps that make your head spin.....
-
VectorLinux
is purportedly a very speed distribution built on SlackWare
but optimized for speed. It is supposedly great on older iron.
-
RULE-project
is the Run Up To Date Linux Everywhere project
- Real time extensions and embedded info
-
Realtime Linux Foundation
-
FSMLabs now has domain ownership of www.rtlinux.org
-
Real Time Application Interface (RTAI) for Linux
- A
great article at
linuxdevices.com has a great listing of all things real-time
under Linux
-
Open Source Real-Time Linux project hosted by
MontaVista Software
-
Linux CNC
is a set of extensions for Computerized Numerical Control
(CNC) applications in manufacturing and machining
-
Modular Control Architecture
is a modular, network transparent and realtime capable C/C++ framework
for controlling robots and other kind of hardware. The main plattform
is Linux/RTLinux, support for Win32 and Solaris also exists.
-
Realtime CAN on Linux attempts to have CAN (Control Automation
Network, a factory-floor automation protocol) in realtime under
Linux
-
Dynamic Systems Library
is a interface tool for use between block-diagram modelling and
realtime programing. DSLib is a set of C++ classes representing
components of block-diagram modelling: blocks (functions, integrators,
summing points...), inputs, outputs, schedulers, etc.
-
Ch RTAI
package is a Ch
interface to the Realtime Application Interface
(RTAI) for Linux. Ch RTAI enables users to run their real-time
applications, which interact with loaded real-time task modules,
interpretively without compilation under RTA
-
KISS Realtime kernel
is an open source project, intended for use in deeply embedded
applications such as cell phones, cars, VCRs, consumer electronics,
microwave ovens, toasters and ballistic intercontinental nuclear
missiles. Being deterministic, small, readable and understandable,
it is suitable for applications where deterministic response is
primordial.
-
rt-utils
A set of utilities for manipulating the POSIX realtime schedulers
supported by POSIX-realtime-aware kernels, like Linux 1.3
(yes. one-point-three) and later.
-
vxtools: Vxworks is a realtime OS which uses gcc compiler.
But it does not support Linux as a development environment. This
project is an attempt to make open source vxworks tools running on
linux to make vxworks developement under linux possible
-
Jaluna Real-Time Component Suite
Components supporting real-time, reliability, high-availability,
and security services in standard operating environments.
Starting with the C5 modular microkernel, a RT-POSIX layer based
on FreeBSD 4.1, and the CDE cross-development environment.
-
AEM - The Linux Asynchronous Event Model
provides a generic and native support for asynchronous events into
the Linux kernel. Its goal is to provide a scalable and soft
real-time mechanism to applications running on Linux.
-
RTnet
is an Open Soure hard real-time network protocol stack for RTAI
(real-time Linux extension). It is based on standard Ethernet
hardware and already supports several popular card chip sets.
RTnet implements UDP/IP, ICMP and ARP in a deterministic way.
It provides a standard BSD socket API to be used with RTAI kernel
modules and NEWLXRT processes.
-
Panta Rhei
will provides a platform for developing low-level locomotion and
balance controllers for real-time applications. This site has
evolved to include research technology to allow emergent development
of locomotion control systems, very motor AI stuff..
-
Embedded Linux Consortium (ELC)
is a nonprofit, vendor-neutral trade association whose goal is the
advancement, promotion and standardization of Linux throughout
the embedded, applied and appliance computing markets.
-
AllLinuxDevices.com
is a substantial 'Daily Source for Embedded Linux Information'
-
BlueCat embedded Linux
from LynuxWorks,
based on the 2.6 kernel, is an implementation of the Linux
model enhanced for use in embedded systems ranging from small
consumer-type devices to large-scale, multi-CPU systems.
-
uCLinux
is the embedded Linux microcontroller project
-
uCdot.org
is an Embedded Linux and uClinux developer forum
-
SiliconPenguin.com
Portal site for embedded Linux. Information on: companies,
projects; documentation, publications; hardware, software.
-
Comparison of Real-Time Support in Microsoft Windows NT, Linux,
KURT Linux, and RTLinux (Postscript)
-
Linux powered telemetry processing paper (.pdf) discusses
application of Linux and other, true RT OS's for demanding
telemetry applications. Very useful, constructive, and detailed.
-
Introduction to Linux for Real Time Control is a large-ish
.pdf from National Institute of Standards and Technology
(NIST) which has much useful info
- Security
- Unix Security stuff
-
Linux firewalls and related info
-
OpenVPN
is a full-featured SSL VPN solution which can accomodate a wide
range of configurations, including road warrior access,
home/office/campus telecommuting, WiFi security, secure branch
office linking, and enterprise-scale remote access solutions with
load balancing, failover, and fine-grained access-controls
- Kernel and other architectural notes
- Kernel patches of interest
- Specialized system boot images and micro-distributions
-
SysLinux Project
covers lightweight bootloaders for floppy media (SYSLINUX),
network booting (PXELINUX), and bootable "El Torito" CD-ROMs
(ISOLINUX). The project also includes MEMDISK, a tool to boot
legacy operating systems (such as DOS) from nontraditional media;
it is usually used in conjunction with PXELINUX and ISOLINUX.
-
tomsrtbt is Tom's Root Boot, a Swiss-army knife micro distro
with lots of very handy stuff on a single floppy. A must have.
-
DLX
is a full featured linux system running on Intel PC's.
The special thing is that DLX comes with only one 3,5" floppydisk.
-
Trinux
is a ramdisk-based Linux distribution that boots from a single
floppy or CD-ROM, loads it packages from an HTTP/FTP server, a
FAT/NTFS/ISO filesystem, or additional floppies. Trinux contains
the latest versions of popular Open Source network security tools
for port scanning, packet sniffing, vulnerability scanning, sniffer
detection, packet construction, active/passive OS fingerprinting,
network monitoring, session-hijacking, backup/recovery, computer
forensics, intrusion detection, and more. Trinux also provides
support for Perl, PHP, and Python scripting languages.
Remote Trinux boxes can be managed securely with OpenSSH.
-
linuxrouter.org
is a great project that is no longer being developed, but certainly
deserves a link....sorry about your troubles, mate...
-
CoyoteLinux.com
is the home of
CoyoteLinux floppy firewall distribution that is itself based
on linuxrouter.org distro; CoyoteLinux.com also has lots of other
micro-distro based products
-
PocketLinux
is an almost minimal, one floppy linux system designed to
quickly convert PC workstation into secure linux-based
workstation using ssh to connect to remote host
(other networking clients are also supported). It supports bootp
for determining host IP and other network parameters (there's also
manual configuration possible, but bootp is recommended).
-
muLinux
is a minimalistic Linux distribution, suitable for old computers.
X11, GCC, VNC, SSH, Samba, Netscape etc. are supported on
additional addon floppies. It can be installed from DOS/Win9x or
Linux, without repartitioning.
-
Small Linux Project
has all kinds of info on the Small Linux project and associated
micro-ized (yeah, it's a word...) packages and tools
-
Smart Boot Manager
is an OS independent and full-featured boot manager with an
easy-to-use user interface
-
Disk and data storage :
see
Tesseract page on data storage
- Linux information and stuff....
-
tux.org
-
Slashdot.org
is part of any computer geek's list of links
-
AnythingLinux.org
-
Linux Magazine
-
Linux Gazette
BSD variants
Networking and server applications
Open source applications, assorted
Graphics, vector, bitmap and 3D packages
-
Dia Open
Source diagram creation program that rivals commercial code
-
Xara Xtreme for Linux
is a powerful, general purpose graphics program for Unix platforms
including Linux, FreeBSD and (in development) OS-X.
-
Inkscape is an Open Source
vector graphics editor, with capabilities similar to Illustrator,
Freehand, CorelDraw, or Xara X using the W3C standard Scalable
Vector Graphics (SVG) file format.
-
Blender is the open source
software for 3D modeling, animation, rendering, post-production,
interactive creation and playback. Available for all major operating
systems
Why use Linux and Open Source tools when 'everybody' uses Microsoft
Windows?
Once upon a time, I used to develop pretty sophisticated code in assembly
language
on embedded and
now-defunct
precursors (oh, and
here too!) to modern personal computers. I was
always very proud of the fact that these (pain to develop!) assembly apps
were very stable as built. It was important to me that my customer not call
me back to fix code that crashed often because I did not do my job right.
This was just the way I was taught
to work: you did it right, and you did not waste people's time by producing
bad product. It's cultural, I suppose.
Then, for a long time, I used to develop lots of code under 8-bit CP/M machines.
We could make these machines do quite a bit of helpful and high performance
tasks using only 8-bit processors and very minimalist CP/M operating system,
which was really just a simple program loader. Even then, I would read about
Unix based workstations doing Real Science and Engineering while I watched
as the first generation of 8-bit CPUs started to affect the technology
markets at large. It was clear that computers were going to be
everywhere at every scale of traditional and undreamt of commercial
and other processes. Unix was expensive, specialized, and seemed large, but
still it seemed to be (and still is..) applied to the largest jobs.
Then the IBM PC and Microsoft DOS came along. These machines quickly
walked all over the sales of CP/M and 8-bit machines. But DOS really
very much seemed like a derivative of CP/M. In fact, the early interface
to DOS, via BIOS software interrupts, was written to nearly exactly emulate
the very same layer in CP/M. Microsoft was good at innovation in those days
too.....
Then MicroSoft Windows came along. First we used v.1.0 (!). At that time,
Apple Macintosh based computers were fairly common, and Mac users would
look over the shoulders of a Windows 1.0 user and wonder why anyone would
subject themselves to this.
Then came Windows 2.0. More pain. But still, we found uses for it. And
hoped that things would improve for those of us (me too!) pretty damned
loyal to where Microsoft was going.
Then came Windows 3.0. Now we kind of could see the light at the end of
the tunnel as 3.0 started to have some neat multi-media features and was
released in the days of CD-ROM as the newest and greatest distribution
format.
Then, Windows 3.1. More MultiMedia and other goodies.
By this time, I was working with Hewlett-Packard in Cupertino on a distance
learning application. But what struck me about being at HP at that time
was that, although most of the very talented engineers there were using
HP 'Snakes'
RISC workstations, there was a real buzz in Silicon Valley
about the forthcoming Windows NT. For Unix people this was supposed to be
an end-all, be-all solution, and it sounded it: all the benefits of the
Windows momentum on the desktop, riding the real economic benefits of
Moore's law, and all the industrial-strength benefits of Unix. It would
be like Unix, only better, claimed Really Smart and Very Convinced HP
folk. And we were excited about this!
Not everyone was convinced, of course. Some old-timers with much Unix
background expressed honest puzzlement about Microsoft's lack of performance
until then. Smart comp-sci types suggested it was troubling that plenty of
operating system work had been done to enable state-of-the-art techniques
based on proven and stable technology, as was the case under Unix, but that
Microsoft did not seem to be employing this corpus of technical knowledge
with it's newest offerings. To some, it seemed at the time like a dicey
proposition.
Certainly, until then, working under DOS and Windows 3.1 had a few 'hiccups.'
Code could crash easily. You got the sense that the Microsoft OS evolution
was going to be neat, but maybe a little pokey: it just seemed that simple
Windows GUI code did not run as fast or as reliably as comparable Unix tools.
Still, the optimism was there. The pundits heralded what was to come from
Redmond.
At some point, I started doing
X-Ray detector
work under DOS, using DOS
memory extenders. And at about this point, we started to experiment with
device drivers and graphical apps for high-performance imaging under
Windows NT, first v3.51 ('Daytona') then NT 4.0. Device driver development
was kind of convoluted and messy, things crashed often, but the real problem
on ISA machines was performance. It just seemed that NT machines were kind
of slow for things like interrupt handling, and this could be a problem.
Even on fast machines, things were slow. A bit of research concluded that
other, much better specialists in Real Time systems had benchmarked NT machines
against Unix workstations and assorted other soft and hard real-time
OSs. The results were devastating: Microsoft code took up to 10 times longer
to do things like context switching than the very same computer loaded with
other operating systems. Our gambles on Windows development were not paying
off well because Windows kind of got in the way. Development tools were rich
in feature sets, but stability was always an issue. Disk I/O for even
small-ish data sets (about 12 megabytes per image, say) was slow, memory
swapping was slow, everything was slow and got slower over time. Windows 95
clients kept losing block drivers to their CD-ROMs for no reason.
It just seemed so bloody sloppy. And obfuscated. When you want to
really engineer or fix something, it's helpful to have documentation.
Microsoft software and tools became more and more opaque and dedicated to
Microsoft-only way of doing things. A kind of technical belligerance was
seen around Microsoft and its technology. It wasn't political, it became
practical: working with Microsoft technology, you always got the feeling that
you would solve problems not because of Microsoft technology, but in spite
of it.
Then somebody introduced me to Solaris. Industrial strength, well documented,
lots of well understood ways to get things done, extensible. But not open.
It was proprietary. There as a lot of documentation available,
but it did have a kind of sealed box feel to it.
And then somebody else introduced me to Linux and FreeBSD. Wow. All the plans
were right there (source code included!). All the docs were around in various
stages of bad or good, but overall it was no worse than dealing in Microsoft
or Solaris. And things evolved quickly. Drivers and kernels were improving.
Support was available by way of networking with other experts, an odd but
at the same time reassuring way of getting technical info.
I did not believe what I was seeing at first. I would ask to have large
image files opened and processed on small, slow computers and be astonished
as the machine and OS would not crash, would not choke, and would handle
larger and larger volumes of image and other data. I marveled at the uptime
simple Linux and FreeBSD boxes were getting compared to Microsoft (geez,
I had just developed a complete hatred of rebooting a computer and
thereby losing my work under circumstances that just did not seem to require
this). Unix and free Unix tool were everywhere for the use, and the
technology really never seemed to get in the way of the work.
Customers started to ask about this technology. Working as the Director
of Technology for a large and now defunct dot-com, I was surprised at how
productive and useful free OS and software technology had become. I
discovered Beowulf computing on stacks
of cheap Intel iron running free OSs could do some amazing things. And
reliability, stability and performance kept increasing.
Even Microsoft seems to have problems with Microsoft products. Microsoft
purchased the large (and, I believe, first big free email site) Hotmail.com
from its original developers at the height of the
dot-com boom. Hotmail.com had been developed under
FreeBSD and apparently
Microsoft tried to switch the entire Hotmail infrastructure to Windows.
This was, at the time, a failure, and Hotmail was switched back to FreeBSD
(I believe that it is now 'front-ended' by Windows but all back end
infrastructure is still FreeBSD or Solaris...). Please note this is not
conjecture nor rumor, and was a well documented case (and source of probable
much embarrassment to Microsoft). Microsoft should simply know, and do,
better.
Vendors suffer because of having to put up with Microsoft instability.
I was recently in a lab that had bought an Atomic Force Microscope. The
sales and technical people repeatedly pointed out that it was, in fact,
possible to physically damage the device based on how (and how often)
the Windows controller computer crashed, thereby slamming the microscopic
scanning head. You don't want to worry about this sort of thing when you
are a micrometer- and nanometer-literate person.
My customers will still ask me to work on Windows based systems and
applications. But my customers also derive great benefit from the work
we complete for them using Free and Open Source code. And I can't think
of a single customer that doesn't curse Windows desktop and server
stability on enormous numbers of computers they maintain and operate.
And I am always still pleased when customers comment about how odd it
is that their Unix and Open Source based OS apps just run and run, and
how they just wish Windows would do the same.
Recently, I attended a talk on the
World's Fastest Computer. It's based
on Linux. Amazing! These people are
world class experts on technology, and they picked an open source OS
as the core of their supercomputer. And it's a reliable machine, that they
can tailor exactly to their needs. They had the resources to do their software
any way they saw fit and they ended up using Open Source code. I think
this says something.
It's not political. It's practical. Open Source just seems to work better
and not get in the way.
Somebody pointed out that Open Source code and Linux culture in particular
was like re-discovering the joy of computers all over again. I must agree.
Amusing Windows performance topics
Back to Tesseract links