PärPod Tech
PärPod Tech
PärPod Tech
The Origin of Cron: Version B
10m · Apr 05, 2026
A high school dropout rewrote the Unix task scheduler in 1987, and his design has remained the backbone of server automation for fifty years without significant change.

Introduction

Every minute of every day, on millions of servers around the world, a tiny daemon wakes up, checks a list, and asks the same question: is there anything I should be doing right now? The program is called cron, and it has been asking that question since the nineteen seventies. Its name comes from the Greek word chronos, meaning time, and its story stretches from a dusty sixth-floor room at Bell Labs to the backbone of modern computing infrastructure.

What makes cron remarkable is not complexity. It is arguably one of the simplest ideas in all of Unix. And yet that simplicity is exactly why it survived for over fifty years while countless more ambitious systems came and went. Let's trace how a basic loop and a text file became one of the most quietly important programs ever written.

The Bell Labs Garage Band

To understand cron, you have to understand the place that made it. In the late nineteen sixties, Bell Labs in Murray Hill, New Jersey was home to an unusual group of programmers working on the sixth floor of Building Two. The top floor had sloping walls like an attic, dim corridors, and leftover equipment from the Second World War sitting behind chain-link fencing. It was not glamorous. But in that room sat a PDP-11 computer, some teletype terminals, a few tables, and a handful of people who would reshape computing forever.

Ken Thompson and Dennis Ritchie had just walked away from Multics, a massive time-sharing operating system built by MIT, Bell Labs, and General Electric. Multics had big ideas but even bigger problems. Thompson and Ritchie wanted something smaller and simpler. When Thompson's wife Bonnie took their infant son to visit grandparents in California for three weeks, Thompson sat down and wrote a working operating system in her absence. He later said he had realized he was about three weeks from a complete system, and the timing was perfect.

That system became Unix. Brian Kernighan, a Canadian colleague down the hall, gave it its name as a joke, a play on Multics. Where Multics did everything at once, Unix did one thing at a time. Uniplexed instead of multiplexed. The name stuck.

A Daemon Is Born

Unix was built on a philosophy of small, sharp tools that each did one job well. But even small tools need maintenance. Log files need rotating. Temporary files need cleaning up. Reports need generating at specific hours. Somebody has to take out the trash, and in the early seventies at Bell Labs, Ken Thompson wrote a program to do exactly that.

The original cron was astonishingly simple. It was a daemon, which in Unix terminology means a background process that runs continuously without anyone watching it. Every sixty seconds, cron would wake up, read a single file located at a path called etc lib crontab, check whether any listed commands were supposed to run at that exact minute, execute them as the superuser, and go back to sleep. That was the entire algorithm. Wake up. Read the list. Do the work. Sleep. Repeat.

The crontab file itself used a format that would become one of the most recognizable syntaxes in all of computing: five fields specifying minute, hour, day of month, month, and day of week, followed by the command to run. An asterisk meant every possible value. So five asterisks followed by a command meant run this every single minute of every single day. It was terse, almost cryptic, but it fit perfectly into the Unix ethos of saying more with less.

The Resource Problem

There was a catch. On the machines of the nineteen seventies, waking up every sixty seconds to re-read a configuration file and scan through a list of jobs was surprisingly expensive. These were not modern processors with gigahertz clock speeds. They were slow, shared systems where every CPU cycle mattered. And cron consumed those cycles whether or not it actually had anything to do.

The System V version of Unix tried to address this with a cleverer sleeping strategy. Instead of always waking up every minute, the daemon would calculate when the next scheduled job was due and sleep until then. If nothing was scheduled for the next thirty minutes, it would nap for thirty minutes instead of waking up thirty times for nothing. This saved resources but introduced a new problem: if someone changed the crontab file, the sleeping daemon would not notice until it woke up on its own. Updating your schedule could mean waiting half an hour for the change to take effect.

There was also a bigger architectural limitation. The original cron had just one crontab file for the whole system, and only the superuser could schedule jobs. On a shared machine with dozens of users, this meant every scheduling request had to go through the system administrator. It was like having one alarm clock for an entire office building, and only the building manager could set it.

The High School Dropout Who Fixed Everything

This is where the story takes an unexpected turn, away from Bell Labs and toward George Washington High School in San Francisco. A teenager named Paul Vixie was growing up in the city in the late nineteen seventies, and his school had no computers. So he started cutting class and walking over to City College of San Francisco, where they had a Honeywell mainframe. A friend's father taught him programming, and Vixie got hooked. He later described it as being like ham radio or cars, just a cool thing to do.

