The history of the Cisco CLI

The history of the Cisco CLI

by Terry Slattery

 

CCIE Flyer

 

Every human endeavor has its own share of folklore and networking is no exception. I've been fortunate to have lived through the remarkable growth years and have collected and documented a number of stories like The History of Ping (http://connection.netcordia.com/blogs/terrys_blog/archive/2008/02/15/the-history-of-ping.aspx) and the History of the Cisco CLI (http://connection.netcordia.com/blogs/terrys_blog/archive/2007/10/28/the-history-of-the-cisco-cli.aspx).

 

During the development of the CLI, there was a key factor that I didn't document in my prior description of the history and one that David Yarashus, President of Chesapeake Netcraftsmen, thinks is worth documenting.

 

Greg Satz, the Cisco engineer and Director who contracted with me to develop the CLI, gave our team explicit directions to make it 100% backwards compatible. There was a large enough user base that he didn't want to make a change in the command syntax or how the CLI operated. Our team accomplished that, plus more. Rob Widmer added command line editing, command history, keyword completion, and interactive help to the CLI. It could be enabled or disabled with the new command 'terminal editing'. With this new command, we had to decide the default state: would editing be enabled by default? Greg insisted that it be disabled because that would be 100% backwards compatible.

However, I thought it should be enabled because it used the arrow keys (or CTRL keys), making it unobtrusive unless you knew of the editing commands. The only exception was for lines greater than 80 columns, which we shifted to allow them to be properly displayed (why we had to shift them is another story).

 

Fortunately, Greg became involved in another project and I left the editing enabled by default and stopped asking about it. The result is that IOS 9.21 shipped with command line editing enabled and that eliminated the complaint that many people had about the CLI versus the menu system that Wellfleet had.

 

So one key decision has allowed us to have a much more usable CLI and made our lives easier.

 

The history of the Cisco CLI

I don't think many people know the history of the Cisco CLI and the impact it has had on the industry. Other companies are emulating it, as evidenced in recent articles on the topic. Network engineers typically become experts in the Cisco CLI first, then move to other vendor gear, so it makes sense for companies to emulate it. Brad Reese, who writes for Network World's Cisco Subnet, did an article on the topic on October 5, 2007, Appealing to CCIEs, hardware vendors copy Cisco's CLI and NetFlow to get into Cisco accounts .

 

Back in the late 1980s and early 1990s, the Cisco CLI underwent several changes. The original Cisco router didn't even have a CLI. According to Kurt Lougheed, one of the founders of Cisco, it was only intended to have its configuration loaded via TFTP. He told me that he needed the ability to change the configuration at a trade show, so he added a quick hack to allow him to type the configuration into a buffer, which was passed to the function that parsed the TFTP file. The end of the input was indicated with CTRL-Z. You entered all the commands and when you pressed CTRL-Z, the file was parsed and any errors were displayed. It wasn't great to have a bunch of typing be wasted when an error occurred.

 

Some time later, the CLI was changed to cause lines to be executed as soon as they were entered instead of after the CTRL-Z was input. Greg Satz, who told me of this change, was pleased to note that I had just barely noticed the change. I distinctly recall thinking that something changed, but hadn't been able to put my finger on exactly what. The change reported errors as soon as you entered them, not after the entire buffer had been typed, so it was a good change. This change would have happened sometime before late 1990. There was still no command history, interactive help, or command editing capability.

 

In late 1990, Greg Satz contracted with me* to rebuild the CLI parser. The intent was to be able to extract the parser from the router (it wasn't called IOS yet) and load it into a management station so that Cisco config files could be parsed. Eighteen months later, the team I had assembled (Rob Widmer, Brent Baccala, Pete Welcher, and I) finished the new Cisco CLI, which was released in version 9.21. I recall this being the first half of 1992, but would have to do some research to verify it.

 

During development, Rob, who was doing the user input code, decided to allow full editing of commands, much like was possible with the Unix shells (user interface) at the time. The CLI he implemented used CTRL- style keystrokes, for mode-less command editing. There wasn't a way to handle multiple lines, so we decided to shift lines left and right and use the characters '^' and '$' to indicate that the line had been shifted. The lines were repainted on each keystroke so that it would work on any display.

 

While we were developing the new CLI, Bay Networks,** Cisco's main competitor, was doing a lot of sales and marketing around the fact that they had a menu interface and how that made their products easier to use. Managers and new people tended to buy into that story and it was making things difficult for Cisco on that front. The problem with menu systems is that you can't get a concise view of the entire state of the device. You have to pick your way through the menus to find the state of some setting, which becomes very inefficient after a short while. Once you switch to a configuration file for the concise view, you may as well learn that syntax and stop using the menu.

 

Shortly after we released 9.21, the marketing and sales efforts from Bay Networks started to slow and Cisco's growth continued on its upward streak. As I tell people these days, you can try to blame me for the CLI. But we had a goal of backwards compatibility, which we upheld. You may curse the CLI, but if you used it prior to 9.21, you probably thank us for adding the functionality that exists today.

 

* I had started Chesapeake Computer Consultants by this time. Greg and others at Cisco made multiple job offers to me, but they all required that I move to Calif - something I wasn't interested in doing. Silly me. Chesapeake went on to become one of Cisco's premier training and consulting partners. I left Chesapeake in March 2000 after getting the vLab system started and released. Chesapeake went out of business in late 2001.

 

** Wellfleet merged with Synoptics to become Bay Networks, which was later acquired by Nortel.

-Terry

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值