04-08-2020 01:15 PM - edited 04-08-2020 01:25 PM
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 ?
Solved! Go to Solution.
04-08-2020 02:53 PM - edited 04-08-2020 02:57 PM
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.
04-09-2020 10:17 AM
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.
04-08-2020 02:53 PM - edited 04-08-2020 02:57 PM
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.
04-09-2020 10:17 AM
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.
04-11-2020 06:56 PM
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!
04-12-2020 06:51 AM
04-13-2020 08:49 AM
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!
04-13-2020 10:07 AM
04-13-2020 12:07 PM
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 Programming - https://www.youtube.com/watch?v=KG2M4ttzBnY
More about Punch Cards - https://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!
04-13-2020 01:34 PM
04-14-2020 07:07 AM
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!
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide