cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1086
Views
20
Helpful
9
Replies

Cisco - History of upgrade file types ?

vv0bbLeS
Level 1
Level 1

Hello all,

I'm new to Cisco and I've been learning about the various platforms and the ways you can upgrade them (.tar, .pkg, and .bin files, install vs bundled mode, etc.).

 

I'm currently trying to become more familiar with the various upgrade file types, and I'm curious about the evolution of the upgrade files from the early days (like the 1970's) up until present day. For example:

 

1. How were upgrades done in the past? Did you use only .bin files, and what all was contained in these old school .bin files?

 

2. Why did .tar and .pkg files come into play? What was the reason for introducing these file types as opposed to just staying with the .bin files?

 

3. What do modern .bin and .pkg files contain? (I know on some platforms the .bin files are really just .tar files that contain the .pkg files, but on other platforms the .bin files are just the literal binary files, but not sure what these literal binary files contain in terms of the upgrade.)

 

4. On platforms where the .bin file is literally just that (a binary file), what is the .bin file used for, and how do the .pkg files relate to the literal .bin file ?

0xD2A6762E
2 Accepted Solutions

Accepted Solutions

Joseph W. Doherty
Hall of Fame
Hall of Fame

Back to the 70's, eh? That's before Cisco was started (12/84). At the time, for the next few years too, realize Cisco was an "unknown" start-up. I.e. few probably have direct experience using their then equipment (I for one, although I started in the industry in the very late 70's, for example, do not have such experience).

(Also understand, until about the 90's, networking didn't much exist as we know it as of now. In the 60's, 70's and 80's, LANs pretty much didn't exist as rather there were minicomputers and mainframes which had tens to thousands of terminals. WAN links, too, were "rare"; while a high speed WAN link was a full T-1. [Also what made Cisco "shine", was it support for all the different network protocols that were in use before IP become the general standard.])

In my case, my initial experience with Cisco was when their routers like the 2500 series and the 4000 series were "the" small routers to buy. The former used "BIN" (binary - a directly executable image) the ran directly from flash, the latter had "MZ" (i.e. compressed) images that the boot process would decompress from flash into a bin image in RAM. (NB: I recall, if you had sufficient flash [which you usually didn't] you could manually decompress the bin image [from the MZ file] and save that into flash, which would allow the router to boot a bit faster as it then didn't need to actually take the time to decompress the image to load it into RAM.)

TAR (basically the UNIX format of files for Tape ARchives) files came later, when Cisco started bundling other software (like a basic IOS web based interface) with the BIN image. I recall (?) you would manually use a IOS command to decompress the TAR into all its component files. (Also fun, the early flash format didn't automatically reuse deleted flash file space; after deleting a file you would need to "squeeze" the flash.)

PKG files are, more or less, super TAR files, i.e. they contain multiple file components that an "installation" program can utilize. For example, if the installation process "discovers" a BIOS update is needed, it will pull what it needs from the PKG file, use it to update what it needs to, but not save the component as a separate file on flash (beyond whatever it may have done for the BIOS update). BTW, generally the installation process will have a BIN file(s) somewhere (the installation process will also do things like update bootvar) that contain the whole IOS image, or now in some case, multiple/module files that comprise the IOS.

Perhaps @Richard Burts will respond to your query too, I suspect he has better/more Cisco experience, than I, that goes way back.

View solution in original post

I appreciate the mention by @Joseph W. Doherty and his opinion that I might fill in some things. I started working with computers in 1977 and worked for a while as a mainframe computer programmer. In that time frame computers were mostly either big mainframes or very small and networking was frequently IBM SNA. Over the years there were more smaller computers and more varieties of networking alternatives (how many of us remember IPX, or Appletalk, or MOP, or NetBIOS). I started working with Cisco equipment in 1994 and like Joseph remember routers that ran IOS from flash. Over time networking protocols evolved and IP became the dominant protocol. I think Joseph did an admirable job of explaining the evolution from the early routers (and then switches) where the bin file was the executable code and we loaded it directly to flash to store it and it was the only thing that we loaded. As our systems became more complex there became other types of code associated with code upgrades (like code for a GUI, or microcode for some platforms, or other management features) and we used tar, and pkg as ways to bundle the various files that might be needed. Using this approach we have a single file to down load from Cisco and that has the component files that might be needed. As our environments have become more complex we have moved away from a system where a code upgrade was simply load a new executable and point the device at the new code to where we increasingly use installation programs to manage the upgrade and they extract the components they need from the bundle as they need them.

HTH

Rick

View solution in original post

9 Replies 9

Joseph W. Doherty
Hall of Fame
Hall of Fame

Back to the 70's, eh? That's before Cisco was started (12/84). At the time, for the next few years too, realize Cisco was an "unknown" start-up. I.e. few probably have direct experience using their then equipment (I for one, although I started in the industry in the very late 70's, for example, do not have such experience).

(Also understand, until about the 90's, networking didn't much exist as we know it as of now. In the 60's, 70's and 80's, LANs pretty much didn't exist as rather there were minicomputers and mainframes which had tens to thousands of terminals. WAN links, too, were "rare"; while a high speed WAN link was a full T-1. [Also what made Cisco "shine", was it support for all the different network protocols that were in use before IP become the general standard.])

In my case, my initial experience with Cisco was when their routers like the 2500 series and the 4000 series were "the" small routers to buy. The former used "BIN" (binary - a directly executable image) the ran directly from flash, the latter had "MZ" (i.e. compressed) images that the boot process would decompress from flash into a bin image in RAM. (NB: I recall, if you had sufficient flash [which you usually didn't] you could manually decompress the bin image [from the MZ file] and save that into flash, which would allow the router to boot a bit faster as it then didn't need to actually take the time to decompress the image to load it into RAM.)

TAR (basically the UNIX format of files for Tape ARchives) files came later, when Cisco started bundling other software (like a basic IOS web based interface) with the BIN image. I recall (?) you would manually use a IOS command to decompress the TAR into all its component files. (Also fun, the early flash format didn't automatically reuse deleted flash file space; after deleting a file you would need to "squeeze" the flash.)

PKG files are, more or less, super TAR files, i.e. they contain multiple file components that an "installation" program can utilize. For example, if the installation process "discovers" a BIOS update is needed, it will pull what it needs from the PKG file, use it to update what it needs to, but not save the component as a separate file on flash (beyond whatever it may have done for the BIOS update). BTW, generally the installation process will have a BIN file(s) somewhere (the installation process will also do things like update bootvar) that contain the whole IOS image, or now in some case, multiple/module files that comprise the IOS.

Perhaps @Richard Burts will respond to your query too, I suspect he has better/more Cisco experience, than I, that goes way back.

I appreciate the mention by @Joseph W. Doherty and his opinion that I might fill in some things. I started working with computers in 1977 and worked for a while as a mainframe computer programmer. In that time frame computers were mostly either big mainframes or very small and networking was frequently IBM SNA. Over the years there were more smaller computers and more varieties of networking alternatives (how many of us remember IPX, or Appletalk, or MOP, or NetBIOS). I started working with Cisco equipment in 1994 and like Joseph remember routers that ran IOS from flash. Over time networking protocols evolved and IP became the dominant protocol. I think Joseph did an admirable job of explaining the evolution from the early routers (and then switches) where the bin file was the executable code and we loaded it directly to flash to store it and it was the only thing that we loaded. As our systems became more complex there became other types of code associated with code upgrades (like code for a GUI, or microcode for some platforms, or other management features) and we used tar, and pkg as ways to bundle the various files that might be needed. Using this approach we have a single file to down load from Cisco and that has the component files that might be needed. As our environments have become more complex we have moved away from a system where a code upgrade was simply load a new executable and point the device at the new code to where we increasingly use installation programs to manage the upgrade and they extract the components they need from the bundle as they need them.

HTH

Rick

Ah yes sorry, I had a co-worker mention the 1970's for Cisco, but I thought I remember reading in Cisco's history that they started in the 80's so I just went with what he said. :)

 

Firstly, I can't tell you both how much I appreciate you taking the time to write all that history out. I very much like early computer history (I mainly focus on more modern icons like Ken Thompson and Jon Postel, but even earlier pioneers are of interest to me), and I love hearing stories from engineers who were working in the earlier days of computers. It's hard for me to imagine a world where IP is not a dominant networking standard or where TCP doesn't exist yet, or where the highest-level programming language available was Fortran and computers cost tens of thousands of dollars each. (Also, for anyone else who likes computer history, Dr. David Brailsford on the Computerphile channel on YouTube has several fascinating videos on the early computer days, on topics such as "where did the 8-bit byte come from? Why not a 6-bit byte, or even a 5-bit byte?" or on topics about early icons in computer history like John Von Neumann or even a visit to Bletchley Park to discuss the computers used in the 1940s' during WWII).

 

Secondly, I loved learning that .tar stands for Tape ARchive from Unix. Also, the .pkg files were a bit confusing to me but you both mentioned how the Cisco system "pulls things from those files as needed," so as Richard mentioned they are just bundles of what all files could be needed, and the system uses whatever "sub-files" or "sub-code" it needs from the .pkg files during the overall upgrade process.

 

I suppose one thing I'm still unclear on is that it seems like some platforms use a .bin file to upgrade, while others use a .tar file. Does a modern .bin file contain other "sub-files," i.e. is it a "super .bin file" or is it just that a particular platform's upgrade procedure only requires the literal binary image and that's it, while other platforms use the .tar file (which I guess contains the .bin file and the .pkg files also?) ?

 

Again, tons of thanks to you both, I very much appreciate it and will be re-reading your posts above more than once! Thanks again!

 

0xD2A6762E

As far as I know, modern BIN file are still just executable files and don't contain anything but some form of binary image to load into the device for execution.

". . . computers cost tens of thousands of dollars each."

Perhaps some of the "inexpensive" (and very "small") minis, but the mainframes were much, much, much more. (I think I recall 100..300 MB disk drives were in the multi-hundred thousands.)

I bought a personal microcomputer (the term PC didn't become common until IBM's PC in '81) system in '79 (my first) which had 32 KB RAM, two 89 KB single sided 5 1/4 inch floppy drives, and an 80 CPS 9 pin dot matrix (an actual Centronix) printer for only $3,500 (about $1,500 under list). (Oh, my salary that year was $10,500.)

Ah OK great! Glad to learn that on the .bin files, I will log that away.

 

And very interesting on the 6-figure price-tag of the mainframes! I'm glad to learn that, as I was way out of my reckoning on that one haha, but that does make sense now that you mention it, since I suppose it was mainly institutions like universities and the government that could afford them back then. And I guess that drives home how big a deal it was in the early 1960's when MIT allowed their students access to their mainframes to program stuff that might be outside their schoolwork (at least when the mainframes weren't scheduled for other uses of course). From my reading, that access led to the creation of the computer game Spacewar! which apparently was one of the first computer games to become "popular" in the sense that it was spread around to other locations (hard to port the game because of different mainframe computer architectures of course, but they made it happen lol).

 

And wow that is so cool about your first computer! I suppose a forum post isn't the best place for me to carry on this conversation haha, but I would imagine that 32KB of RAM was pretty good back then? And I bet it was super fancy to have an extra 89KB floppy disk (and not just one extra, but two :)  ) And hey, that sounds like a killer deal to get it for $1500 under list price (30% off!), but it's also staggering to think that a minicomputer back then, even at 30% off, would have cost me 1/3 of my yearly salary! Crazy!

 

And unfortunately I'm not well-versed in my computer networking history, and this may be getting off-topic for this forum thread, but I would be very interested to know what kind of networking capability or options such a minicomputer would have had back in 1979? (From what reckoning I do have, that would seem pretty darn early-on for computer networking.) Would networking have even been a consideration when buying a minicomputer back then? (If the forums aren't the best place to discuss this then we can table this for some other time.)

 

In any case, I really appreciate your time and all the info and answers! I've definitely enjoyed it and learned a lot!

0xD2A6762E

"And very interesting on the 6-figure price-tag of the mainframes!"

Actually mainframes back then ran (sometimes well) into 7-digits. (Also keep in mind, the impact of inflation over the decades, i.e. dollars then were worth five to ten times their value today.)

I recall early on, early 50's(?), IBM did a study if there was any future market for computers and the study showed there was not, as they figured only about 10 institutions were large enough to afford a computer system.

"but it's also staggering to think that a minicomputer back then, even at 30% off, would have cost me 1/3 of my yearly salary! Crazy!"

Microcomputer not a minicomputer. An entry level mini would cost about ten times as much. (My first employer was retiring a small mini - they offered it to me for $10,000 - a bit too much for my wallet [plus I figured it would be hard to afford its electric usage - laugh].) Also, yes, quite crazy! In follow on years/decades, I was much more circumspect in my computer purchases. (I found buying about the "best" system you could buy, after it's been out about 18 months [Moore's Law, anyone], was a good "sweet spot" - also don't replace it for at least five years.)

Back in the goode olde days, Apple's Lisa (between the Apple two and first Mac), also a microcomputer, cost $10,000. Apple didn't sell many (due to the price).

Again, regarding networking back then, it was very much few and far between. Often large business mainframes didn't even offer dial-up, but if they did, 300 baud was "fast". Heck, in my first job our locally connected ASCII terminals only ran at 1200 buad. (It's amazing how much you can do with a good line editor that also offered intra line editing commands.)

As Rick mentioned, IBM had SNA (again rare as generally multiple systems didn't directly intercommunicate). Other vendors has their own proprietary networking, such as DEC's (Digital Equipment Corp.) DECnet but again, most systems at that time were stand alone with terminals. (Oh, if you wondering didn't such systems ever exchange data - of course they did - we had reel tapes for that.)

BTW, years/decades ago I worked with a consultant that started as student at MIT, got a part-time job in their labs, and eventually dropped out as a student to work full time in the labs. Anyway, something like Spacewar was a MIT lab creation as it required special video hardware. Typical mainframe programming was, on something like an IBM mainframe, was via punched cards. Heck, early IBM "glass" terminals basically allowed you to submit a card image to internal card readers and/or view printed output on the terminal. Other vendors, like DEC's mini's and mainframe's were more "time sharing" oriented, but again, their glass (or paper) terminals generally only showed alpha/numeric output. On such computers you might play a text output game like Zork, Hunt the Wampus, Star Trek, etc.

Ah ok wow, 7 figures is really something!

 

That's funny about those old studies. I remember another one that predicted that home computers wouldn't be a thing, and I looked it up and it was Ken Olsen (founder of DEC) who said it in 1977: "There is no reason anyone would want a computer in their home." Of course IBM showed just how wrong that prediction was!

 

And OK thank you, I'm glad to learn that distinction b/t mini and micro computer! And 18 months does sound like a good "sweet spot" given how expensive the micro's were back then (I'm getting the terminology down now :)  ).

 

And good point about the Lisa. Apple's early history is really a good study.

 

And yes apologies, as I re-read you and Richard's posts above I realized a lot of that networking question had already been answered! But yes I bet being able to see your work real-time instead of having to wait for the output of a punch card program would have really been something.

 

And OK I see now, that makes sense that the various computer manufacturers would have had their own network standards before IP came along. I bet that would have been an interesting time (if "interesting" is the right word, ha).

 

And I'm glad to learn that about Spacewar being an MIT lab creation due to the special video hardware involved! And how funny that early IBM glass terminals basically allowed a "virtual" punched card system, I never knew that! I've watched a few punch card videos by Dr. David Brailsford on YouTube and it gives me much respect for the programmers and engineers who used such a system! I feel spoiled that I get to use an interactive monitor for programming and doing computer work!

Punch Card Programminghttps://www.youtube.com/watch?v=KG2M4ttzBnY

More about Punch Cardshttps://www.youtube.com/watch?v=lkSGMrH5Kic

 

Again, I much appreciate your answers and info and for taking the time to write it all out. I'm walking away with a much better understanding of the history of Cisco upgrade file types (my original question), as well as some fun extra knowledge of early networking and computer systems (I appreciate your responses to my extra semi-off-topic questions :)  )!   Thanks again!

0xD2A6762E

Laugh - yea with at least IBM card punch machines, I had worked with three different models, the 026, 029 and 129. The latter was about the last of their card punch machines, and unlike the earlier machines it didn't actually punch the card as you typed, it saved the output into a 80 character buffer and only punched the card when you finished it with return. Mind you, it only had a LED column number indicator for you card position, no other indication about what you had actually typed.

Also BTW, when you had the computer system punch cards, they often came out without any corresponding printing on the top of the card.

In the second of your link videos, there are a couple of computer tape reels on the shelf in the background. Looks like a 1200 and 2400 foot reel.

As mentioned in the video, for sorting purposes, IBM cards also had the beginning of the card with a reservation for a card sequence number (and for programming, the end of the card had a reservation for a program ID). (Both reservations were carried forward when using their on-line systems and could cause some interesting errors, such as extending code one position too far, which was ignored, but if what was ignored was "optional" [except to the program logic], it made a hard to find bug.)

If you have a smart phone, it might have more memory, and perhaps even performance, then some of that era's mainframes.

Wow, not being able to see what you typed until the card is punched out, and even then you just get to see punched holes! Sounds like you had to be very trusting of your typing skills, or you just typed VERY slowly. :)

 

And I was a little past the usage of tape reels - from what I've heard from my co-workers, my company stopped doing tape reel stuff in IT back in the early 1970's.

 

And that's interesting about the potential code overflow onto the "optional" areas like the sort or program ID. I imagine that could be quite the frustrating bug to find, especially in a program of several hundred cards! :-o

 

I have also heard about folks that had cards without any kind of sorting ID on them, they would take a large marker and draw a pattern on the side of the card stack, like a diagonal line or some such thing, as a way to help re-sort in case they ever dropped the card stack.

 

Again, I appreciate all the info! I love hearing stories about the earlier days of computing! Thanks again!

0xD2A6762E
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Review Cisco Networking products for a $25 gift card