Unix anniversary?

Yes, that must be it… integer overflows. Primitive computers could not count beyond 2^8

Time measurement is a mess. There is no natural origin. We measure the passing of time by counting something that moves… like the earth’s rotations. Trouble is nothing moves with perfect regularity… not even the beat of a caesium atom.
and
in relativity, the speed of clocks varies with their acceleration. If you are on a falling body, and I am stationary, your clock ticks slower.
Unix copes with all that by ignoring it… I assume it accepts occasional adjustments from the experts.

1 Like

Hi Neville, :wave:

Good point. I wouldn´t have thought of that.

This subject proves to get more interesting by the minute.
So I just presented your question to ChatGPT - just to add something to conversation :blush: :

overview:

  • Unix Epoch: 1970-01-01 00:00:00 UTC
  • Unix Time: The total number of seconds that have passed since the Unix epoch.

The choice of the Unix epoch (January 1, 1970) as the origin for Unix time was made for practical reasons, primarily related to the simplicity and efficiency of computing and representing time.

Here are some key reasons why Unix time was designed with its own epoch:

  1. Simplicity in Calculation:

The Unix epoch makes it easy to calculate the time difference between two points in time. By counting seconds from a fixed point, it simplifies the arithmetic involved in these calculations.
This approach avoids the complexities introduced by varying lengths of months, leap years, and other irregularities in calendar systems.

  1. Convenience in Development:

The selection of January 1, 1970, as the epoch was somewhat arbitrary but practical. Unix was developed in the late 1960s and early 1970s, so 1970 was a convenient and close starting point.
Using a recent epoch reduced the range of dates that needed to be handled in typical applications, which was particularly important given the limited computing power of early Unix systems.

  1. Efficiency in Storage:

Representing time as a single integer (the number of seconds since the epoch) is efficient in terms of both storage and processing. This format is compact and can be easily manipulated by computers, which is important for performance.

  1. Avoiding Ambiguities and Complex Conversions:

Traditional calendar systems (such as those based on BC/AD or other historical epochs) introduce complexities due to variations in calendar rules over time (e.g., different calendar systems, leap years, and leap seconds). By starting from a fixed, relatively recent point, Unix time avoids these historical complexities.

  1. Historical Context:

When Unix was being developed, using a date like 1970 made sense because it was a reasonable “zero point” for a modern operating system.
Setting the epoch far in the past would have resulted in unnecessarily large numbers for representing current dates, while a more recent date might have been seen as too arbitrary.

In summary, the Unix epoch was chosen for its practicality in computing environments, prioritizing simplicity, efficiency, and ease of use over historical or cultural considerations.
This decision has proven to be effective, as Unix time is widely used in many computing systems today.

Thanks to all of you for your input. :heart:

Many greetings from Rosika :slightly_smiling_face:

I can also remember patching a bunch of COBOL for Y2K.

2 Likes

That is exactly it. Unix tries to avoid these issues by sticking its head in the sand.
It works for a while, then reality catches up with any avoidance schemes.
Time is relative. You cant measure it absolutely, you can only measure its passing.

It is not a new problem

St Bede knew about it. It is his Feast Day today (well it is in some calendars anyway)

1 Like