Giter VIP home page Giter VIP logo

bottomupcs's Introduction

Computer Science from the Bottom Up

You should be able to make the course materials by typing

make <html|pdf|epub>

Output is in html.output

Dependencies are roughly:

I am always interested in contribution and feedback so please feel free to email

Ian Wienand [email protected]

bottomupcs's People

Contributors

ianw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bottomupcs's Issues

Section 2.2 dirty cache eviction

Quote: it may require two memory accesses (one to write dirty data main memory, and another to load the new data).

I don't really get what "load the new data" is for? Thank you

Error in Chapter 9 - ABI

For example, on IA64 a function descriptor consists of two components; the address of the function (that being a 64 bit, or 8 byte value) and the address of the global pointer (gp). The ABI specifies that r1 should always contain the gp value for a function. This means that when you call a function, it is the callees job to save their gp value, set r1 to be the new value (from the function descriptor) and then call the function.

In the above paragraph, it should be written that it is the caller's job to save the gp value[source]. Continuing, I think the word call should be formatted instead of the current then.

Minor errors in organisation_of_os.xhtml

What an amazing project! Came across it on the web and thought you might appreciate these small corrections to the part I scanned - Operating System Organisation.

- it is the operating systems job arbitrate between multiple programs
+ it is the operating system's job to arbitrate between multiple programs

- if any internal part of the operating system crashes chances are
+ if any internal part of the operating system crashes, chances are

- the whole system has the potential to comes to a halt
+ the whole system has the potential to come to a halt

- If one driver has a bug it can overwrite any memory
+ If one driver has a bug, it can overwrite any memory

- In a monolithic kernel calls between components
+ In a monolithic kernel, calls between components

- where drivers can loaded into the running kernel 
+ where drivers can be loaded into the running kernel 

- often it is useful to not thing of them as
+ often it is useful to not think of them as

? possible ?
- looks for all intents and purposes as a completely separate machine
+ looks for all intents and purposes like a completely separate machine

? possible ?
-  have the operating system aware of the underlying hypervisor
+  have the operating system be aware of the underlying hypervisor

- similar to the way early versions of the Xen system works
+ similar to the way early versions of the Xen system work

- as what was once fast operations directly on hardware
+ as what were once fast operations directly on hardware

- when that application makes requests for resources that might be shared between other guest operating systems the virtual machine monitor can be invoked
+ when that application makes requests for resources that might be shared between other guest operating systems, the virtual machine monitor can be invoked

- whilst admittedly far fetched there have been examples
+ whilst admittedly far-fetched, there have been examples

- We call the theoretical place where programs run by the user userspace.
+ We call the theoretical place where programs are run by the user userspace.

book: pdf doesn't have show the complete diagram

There are several places where the complete diagram isn't shown in the pdf format of the book compared to the website.

For instance:

##Figure 3.2 Abstraction

PDF

image

Website

image

There are many more like this

Section 2.3.2 Floating Point

Consider the scientific notation representation of the value 198765. We could write this as 1.98765x10^6

This should be 1.98765 * 10^5, rather than 1.98765 * 10^6

EPUB/Mobi publishing

I'd love to see an epub/mobi version of this work so I can read it on my Kindle. I had a look at the Makefile, but found that I'm not familiar at all with any of the tools used. Theoretically, you should be able to use a variation of your html publishing task and point pandoc at it to get an epub version.

HTML pages on the website are not rendered correctly in UTF-8

My Firefox 43.0.4 browser detects the HTML pages as having Western encoding instead of Unicode. As such, on index.html there are unwanted "ร‚" characters that appear. After forcing the encoding in the webbrowser to Unicode the pages render correctly (the unwanted "ร‚" characters disappear).

I checked the HTML source code and I saw that there are hints that the document is in UTF-8 format, but they're not enough for browsers to correctly detect the encoding:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

There should be a tag to specify the encoding in the tag:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Doubt in Virtual Address Translation

Consider a 64-bit address space divided into (generously large) 64 KiB pages creates 2^64/2^16 = 2^52 pages to be managed; assuming each page requires an 8-byte pointer to a physical location a total of 2^52/2^3 = 2^49 or 512 GiB of contiguous memory is required just for the page table!

If there are 2^52 page table entries and each one holds an 8-byte address, shouldn't the total memory consumed by the page table be 2^52 * 2^3 = 2^55 instead of 2^49? Sorry, if this sounds dumb, but am I missing something?

Section 4.4.1 store-release

Quote: "all stores have release semantics (that is, the result of a store is guaranteed to be seen by any later load or store) but all loads have normal semantics. "

From ARM V8 programmer guide:
"A store-release ensures that all earlier memory accesses are visible before the store-release becomes visible. "

The missing chapter 10

I like this "CSBU" book but feel disappointed that the 10th chapter "I/O Fundamentals" hasn't been released yet, is it still in progress, what's the expected release date?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.