chore: add test files for local dev
This commit is contained in:
parent
cecd38cc26
commit
577812c493
3 changed files with 92 additions and 0 deletions
19
dev-data/Network_fundamentals.md
Normal file
19
dev-data/Network_fundamentals.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
title: Network_fundamentals
|
||||||
|
tags: [networks, network-protocols]
|
||||||
|
created: Saturday, August 03, 2024
|
||||||
|
---
|
||||||
|
|
||||||
|
# Network fundamentals
|
||||||
|
|
||||||
|
> A network is a system that allows computing devices to communicate and
|
||||||
|
> exchange information with each other.
|
||||||
|
|
||||||
|
In order for devices to be able to communicate they must share a common
|
||||||
|
**communication protocol**.
|
||||||
|
|
||||||
|
A protocol specifies **rules determining how information is to be exchanged**.
|
||||||
|
(Simply connecting two devices is not sufficient for them to be able to
|
||||||
|
communicate, they must have a shared language.)
|
||||||
|
|
||||||
|
The nodes of a network are called [hosts](Network_hosts.md).
|
35
dev-data/Peer_to_peer_network.md
Normal file
35
dev-data/Peer_to_peer_network.md
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
---
|
||||||
|
title: Peer_to_peer_network
|
||||||
|
tags: [networks]
|
||||||
|
created: Friday, August 09, 2024
|
||||||
|
---
|
||||||
|
|
||||||
|
# Peer to peer network
|
||||||
|
|
||||||
|
A decentralised network model where each participant (peer) acts as both a
|
||||||
|
client and a server.
|
||||||
|
|
||||||
|
Resources are shared directly between peers rather than being coordinated via a
|
||||||
|
server.
|
||||||
|
|
||||||
|
Under a server architecture, multiple requests are made from different hosts for
|
||||||
|
resources. The server manages this load and is in control of what is being
|
||||||
|
shared, to whom, and when. With P2P there is no central authority equivalent to
|
||||||
|
this. Each peer both shares and consumes resources and in this sense is both a
|
||||||
|
client and a server.
|
||||||
|
|
||||||
|
A practical example of this is [torrenting](Torrenting.md) - an applicaton of
|
||||||
|
P2P technology to file sharing.
|
||||||
|
|
||||||
|
## Benefits
|
||||||
|
|
||||||
|
- Decentralisation, no central authority, also means no single point of failure.
|
||||||
|
- Scalable: the network capacity grows with the number of users (contrast
|
||||||
|
servers)
|
||||||
|
- Efficiency: idle resources of peers are put to use
|
||||||
|
- Improved performance for popular content
|
||||||
|
|
||||||
|
## Drawbacks
|
||||||
|
|
||||||
|
- Security: potential for malicious peers and content
|
||||||
|
- Inconsistent availability of resources
|
38
dev-data/Turing_completeness.md
Normal file
38
dev-data/Turing_completeness.md
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
---
|
||||||
|
title: Turing_Completeness
|
||||||
|
tags: [theory-of-computation, Turing]
|
||||||
|
created: Friday, September 13, 2024
|
||||||
|
---
|
||||||
|
|
||||||
|
# Turing Completeness
|
||||||
|
We know that a [Turing machine](Turing_machines.md) is a theoretical construct
|
||||||
|
of a computer that:
|
||||||
|
|
||||||
|
> contains mutable state, executes sequences of simple instructions that read
|
||||||
|
> and write that state, and can pick different execution paths depending on the
|
||||||
|
> state (via conditional branch instructions.)
|
||||||
|
|
||||||
|
A Turing Complete (TC) system is a system that abides by, or can be reduced to,
|
||||||
|
the above description.
|
||||||
|
|
||||||
|
TC also serves as a _definition of computability_ and provides a formal basis
|
||||||
|
for conceiving of computation at a theoretical level.
|
||||||
|
|
||||||
|
All Turing Complete systems are functionally equivalent. This means they can
|
||||||
|
simulate each other given enough time and memory. Similarly a TC system can in
|
||||||
|
principle perform any computation that any other programmable computer can
|
||||||
|
perform. This is true for _other_ TC systems and also those that are not TC
|
||||||
|
however the inverse doesn't hold: a non-TC system cannot emulate a TS system.
|
||||||
|
For instance a calculator cannot do what a TC smart phone can do. But a smart
|
||||||
|
phone can act as a calculator.
|
||||||
|
|
||||||
|
Completeness applies to the hardware of computers as well as their software.
|
||||||
|
|
||||||
|
Turing Completeness is the theoretical basis of the practical concept of a
|
||||||
|
"general-purpose computer": a general-purpose computer is such because it is
|
||||||
|
TC - it can in theory compute anything that is computable.
|
||||||
|
|
||||||
|
Most modern programming languages are Turing Complete in that they can, in
|
||||||
|
theory, be used to compute anything that is computable.
|
||||||
|
|
||||||
|
What about Universal Turing Machines eh?
|
Loading…
Add table
Reference in a new issue