This commit is contained in:
Thomas Bishop 2025-12-19 18:57:17 +00:00
parent 08bbd8647f
commit b1f88e8636
7 changed files with 46 additions and 54 deletions

View file

@ -19,8 +19,8 @@ can mean:
## Main buses
| Bus type | Description |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| System bus | The primary pathway between the CPU and [memory](Memory.md). It comprises the **data bus** that transfers data from the memory to the CPU and the **address bus** which transmits requests from the CPU to memory. |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| System bus | The primary pathway between the CPU and memory. It comprises the **data bus** that transfers data from the memory to the CPU and the **address bus** which transmits requests from the CPU to memory. |
| Internal bus | Connects local devices for example the harddisk to the CPU. |
| External bus | Connects peripheral devices such as disks and printers to the [motherboard](Motherboard.md) |
| Expansion bus | Allows expansion boards to access the CPU and memory. |

View file

@ -8,10 +8,10 @@ tags:
At the core of a computer sits the Central Processing Unit. This is the assembly
of chips that execute all computation. Instructions are passed to the CPU along
the data bus part of the [system bus](Bus.md) from the
memory. The [kernel](The_kernel.md), also residing in memory,
sequences and schedules the sending of data to the CPU and manages requests from
the CPU for data in memory.
the data bus part of the [system bus](Bus.md) from the memory. The
[kernel](/zk/The_kernel.md), also residing in memory, sequences and schedules
the sending of data to the CPU and manages requests from the CPU for data in
memory.
The CPU comprises three core components:
@ -29,13 +29,12 @@ The CPU comprises three core components:
## Registers
This is the part of the CPU that stores data. The memory cells that comprise it
do not have [capacitors](Memory.md) (unlike RAM)
so they cannot store very much data but they work faster, which is what is
important. Because their memory capacity is so small, we measure the size of
registers in bits rather than bytes.
do not have capacitors (unlike RAM) so they cannot store very much data but they
work faster, which is what is important. Because their memory capacity is so
small, we measure the size of registers in bits rather than bytes.
In terms of speed, registers sit at the top part of the overall
[memory hierarchy](Memory.md#the-memory-hierarchy).
[memory hierarchy](./The_memory_hierarchy.md).
There are five main types of register in the CPU:
@ -49,15 +48,15 @@ There are five main types of register in the CPU:
## Arithmetic Logic Unit
See [Arithmetic Logic Unit](Arithmetic_Logic_Unit.md)
See [Arithmetic Logic Unit](././Arithmetic_Logic_Unit.md))
## Control Unit
The CPU's [controller](Chipset_and_controllers.md). It
takes the instructions in binary form from RAM memory (separate from the CPU,
but connected) and then signals to the to ALU and memory registers what it is
supposed to do to execute the instructions. Think of it as the overseer that
gets the ALU and registers to work together to run program instructions.
The CPU's [controller](Chipset_and_controllers.md). It takes the instructions in
binary form from RAM memory (separate from the CPU, but connected) and then
signals to the to ALU and memory registers what it is supposed to do to execute
the instructions. Think of it as the overseer that gets the ALU and registers to
work together to run program instructions.
## The system clock
@ -73,11 +72,9 @@ cycle_.
The clock's circuitry is based on a quartz crystal system like that used in
watches. At precisely timed intervals, the clock sends out pulses of electricity
that cause bits to move from place to place within
[logic gates](Logic_gates.md) or
between logic gates and
[registers](CPU_architecture.md#registers). This is
covered in greater detail in the discussion of
[clock signals in digital circuits](Clock_signals.md).
[logic gates](/zk/Logic_gates.md) or between logic gates and
[registers](./CPU_architecture.md). This is covered in greater detail in the
discussion of [clock signals in digital circuits](Clock_signals.md).
Simple instructions such as add can often be executed in just one clock cycle,
whilst complex operations such as divide will require a number of smaller steps,
@ -95,16 +92,14 @@ Hz a processor possesses.
## Processing cycles
Each "cycle" is the execution of a process that commences once the
[kernel](The_kernel.md) hands control to the CPU. Each cycle
follows a sequence of events known as
[fetch, decode, and execute](Fetch_decode_execute.md).
[kernel](The_kernel.md) hands control to the CPU. Each cycle follows a sequence
of events known as [fetch, decode, and execute](Fetch_decode_execute.md).
## Electromagnetism: broader scientific context
Hertz was the scientist who detected
[electromagentic waves](Electromagnetism.md).
We use Hertz as a measure of the frequency of electromatic wave cycles in a
signal.
[electromagentic waves](Electromagnetism.md). We use Hertz as a measure of the
frequency of electromatic wave cycles in a signal.
![](/img/hertz_wave_freq.gif)

View file

@ -10,8 +10,7 @@ A **controller** is simply a circuit that controls a process. The **chipset** is
a combination of controllers placed on the same piece of silicon.
The chipset manages the data flow between the different components that comprise
the [motherboard](Motherboard.md): processor,
[memory](Memory.md),
the [motherboard](Motherboard.md): processor, memory,
[harddisk](What_are_disks.md) and peripherals.
Buses run in and out of the chipset into these key motherboard components. The

View file

@ -10,9 +10,9 @@ tags:
We cannot yet mount or interact with the partitions we have created. This is
because we have not added a filesystem to each partition.
> A filesytem is a form of [database](Basic_database_concepts.md); it
> supplies the structure to transform a simple block device into the
> sophisticated hierarchy of files and subdirectories that users can understand.
> A filesytem is a form of database; it supplies the structure to transform a
> simple block device into the sophisticated hierarchy of files and
> subdirectories that users can understand.
Linux recognises many types of filesystems. The native Linux filesystem is the
**ext4** (Fourth Extended Filesystem). Another common filesystem is **FAT**
@ -87,10 +87,9 @@ UUID=c53577b5-92ef-4a0a-9a19-e488bfdfa39c /home ext4 rw,relatime 0 2
```
It shows my root and home filesystems and my
[swap](Swap_space.md) file. Note that we use the UUID
to name the partition rather than its name in `/dev/`. The order of the
parameters is as follows:
It shows my root and home filesystems and my [swap](Swap_space.md) file. Note
that we use the UUID to name the partition rather than its name in `/dev/`. The
order of the parameters is as follows:
- Device name or UUID
- The mount point

View file

@ -11,7 +11,8 @@ created: Monday, March 11, 2024
# Machine code
No matter how a program was originally written, it eventually needs to execute
on a [[CPU_architecture|CPU]] as a series of machine language instructions.
on a [CPU architecture](/zk/CPU_architecture.md) as a series of machine language
instructions.
## Example machine instruction
@ -60,5 +61,5 @@ instruction:
## Difficulty
Binary sequences are hard to understand, even if converted to the
[[Hexadecimal_number_system]]. We have a better way of managing operations on
the machine level: [assembly](Assembly.md)
[hexadecimal number system](./Hexadecimal_number_system.md). We have a better
way of managing operations on the machine level: [assembly](Assembly.md)

View file

@ -65,8 +65,7 @@ It has the following jobs to manage:
- Managing read-only memory
- Allowing for the use of disk space as auxiliary memory
> Modern CPUs include a
> [memory management unit](Virtual_memory_and_the_MMU_in_Linux.md#the-memory-management-unit-mmu)
> Modern CPUs include a [memory management unit](./Memory_Management_Unit.md)
> which provides the kernel with **virtual** memory. In this scenario, memory
> isn't directly accessed by the process instead it works on the assumption that
> is has access to the entire memory of the machine and this is then translated

View file

@ -6,8 +6,8 @@ tags:
# What are disks?
A disk is a mass storage [block_device](Devices.md) which we
can write to and read from.
A disk is a mass storage [block_device](Devices.md) which we can write to and
read from.
## SCSI
@ -22,10 +22,9 @@ The following diagram represents the basic anatomy of a disk device.
![](/img/harddisk.png)
- A disk is divided up into [partitions](Partitions.md)
which are subsections of the overall disk. The kernel presents each partition
as a [block device](Devices.md) as it would with an entire
disk.
- A disk is divided up into [partitions](./Linux_disk_partitions.md) which are
subsections of the overall disk. The kernel presents each partition as a
[block device](Devices.md) as it would with an entire disk.
- The disk dedicates a small part of its contents to a **partition table**: this
defines the different partitions that comprise the total disk space.
- The **filesystem** is a database of files and directories: this comprises the