unix - ReadWriteWeb http://www.readwriteweb.com/feeds/tag/unix en Copyright 2012 Richard MacManus readwriteweb@gmail.com Tue, 14 Feb 2012 05:30:00 -0800 http://www.sixapart.com/movabletype/?v=4.35-en http://blogs.law.harvard.edu/tech/rss Remembering Dennis Ritchie, Creator of the C Programming Language and UNIX Co-Creator dennis-ritchie.jpgDennis M. Ritchie, co-creator of UNIX and father of the C programming language, died this past weekend after a long illness. It's no exaggeration to say that without Ritchie, modern computing would not be what it is today.

Often known as "dmr," Ritchie was born in Bronxville, NY in 1941. He studied at Harvard University, initially focusing on physics. Ritchie said that he entered computing because "my undergraduate experience convinced me that I was not smart enough to be a physicist, and that computers were quite neat."

]]> Redux2011.pngEditor's note: This story is part of a series we call Redux, where we're re-publishing some of our best posts of 2011. As we look back at the year - and ahead to what next year holds - we think these are the stories that deserve a second glance. It's not just a best-of list, it's also a collection of posts that examine the fundamental issues that continue to shape the Web. We hope you enjoy reading them again and we look forward to bringing you more Web products and trends analysis in 2012. Happy holidays from Team ReadWriteWeb!

"As a result, C became in effect a universal assembler: close enough to the machine to be cost effective, but far enough away that a C program could be compiled for and run well on any machine." Brian Kerninghan

Ritchie joined Bell Labs in 1967 and worked with a group of developers, including Ken Thompson, to create UNIX, the first version of which was released in 1969. Initially called UNICS (following a system called MULTICS) was written in a low-level assembly language by Thompson. According to Thompson, Ritchie's contribution to UNIX was "mostly on the language and the I/O system."

The Creation of C

The language, of course, was C. So named because it followed the B (for Bell Labs) programming language, C is a higher-level language designed to allow cross-platform programming. To make it portable to different hardware, it was re-written in C, and released in 1971 as UNIX.

k-and-r.jpg

Brian Kerninghan said that with C "Dennis managed to find a perfect balance between expressiveness and efficiency. It was just right for creating systems programs like compilers, editors, and even operating systems. C made it possible for a programmer to get close to the machine for efficiency but remain far enough away to avoid being tied to a specific machine... As a result, C became in effect a universal assembler: close enough to the machine to be cost effective, but far enough away that a C program could be compiled for and run well on any machine."

The concept of a multi-platform language and operating system no doubt seem, well, unexceptional today. However, at the time, it was unheard of, as Herb Sutter notes.

"Before C, there was far more hardware diversity than we see in the industry today. Computers proudly sported not just deliciously different and offbeat instruction sets, but varied wildly in almost everything, right down to even things as fundamental as character bit widths... There was no such thing as a general-purpose program that was both portable across a variety of hardware and also efficient enough to compete with custom code written for just that hardware."

Tim Bray writes, "Unix combines more obvious-in-retrospect engineering design choices than anything else I've seen or am likely to see in my lifetime... It is impossible – absolutely impossible – to overstate the debt my profession owes to Dennis Ritchie. I've been living in a world he helped invent for over thirty years."

The combination of C and UNIX have been at the core of computing ever since, and are (in slightly altered form) still going strong today. UNIX, as a portable and multi-user operating system, became extremely popular. AT&T was prohibited from entering the computer market at the time UNIX was created, so it was freely spread far and wide to businesses, schools, and within the U.S. government.

ritchie-and-thompson.jpg

UNIX ultimately spawned dozens of versions, including SunOS and Solaris, AIX, HP-UX, NeXTSTEP, BSD, A/UX, Mac OS X and many others. UNIX inspired the GNU Project and Linux, though they are not derived from the same codebase.

C is still widely used, as are its direct descendants; C++, Perl, Objective-C, Java, C#, PHP and many others.

K&R

The popularity of C has been helped by The C Programming Language, often referred to as K&R for its co-authors: Kerninghan and Ritchie.

The book was published in 1978, and is a comprehensive guide to C in less than 300 pages. Kerninghan said that he "twisted Dennis's arm into writing it" which was "probably the smartest thing I ever did." Kerninghan called Ritchie "an exceptionally clear and elegant writer."

"It is impossible – absolutely impossible – to overstate the debt my profession owes to Dennis Ritchie. I've been living in a world he helped invent for over thirty years." Tim Bray

K&R continues to be considered an important guide to C. It was revised in 1988 to accommodate the ANSI C standard, and has been translated into more than 20 languages. Kerninghan said that the book has been successful "in large part because of the success of C, though it probably helped that the book, like the language, is rather small and simple, and made it possible for people to do useful things quickly."

The book made popular the now-obligatory "Hello World!" example, which explains how to create a small program that prints "Hello World!" to the display.

Later Career

Later in his career, Ritchie continued in computer research and contributed to the creation of Plan 9 and Inferno distributed operating systems.

While neither Plan 9 or Inferno have achieved widespread popularity, Inferno has been released as open source and is under continued development.

Ritchie retired as the head of Lucent Technologies System Software Research Department in 2007. He received numerous awards for his achievements, including the U.S. National Medal of Technology in 1999 in conjunction with Thompson.

Rob Pike, who worked with Ritchie at Bell Labs and on the Plan 9 and Inferno projects, reported Ritchie's passing yesterday, saying, "He was a quiet and mostly private man, but he was also my friend, colleague, and collaborator, and the world has lost a truly great mind."

]]> Discuss]]>
http://www.readwriteweb.com/archives/redux_remembering_dennis_ritchie_creator_of_the_c_progra.php http://www.readwriteweb.com/archives/redux_remembering_dennis_ritchie_creator_of_the_c_progra.php 2011 Redux Mon, 26 Dec 2011 06:00:00 -0800 Joe Brockmeier
The Internet Will End in 30 Years! Have you heard the latest doomsday scenario? In thirty years, the internet will stop working! Apparently, a bug similar to the millennium bug will affect Unix-based systems, like those that run the tubes, in the year 2038. The bug, being dubbed the "2038 bug," arises because Unix-based systems store the time as a signed 32-bit integer, in seconds, from midnight on January 1 1970. And the latest time that can be represented in that format, by the Posix standard, is 3:14 AM on January 19, 2038. After that, times will wrap around and be represented as a negative number.]]>

And then what happens?

Programs will fail, of course. Since they will see times not as being in 2038 but rather in 1901, erroneous calculations and decisions will occur. (It's true, I checked Wikipedia!)

We've actually seen fallout from the 2038 bug already, back in May of 2006 when the AOLserver web server software crashed. The software was designed so that database requests would "never" time out. Instead of assigning a "0" to the timeout, the software specified a timeout date one billion seconds in the future. One billion seconds (just over 31 years 251 days and 12 hours) after 21:27:28 on 12 May 2006 is beyond the 2038 cutoff date. The system calculated a timeout date that was actually in the past, got confused, and crashed.

The bug even affected the Mars Rover!

Want More Proof?

Check out the archived outputs from test scripts here:

What's Affected?

By 2038, it's likely that many of the susceptible machines will have been decommissioned before the critical date occurs. However, legacy systems and embedded systems could still be affected. These may include process control computers, space probe computers, embedded systems in traffic light controllers, navigation systems, routers, gas pumps, etc. It may not be possible to upgrade many of these systems, so they will need to be replaced.



I'm a Programmer - What Can I Do?


(Source: the 2038 FAQ)

The End?

Before mass hysteria sets in, let's all remember that we have years, decades even, to deal with this latest programming glitch.

And as for the internet?

Well, I'm pretty sure that self-improving Artificial Intelligences will be running the world by then, so we probably don't need to worry too much about this.

(via guardian.co.uk)

]]> Discuss]]> http://www.readwriteweb.com/archives/the_internet_will_end_in_30_years.php http://www.readwriteweb.com/archives/the_internet_will_end_in_30_years.php Trends Thu, 13 Mar 2008 14:00:00 -0800 Sarah Perez