Operating System
Architecture and core mechanisms of Operating Systems.
Architecture and core mechanisms of Operating Systems.
Architecture of Operating System.
Architecture of Computer Network.
Stack & Catalan Number String Tree For a tree of $N$ nodes and $n_d$ nodes of degree $d$, it holds that $$N = \sum^{D}_{d=0}n_d=\sum^D_{d=0} n_d d+1 = E+1,$$ where $E$ is the number of edges and $D$ is the maximum degree of the tree. Then the number of leaves $n_0$ is given by $$n_0 = 1 + \sum^D_{d=1} n_d(d-1),$$ and in a forest, the number of trees $T$ is given by ...
A package manager automates the lifecycle of software dependencies: fetch, install, upgrade, configure, and remove. At scale, it answers the question: Given a set of packages, each with version constraints on its own dependencies, does there exist a consistent assignment of versions such that every constraint is satisfied? This is, at heart, a constraint-satisfaction problem — and different package managers attack it with different algorithms, trade-offs, and scopes of responsibility. This article surveys the landscape, unpacks the resolution mechanisms, and provides a decision framework for choosing the right tool. ...
A virtual environment is an isolated, self-contained workspace that decouples a project’s dependencies, runtime, and configuration from the host system and from other projects. The core tension it resolves is: Project A and Project B may require different versions of the same dependency, but the host OS allows only one version to be installed globally. Different tools address this at different layers of the stack: Docker at the OS/kernel level, Conda at the userland binary level, uv venv at the Python interpreter level. This article will introduce each tool with their design philosophy, logical structure, implementation mechanism, and practical usage examples. It will also provide a comparative summary, debugging strategies for version conflicts and VSCode integration tips. ...
A network is $$\text{Network}=\text{Nodes}+\text{Links}+\text{Protocols},$$logical 逻辑上(transparent) physical 实现 Remember that $$\text{Computer Network}=\text{Protocol Stack}+\text{Addressing}+\text{Routing},$$ base on which we build the Internet to connect everything. Architecture & Layering The network architecture, equivalently, the protocol stack, organizes communication into layers, each providing services to the layer above while hiding implementation details from the layer below. A simple example is the OSI model, which partitions the communication process into seven layers: $$\text{Physical}\to\text{Data Link}\to\text{Network}\to\text{Transport}\to\text{Session}\to\text{Presentation}\to\text{Application}.$$ The OSI model provides a conceptual framework; it does not define specific protocols. Now consider the TCP/IP model, which condenses these into four layers: ...
Remember that $$\text{Data Structure}=\text{Organization}+\text{Storage}+\text{Operation},$$ base on which we develop algorithms to solve problems. Organization & Logical Structure The Organization, equivalently, the logical structure of data, is the intrinsic property of data, which determines the relationship between data elements and the operations on them, and it is independent from the storage. A simple example is the hash table, which realizes the mapping $$f:\text{key} \mapsto \text{value}$$ by storing entries at locations $\{\text{Hash}(\text{key})\}$. The hash function provides only a storage structure; it does not impose any logical relationship between elements. Now consider the case where keys are taken from $([n])$ and values from a given data type ...
Notes on Chapter 1 of Computer Networking: A Top-Down Approach (7th Edition). Covers the Internet overview, network edge, network core, delay/loss/throughput, protocol layers, and network security.
Notes on Chapter 2 of Computer Networking: A Top-Down Approach (7th Edition). Covers HTTP, email, DNS, P2P, CDN, video streaming, and socket programming.