LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Blogs > Focused4Success
User Name
Password

Notices


Rate this Entry

Who is this Focused4Success Guy?

Posted 11-06-2010 at 07:56 AM by Focused4Success
Updated 11-06-2010 at 09:24 AM by Focused4Success (add category)

Hello all. I've decided to keep a log of my Unix and Linux escapades on my LQ Blog.

I've been a Unix guy since 1980. I got my first login while pursing an Information Engineering degree (INFE) at the University of Illinois Chicago Circle campus (UICC). I can't remember my login name, it was probably jpb. The computer was a PDP 11/45 with 256Kb of RAM. I don't know how big the disk was. It was running a modified Unix V7 kernel. The shell was... sh. The sysadmin, Ralph, had a room where he kept a healthy distance from the "users". All access was via dumb terminals connected via 1200 or 9600 RS232 cables. The system didn't have many users for about 2-3 weeks every quarter, then it got really busy - about 20 simultaneous users. Everybody was compiling C programs and printing the results. The computer was do overloaded, 'ls' took 30 seconds to execute at times.

It was pretty amazing that the system didn't crash with the load it was under. The sysadmin was really smart. He knew that every cycle mattered. We were only allowed to use 'cooked mode' when interacting with the system. What is cooked mode? The kernel buffers up all characters until an end of line character is seen, then it processes the entire line - sending it to the program attached to the tty. Why is this important? In 'raw' mode every character is processed by the Unix process and echoed back. This makes it possible to enter the letter 'a' and receive the letter 'b' back from the program. By running all the terminals in cooked mode, the shell is swapped out almost all the time. Of course this means you could only use a line editor. We used /bin/ed.

To say this was primitive is an understatement. Across the hall, the mainframe computers had "full screen" editors and all sorts of amazing stuff. The mainframes were used by university administration and for "computer science" classes. The Unix machines were owned by the Engineering Department. The difference in funding was like night and day. Using the a full screen editor was much more efficient than line editing.

Switching between full screen editing and line editing was pretty annoying. After a while we got to thinking... hey lets find a full screen editor for Unix! We poked around a little and found 'ep' - Editor for People. It was already available... but the sysadmin wouldn't allow it - it required "raw" mode to work. Sigh.

Being good engineering students, we didn't accept the situation. So we proposed a project to write a "nice editor" - ned. This editor was a full screen editor, but it worked in line mode, until a control character was entered then the line was sent and the screen was updated. This required a new tty mode, we called it "nice" mode... it was nicer to Unix than raw mode and not as nice as cooked mode. It was "just right".

A friend hacked the kernel, with the permission of the sysadmin and another friend helped me design and implement ned. Our advisor, Tom, was a really nice guy. After we wrote the editor he used it for a while. But, we were pretty green and it was really, really buggy. It didn't last very long.

Years later, I picked up the program and tried to fix it. Man, what was I think. Triple indirect pointers... dereferencing null pointers all over the place. Argh. Almost a total rewrite... but I did get it work properly eventually. Not that it mattered much - the personal computers were very common, saving CPU cycles was a thing of the past.

That is basically how my love affair with Unix started. There were many more projects like this. I hope to find time to tell about the them here. Maybe I'll enlist some college friends to help.
Posted in Unix Stories
Views 8842 Comments 1
« Prev     Main     Next »
Total Comments 1

Comments

  1. Old Comment
    Oh nice
    Posted 11-06-2010 at 08:08 AM by Web31337 Web31337 is offline
 

  



All times are GMT -5. The time now is 09:16 AM.

Main Menu
Advertisement
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration