-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
236 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Kiến trúc máy tính | ||
## 1. Cấu trúc và thành phần chức năng | ||
![](https://i.ibb.co/7CG5kpd/Screenshot-from-2020-11-16-22-04-31.png) | ||
|
||
### 1.1 Bộ xử lí trung tâm (CPU) | ||
- Chức năng: | ||
+ Đọc lệnh từ bộ nhớ. | ||
+ Giải mã và thực hiện lệnh. | ||
- Bao gồm: | ||
+ Bộ điều khiển (Control Unit - CU) | ||
+ Bộ tính toán số học và logic (ALU | ||
+ Các thanh ghi (Register) | ||
|
||
### 1.2 Bộ nhớ trong (Internal Memory) | ||
- Chức năng: | ||
+ Lưu trữ lệnh và dữ liệu cho CPU xử lí | ||
- Bao gồm: | ||
+ **ROM (Read Only Memory)** | ||
- Lưu trữ lệnh và dữ liệu của hệ thống. | ||
+ **RAM (Random Access Memory)** | ||
- Lưu trữ lệnh và dữ liệu của hệ thống và người dùng. | ||
|
||
### 1.3 Bus hệ thống (system bus) | ||
- Là tập các đường dây kết nối CPU với các thành phần khác của máy tính | ||
- Các loại Bus: | ||
+ Bus địa chỉ - Bus A | ||
+ Bus dữ liệu - Bus D | ||
+ Bus điều khiển - Bus C | ||
|
||
## 2. Cách máy tính hoạt động | ||
![](https://i.ibb.co/JsmBjqq/Screenshot-from-2020-11-16-22-20-38.png) | ||
|
||
### 2.1 Thiết bị nhập: | ||
- Mouse | ||
- Keyboard ... | ||
|
||
### 2.2 Thiết bị xử lí | ||
- CPU | ||
- Mainboard | ||
|
||
### 2.3 Thiết bị lưu trữ | ||
- Floppy disk | ||
- RAM | ||
- HDD, SSD | ||
|
||
### 2.4 Thiết bị xuất | ||
- Monitor | ||
|
||
### 2.5 Cách hoạt động | ||
- Khi khởi chạy 1 tiến trình, dữ liệu được trích từ ổ cứng chuyển lên RAM. | ||
+ Ổ cứng phải truyền dữ liệu lên `RAM` vì ổ cứng tuy có thể chứa rất nhiều dữ liệu nhưng lại có tốc độ truyền dữ liệu `rất chậm` so với `CPU`, làm kéo dài thời gian xử lí) | ||
+ Do đó ta cần RAM để lưu trữ dữ liệu tạm thời, RAM chứa được ít dữ liệu nhưng có tốc độ cao hơn, thích hợp làm việc cùng CPU. | ||
|
||
- Sau đó **CPU** sử dụng mạch phần cứng gọi là `memory controller` để tải chương trình từ bộ nhớ `RAM`. | ||
- **CPU** sẽ xử lí dữ liệu. | ||
|
||
__Docs__ | ||
- https://quantrimang.com/tim-hieu-ve-cach-lam-viec-cua-cpu-phan-cuoi-43555 |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Process | ||
## 1. Khái niệm: | ||
- **Process(tiến trình)** là biêủ thị cho một chương trình đang chạy. | ||
- Bất cứ khi nào thông báo 1 lệnh trên Linux, nó sẽ bắt đầu 1 **process** mới. | ||
- Mỗi **Process** có 1 **PID(Process ID)** đại diện. **PID** gồm tối đa 5 chữ số và duy nhất tại 1 thời điểm. | ||
- Có 2 loại **Process**: | ||
+ **Foreground Process** | ||
+ **Background Process** | ||
|
||
### 1.1. Foreground Process | ||
- Mặc định mọi **Process** mà bắt đầu chạy là **foreground process**. Nó nhận Input từ bàn phím rồi gửi output tới màn hình. | ||
- Trong khi một chương trình đang chạy trong **Foreground** và cần một khoảng thời gian dài, chúng ta không thể chạy bất kì 1 lệnh nào khác (**process** khác) | ||
|
||
``` | ||
khanhnt@Inspiron3521:~/Git/Linux-tutorial$ ping -c 5 8.8.8.8 | ||
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. | ||
64 bytes from 8.8.8.8: icmp_seq=1 ttl=111 time=36.3 ms | ||
64 bytes from 8.8.8.8: icmp_seq=2 ttl=111 time=33.0 ms | ||
64 bytes from 8.8.8.8: icmp_seq=3 ttl=111 time=37.7 ms | ||
64 bytes from 8.8.8.8: icmp_seq=4 ttl=111 time=33.7 ms | ||
64 bytes from 8.8.8.8: icmp_seq=5 ttl=111 time=33.6 ms | ||
--- 8.8.8.8 ping statistics --- | ||
5 packets transmitted, 5 received, 0% packet loss, time 4006ms | ||
rtt min/avg/max/mdev = 33.054/34.916/37.766/1.841 ms | ||
``` | ||
- Sau khi kết thúc Process mới xuất hiện dấu nhắc lệnh. | ||
|
||
### 1.2 Background Process | ||
- **Background Process** chạy trong lúc đó có thể chạy các lệnh khác. | ||
- Để bắt đầu 1 **background Process**, thêm dấu `&` tại cuối lệnh. | ||
|
||
### 1.3 Daemon Process | ||
- **Daemon process** là các **Background process** liên quan tới hệ thống mà thường chạy tới quyền hạn truy cập của `root` và các dịch vụ yêu cầu từ **process** khác. | ||
|
||
## 2. Các lệnh về process | ||
### 2.1 `ps` - Process status | ||
- `ps [option]` | ||
+ `-f`: hiển thị đầy đủ thông tin có về các **process** | ||
+ `-e`: hiển thị đầy đủ các process (cả system process) | ||
+ `-aux`=`-ef`: hiển thị đầy đủ các thông tin về tất cả các process | ||
+ `-u`: hiển thị các process liên quan đến user hiện hành. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
# Standard input - Standard output | ||
![](https://camo.githubusercontent.com/ce6734dac43549b9e10bf18eafb4fab0f7790f6f3cc53cc0f197ef74a281d20e/68747470733a2f2f692e696d6775722e636f6d2f767161374f64582e676966) | ||
## 1. Chuyển hướng trong Linux | ||
- **Standard Input (stdin - 0)**: dữ liệu vào chuẩn | ||
- **Standard Output (stdout - 1)**: dữ liệu ra chuẩn | ||
- **Standard Error (stderr - 2)**: dữ liệu ra lỗi | ||
- Thay vì nhập xuất thông tin từ các thiết bị keyboard, monitor theo chuẩn thì ta có thể chuyển hướng nhập xuất đó bằng tệp tin hoặc tiến trình khác. | ||
- Một tiến trình Linux gồm 3 luồng dữ liệu chuẩn: **stdin**, **stdout**, **stderr** | ||
- Vậy khi chuyển hướng ta cũng có 3 luồng dữ liệu chuyển hướng: | ||
+ **input redirections** | ||
+ **output redirections** | ||
+ **error redirections** | ||
|
||
## 2. Outout Redirection | ||
- Sử dụng kí tự `>` hoặc `1>` cho chuyển huớng **output**. | ||
- Thay vì xuất ra terminal, **output** có thể ghi vào tập tin, hoặc truyền cho các process khác xử lí tiếp. | ||
- `>` hoặc `1>` khi ghi tệp tin mới nếu tệp đã tồn tại thì sẽ thực hiện ghi đè lên tập tin đó. | ||
- `>>` hoặc `1>>` ghi tiếp vào tập tin cũ. | ||
|
||
``` | ||
khanhnt@Inspiron3521:~$ ls > file.txt | ||
khanhnt@Inspiron3521:~$ cat file.txt | ||
Desktop | ||
Documents | ||
Downloads | ||
examples.desktop | ||
file.txt | ||
Git | ||
GNS3 | ||
MATHLAB | ||
Music | ||
Pictures | ||
Polyspace_Workspace | ||
Public | ||
snap | ||
Templates | ||
viber.deb | ||
Videos | ||
VirtualBox VMs | ||
``` | ||
|
||
## 3.Input Redirection | ||
- Dữ liệu truyền vào để **process** xử lí, có thể là dữ liệu nhập từ bàn phím, tập tin hay output của các process khác. | ||
- `<<` dùng để chuyển hướng `input`. | ||
|
||
``` | ||
khanhnt@Inspiron3521:~$ cat >> file.txt <<EOF | ||
> a | ||
> b | ||
> EOF | ||
khanhnt@Inspiron3521:~$ cat file.txt | ||
total 97428 | ||
drwxr-xr-x 4 khanhnt khanhnt 4096 Thg 1 17 22:20 Desktop | ||
drwxr-xr-x 11 khanhnt khanhnt 4096 Thg 1 17 23:25 Documents | ||
drwxr-xr-x 5 khanhnt khanhnt 4096 Thg 1 17 23:25 Downloads | ||
-rw-r--r-- 1 khanhnt khanhnt 8980 Thg 1 25 09:54 examples.desktop | ||
-rw-r--r-- 1 khanhnt khanhnt 0 Thg 1 17 23:42 file.txt | ||
drwxr-xr-x 6 khanhnt khanhnt 4096 Thg 1 7 01:07 Git | ||
drwxr-xr-x 7 khanhnt khanhnt 4096 Thg 1 25 15:58 GNS3 | ||
drwxr-xr-x 22 khanhnt khanhnt 4096 Thg 1 25 15:14 MATHLAB | ||
drwxr-xr-x 2 khanhnt khanhnt 4096 Thg 1 25 10:00 Music | ||
drwxr-xr-x 2 khanhnt khanhnt 4096 Thg 1 17 15:43 Pictures | ||
drwxr-xr-x 2 khanhnt khanhnt 4096 Thg 1 15 23:11 Polyspace_Workspace | ||
drwxr-xr-x 2 khanhnt khanhnt 4096 Thg 1 25 10:00 Public | ||
drwxr-xr-x 5 khanhnt khanhnt 4096 Thg 1 1 16:40 snap | ||
drwxr-xr-x 2 khanhnt khanhnt 4096 Thg 1 25 10:00 Templates | ||
-rw-r--r-- 1 root root 99693958 Thg 7 15 18:56 viber.deb | ||
drwxr-xr-x 2 khanhnt khanhnt 4096 Thg 1 25 10:00 Videos | ||
drwxr-xr-x 7 khanhnt khanhnt 4096 Thg 1 1 23:43 VirtualBox VMs | ||
a | ||
b | ||
``` | ||
|
||
## 4. Error Redirection | ||
- Thay vì xuất lỗi ra màn hình thì chuyển hướng lỗi xuất lỗi ra tệp tin. | ||
- `2>` chuyển hướng error | ||
|
||
``` | ||
khanhnt@Inspiron3521:~$ ls-l 2> file.txt | ||
khanhnt@Inspiron3521:~$ cat file.txt | ||
ls-l: command not found | ||
``` | ||
### Note: Chuyển hướng cả dữ liệu chuẩn và lỗi ra file | ||
- Sử dụng `&>` |