What KnockoutJS is and where you can get it
KnockoutJS is a JavaScript library that helps build web applications easily.
It's not a framework, so it's wrong to try to compare it with other web development frameworks like Angular or Ember or Backbone; with KnockoutJS you don't find anything to help you with multiple-page applications, routing, or the interface your server should have.
If you are searching for a framework to build an Single Page Application (SPA), you could have a look at DurandalJS, which extends the capability of KnockoutJS with features (like routing) that you need to build an SPA.
KnockoutJS is, at its heart, a data-binding library for the web.
It means that it helps you to keep synchronized your web pages (written in HTML) with JavaScript objects. In this way, you can think about the models you want to show and how they interact with each other, instead of thinking about the structure of the page and how to get the information from there.
The website of this library is http://knockoutjs.com/.
You can download the KnockoutJS library from this link: http://knockoutjs.com/downloads/index.html.
In this book, we are going to use the latest version available at the time the book is being written, so here is the direct link to download it: http://knockoutjs.com/downloads/knockout-3.2.0.js.
The library we use is the minified version. You can find also a non-minified one, but use it only if you want to learn better how KnockoutJS works internally; as suggested on the download page, don't use it for normal application development, because it exposes additional unsupported private APIs.
Note
Before we move on, if you haven't done so yet, please try the live tutorial on using KnockoutJS, which you can find here: http://learn.knockoutjs.com/. You will learn the basic usage of KnockoutJS, and you'll find this book easier to understand.