In nineteen eighty, the school told Vixie he would have to repeat eleventh grade. He dropped out on the spot and got a job as a programmer at a consulting firm. Nobody asked how old he was, and he did not volunteer the information. He was seventeen.

By nineteen eighty-seven, Vixie had been programming professionally for seven years without ever finishing high school. He was working at Digital Equipment Corporation in Palo Alto and had become deeply embedded in the Unix community. He noticed that cron, this essential piece of infrastructure that every Unix system depended on, was showing its age. So he did what Unix programmers do. He rewrote it.

Vixie Cron Changes the Game

Vixie did something unusual before writing a single line of code. He went out and asked people what they wanted. He canvassed Unix users and system administrators for their frustrations with cron and their wishes for improvements. Then he sat down and built what became known as Vixie cron.

The changes were practical and transformative. The biggest one was per-user crontabs. Instead of a single system-wide file that only root could edit, every user on the system could now maintain their own schedule of jobs. Each user's crontab was stored in a protected directory, and a companion program called crontab, with a lowercase c, let users create and edit their schedules safely. The daemon would scan all user files and run each job with the permissions of the user who scheduled it.

Vixie also expanded the syntax. You could now use names for days of the week and months instead of just numbers. Monday and Tuesday instead of one and two. January instead of one. He added ranges and step values, so you could write something like every five minutes or every weekday without listing each value separately. The five-field format stayed the same, but it became dramatically more expressive.

The first version shipped on May sixth, nineteen eighty-seven. Version two followed in nineteen ninety, a beta of version two in late nineteen eighty-eight. Version three arrived on December twenty-seventh, nineteen ninety-three. The license was characteristically blunt. Distribute freely, Vixie wrote, but do not remove my name from the source, do not take credit for my work, mark your changes so I do not get blamed for your bugs, and do not sell it without source code. No warranty of any kind.

From De Facto to De Jure

In nineteen ninety-two, something important happened. The POSIX standard, which defines how Unix-like operating systems should behave, formally included a description of the crontab format and the basic principles of how cron should work. Cron went from being a useful tool that happened to exist on every system to being an official part of what it means to be Unix. A de facto standard became a de jure standard.

When Linux started gaining traction in the early nineteen nineties, distributions needed a cron daemon. Vixie cron was the obvious choice. It was well designed, it met the POSIX requirements, and its liberal license was compatible with the free software movement that was powering Linux's growth. Debian, Ubuntu, and most major distributions adopted it as their default scheduler. The version of cron running on your Linux server today is almost certainly a descendant of what that high school dropout from San Francisco wrote in nineteen eighty-seven.

Red Hat forked Vixie cron in two thousand seven to create a project called cronie, adding features like PAM and SELinux support. But even cronie is Vixie cron at its core, like a house that has been renovated but still sits on the original foundation.

Five Stars and a Command

There is something almost poetic about the crontab syntax that has survived essentially unchanged for half a century. Five fields and a command. Minute, hour, day of month, month, day of week. The asterisk meaning everything. The layout so compact that experienced administrators can read a crontab entry the way musicians read sheet music, instantly seeing the rhythm of when a job will fire.

The format is also famously unforgiving. Swap two fields and your midnight backup runs at noon. Forget that Sunday can be either zero or seven depending on the implementation and you miss a whole day. The five-star format has launched countless debugging sessions and inspired at least a dozen web-based crontab generators that translate human language into those five cryptic columns.

And yet people keep using it. Not because there are no alternatives. There are dozens of modern schedulers with graphical interfaces and dependency chains and retry logic. People keep using cron because it works. Because it is already there. Because a single line in a text file is the smallest possible distance between wanting something to happen on a schedule and making it happen.

The Quiet Backbone

Today, somewhere in the world, cron is rotating log files on a web server. It is pulling weather data from an API for a small-town dashboard in northern Sweden. It is triggering database backups for banks, sending reminder emails for startups, cleaning up temporary files on university machines, and checking whether a Raspberry Pi is still connected to the network.

Cron does not trend on social media. Nobody writes breathless blog posts about the latest cron release. It is infrastructure in the truest sense, invisible when it works, noticed only when it breaks. Ken Thompson built the first version in a handful of lines. Paul Vixie rewrote it as a dropout in his twenties. Fifty years later, it is still the first tool most administrators reach for when something needs to happen at a specific time.

The Greek god Chronos was said to devour his own children, consuming time itself. The little Unix daemon named after him is gentler. It just watches the clock, reads the list, and does the work. Every minute. Every day. For fifty years and counting.