> I asked Len why he wanted my
source code, and he told me that facilities wanted to take over the
router/EtherTIP’s development because
I couldn’t dedicate myself to full-time
support of the system I had invented
and developed with help from Mike
and Benjy over the past five years. This
request seemed reasonable to me, so I
gave him the access he requested and
thanked him for his willingness to
maintain and improve the software.
I didn’t know that Len and Sandy
Lerner had incorporated Cisco Systems
a year earlier or that Len might have
had an ulterior motive: to do a rewrite
and then copyright the sources as
Cisco Systems’ intellectual property.
> I learned about Cisco a year later
when I was called into Stanford’s legal
department and told to bring a hard
copy of my sources. Needless to say, I
was a little nervous. Upon arrival, I
was greeted by Stanford lawyer Iris
Brest, who explained Cisco’s existence
and Len, Sandy, and Kirk’s involvement. She then asked me to compare
the Sumex-AIM sources with the EE
sources that Kirk had written and tell
her if I thought the work was derivative. Most of the EE sources could best
have been described as plagiarized or
paraphrased: variable names were
changed, subroutines were renamed,
and large data structures were broken
into smaller ones, but identical parts
abounded throughout the code. Kirk
had added new features and removed
others, but the “derivation” was obvious even to Iris who, from what I could
tell, didn’t have a technical background. She thanked me, kept my
sources, and sent me on my way.
> Just to be clear, I didn’t object to the
formation of Cisco Systems or its use
of the code I had invented — in fact, I
was pleased that work of which I was
extremely proud could be used in this
manner. However, I did object to the
theft of intellectual property implicit in
Cisco’s copyright on the sources.
In case people are suspicious/wondering about this story, it is credible to me. I worked with Bill Yundt and he told the story back in 1996. I've also seen the absolute lowest layers of Cisco IOS for 68000's and it certainly appears to come from that era of computing. One especially surprising and interesting thing to me is that it uses cooperative multitasking, not preemptive. This is how systems were written in those days, based on the limitations of early microprocessors. (At the same time in the industry, protected mode multiprocessing existed. But it was in big iron, controlled by IBM, Cray, Unisys and CDC. And those are all of the has-beens now: because technologies like microprocessors, even with their limitations, took over the industry.)
I still remember when preemptive multitasking became big in the X86 world in the late 80s/early 90s. It was a real sea change in OS stability. DESQView was fantastic but real preemptive multitasking was amazing. It was why I stayed on OS/2 until 1996 or 1997.
I still like it to this day for microcontroller projects.
It's not that difficult to write code that iterates in chunks and yields now and then. Of course you want to avoid non-finite I/O calls (make use of timeout parameters where available).
Things that need low latency (eg. counting encoder ticks) are still interrupt driven (or handled by dedicated peripherals).
The only thing you need to achieve pre-emptive multitasking is interrupts and the ability to cleanly save the current CPU state.
The 68k lacked the ability to resume with full state intact after a bus fault, which made an off-chip MMU painful (but there was one - the MC68451[1]), but this doesn't affect the ability to do pre-emptive multitasking at all.
AmigaOS famously did have preemptive multitasking - we used it to mock PC and Mac users with for years.
[1] https://en.wikipedia.org/wiki/Motorola_68451
Note that to do full virtual memory with a 68k, Motorola proposed using a second 68k to handle page faults due to a design flaw:
You can preemptively schedule without an MMU just fine, just like there's nothing stopping multiple threads in the same address space from being preemptively scheduled.
Microware OS9 implemented preemptive multitasking on the motorola 6809 without an MMU back in 1980. You don't have memory protection without an MMU, but you can have preemptive multitasking.
As another commenter pointed out, you can do pre-emptive multitasking just fine without an MMU. And as it turns out AmigaOS had just that. All you need for pre-emptive multitasking is a suitable interrupt source to use for task switching.
What it did not have was memory protection or virtual memory. You do need an MMU for those.
I worked at Cisco 1999-2001, it was my first job out of school. I worked in a group that did network management software, so we weren't touching iOS.
But it was kind of wild at that point there were still company mailing lists where these old heads would argue about iOS internals and flame each other in front of the whole company.
We still had a non-web bug tracking system while I was there. It was an interesting era! The product I worked on did have a web interface as essentially its only UI. We used Java, at some point we used MS Visual J++, and this was before JSPs existed. We used some proprietary templating engine to generate HTML.
I'm 10 minutes in and find the narrator is a bit hard to understand. There isn't much in the video beyond the audio, at least in the first part, so maybe the storytelling improves. I'll keep watching later.
Apparently, the relationships between the executive leadership at Cisco (especially Len and Sandy) were ... volatile. I took a class from one of the top execs in the early days and he had so many colorful stories about his time there.
At Stanford in a non-academic IT department, not long after this was published, we had to beg for departmental firewalls to protect laptops, desktops, and "servers" (but not so much for proper servers). Every machine was essentially on the upper-cased then Internet with a globally-routable IPv4 with almost no Layer 2 IP ACLs. That didn't work so well with negligently-vulnerable Microsoft OS and software. The plus side was that Cisco gear was the standard networking stuff and relatively low cost for hardware and feature packs. Curiously, the housing draw (lottery) was run on a BSD box. About half of the department ran on top of FileMaker Pro (FMP), which ran on Xserves. It was the Windows 2000 and XP/2003 Server machines that were the biggest pains.
Yet another example of how government research drives modern innovation, and how the latest assault on it by the Trump administration will wipe out decades of innovation in the US
The irony is that the thing the government was trying to fund, use of AI in medicine, was almost entirely unrealized by this project.
It's also apparent that Xerox's involvement and willingness to share it's new inventions in Ethernet with a University eager to form the early Internet played a huge part in driving this outcome.
It seems almost completely incidental that we got an early implementation of a protocol router out of this. The government certainly wasn't trying to create one and I'm sure if they had actually involved themselves in that effort we would have gotten something far worse and far more costly.
Since the administration wasn't capable and didn't create the innovation in the first place you probably don't need to worry about later administrations removing it.
> Yet another example of how government research drives modern innovation
As the article starts, that's not how Cisco, and by extension a lot of Cisco employees, tell it. To a whole lot of people, Trump is just clearing out lazy hangers on who are preventing real innovation.
Cisco's story is two people working alone in their garage creating IP routing.
Here's a complimentary article from Bill Yeager's perspective: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=1407787
> I asked Len why he wanted my source code, and he told me that facilities wanted to take over the router/EtherTIP’s development because I couldn’t dedicate myself to full-time support of the system I had invented and developed with help from Mike and Benjy over the past five years. This request seemed reasonable to me, so I gave him the access he requested and thanked him for his willingness to maintain and improve the software. I didn’t know that Len and Sandy Lerner had incorporated Cisco Systems a year earlier or that Len might have had an ulterior motive: to do a rewrite and then copyright the sources as Cisco Systems’ intellectual property.
> I learned about Cisco a year later when I was called into Stanford’s legal department and told to bring a hard copy of my sources. Needless to say, I was a little nervous. Upon arrival, I was greeted by Stanford lawyer Iris Brest, who explained Cisco’s existence and Len, Sandy, and Kirk’s involvement. She then asked me to compare the Sumex-AIM sources with the EE sources that Kirk had written and tell her if I thought the work was derivative. Most of the EE sources could best have been described as plagiarized or paraphrased: variable names were changed, subroutines were renamed, and large data structures were broken into smaller ones, but identical parts abounded throughout the code. Kirk had added new features and removed others, but the “derivation” was obvious even to Iris who, from what I could tell, didn’t have a technical background. She thanked me, kept my sources, and sent me on my way.
> Just to be clear, I didn’t object to the formation of Cisco Systems or its use of the code I had invented — in fact, I was pleased that work of which I was extremely proud could be used in this manner. However, I did object to the theft of intellectual property implicit in Cisco’s copyright on the sources.
In case people are suspicious/wondering about this story, it is credible to me. I worked with Bill Yundt and he told the story back in 1996. I've also seen the absolute lowest layers of Cisco IOS for 68000's and it certainly appears to come from that era of computing. One especially surprising and interesting thing to me is that it uses cooperative multitasking, not preemptive. This is how systems were written in those days, based on the limitations of early microprocessors. (At the same time in the industry, protected mode multiprocessing existed. But it was in big iron, controlled by IBM, Cray, Unisys and CDC. And those are all of the has-beens now: because technologies like microprocessors, even with their limitations, took over the industry.)
I still remember when preemptive multitasking became big in the X86 world in the late 80s/early 90s. It was a real sea change in OS stability. DESQView was fantastic but real preemptive multitasking was amazing. It was why I stayed on OS/2 until 1996 or 1997.
I still like it to this day for microcontroller projects.
It's not that difficult to write code that iterates in chunks and yields now and then. Of course you want to avoid non-finite I/O calls (make use of timeout parameters where available).
Things that need low latency (eg. counting encoder ticks) are still interrupt driven (or handled by dedicated peripherals).
The 68K lacked an MMU, so cooperative multitasking was really the only way to do it. Same reason MacOS and AmigaOS were cooperative multitasking.
The only thing you need to achieve pre-emptive multitasking is interrupts and the ability to cleanly save the current CPU state.
The 68k lacked the ability to resume with full state intact after a bus fault, which made an off-chip MMU painful (but there was one - the MC68451[1]), but this doesn't affect the ability to do pre-emptive multitasking at all.
AmigaOS famously did have preemptive multitasking - we used it to mock PC and Mac users with for years.
[1] https://en.wikipedia.org/wiki/Motorola_68451 Note that to do full virtual memory with a 68k, Motorola proposed using a second 68k to handle page faults due to a design flaw:
https://retrocomputingforum.com/t/correcting-errors-by-dupli...
There were also alternatives to the Atari ST TOS which feature preemptive multitasking, like
https://en.m.wikipedia.org/wiki/MagiC
and
https://en.m.wikipedia.org/wiki/MiNT
You can preemptively schedule without an MMU just fine, just like there's nothing stopping multiple threads in the same address space from being preemptively scheduled.
Microware OS9 implemented preemptive multitasking on the motorola 6809 without an MMU back in 1980. You don't have memory protection without an MMU, but you can have preemptive multitasking.
As another commenter pointed out, you can do pre-emptive multitasking just fine without an MMU. And as it turns out AmigaOS had just that. All you need for pre-emptive multitasking is a suitable interrupt source to use for task switching.
What it did not have was memory protection or virtual memory. You do need an MMU for those.
AmigaOS had preemptive multitasking.
I worked at Cisco 1999-2001, it was my first job out of school. I worked in a group that did network management software, so we weren't touching iOS.
But it was kind of wild at that point there were still company mailing lists where these old heads would argue about iOS internals and flame each other in front of the whole company.
We still had a non-web bug tracking system while I was there. It was an interesting era! The product I worked on did have a web interface as essentially its only UI. We used Java, at some point we used MS Visual J++, and this was before JSPs existed. We used some proprietary templating engine to generate HTML.
Oh god, it wasn’t ASDM for the ASA was it? Always one Java update away from not being able to manage your firewalls
Similar to this, RetroBytes (the Youtube channel) did a video on the origin of Cisco recently which is worth a listen at 2x https://youtu.be/NXTdwzjiW7E?si=bCVpmEkyf1UUCfyR
I just watched that, fantastic video.
I'm 10 minutes in and find the narrator is a bit hard to understand. There isn't much in the video beyond the audio, at least in the first part, so maybe the storytelling improves. I'll keep watching later.
Yeah the actual video content portion of his videos varies a lot, but this one is basically just an essay that can be listened to.
As for his British accent, I find him understandable at 2x speed, but there are many others I can only listen to at 1.5x
Apparently, the relationships between the executive leadership at Cisco (especially Len and Sandy) were ... volatile. I took a class from one of the top execs in the early days and he had so many colorful stories about his time there.
At Stanford in a non-academic IT department, not long after this was published, we had to beg for departmental firewalls to protect laptops, desktops, and "servers" (but not so much for proper servers). Every machine was essentially on the upper-cased then Internet with a globally-routable IPv4 with almost no Layer 2 IP ACLs. That didn't work so well with negligently-vulnerable Microsoft OS and software. The plus side was that Cisco gear was the standard networking stuff and relatively low cost for hardware and feature packs. Curiously, the housing draw (lottery) was run on a BSD box. About half of the department ran on top of FileMaker Pro (FMP), which ran on Xserves. It was the Windows 2000 and XP/2003 Server machines that were the biggest pains.
Yet another example of how government research drives modern innovation, and how the latest assault on it by the Trump administration will wipe out decades of innovation in the US
The irony is that the thing the government was trying to fund, use of AI in medicine, was almost entirely unrealized by this project.
It's also apparent that Xerox's involvement and willingness to share it's new inventions in Ethernet with a University eager to form the early Internet played a huge part in driving this outcome.
It seems almost completely incidental that we got an early implementation of a protocol router out of this. The government certainly wasn't trying to create one and I'm sure if they had actually involved themselves in that effort we would have gotten something far worse and far more costly.
Since the administration wasn't capable and didn't create the innovation in the first place you probably don't need to worry about later administrations removing it.
Many innovations come from unrelated projects
> Yet another example of how government research drives modern innovation
As the article starts, that's not how Cisco, and by extension a lot of Cisco employees, tell it. To a whole lot of people, Trump is just clearing out lazy hangers on who are preventing real innovation.
Cisco's story is two people working alone in their garage creating IP routing.
https://www.computerhistory.org/revolution/networking/19/375...
this, too, mentions Yeager as the initial developer, and that CISCO licensed and enhanced his work from Stanford.