Hệ điều hành
Khái niệm::
-
-:
-
Biến môi trường (env):
-
Chương trình, tiến trình:
- Chương trình = Cấu trúc dữ liệu + thuật toán
- Chương trình là một đoạn mã được lưu trên ổ đĩa. Tiến trình là khi đoạn mã đó được nạp vào RAM và được CPU đọc
- CPU Usage precise cho biết how much CPU time each thread consumes, and what the call stack looked like when a thread lost or gained the CPU. CPU Usage sampled cho biết what a thread is doing between context switches
- Các trình quản lý tiến trình (process monitor) giúp theo dõi mức độ tiêu thụ tài nguyên của các tiến trình
- Daemon là loại chương trình hoạt động ngầm không chịu sự kiểm soát bởi người dùng
- PID 1 không nằm trong nhân, mà nằm trong vùng người dùng
- Tiến trình PID 1 sẽ tạo ra các tiến trình khác
- Trong Linux, PID 1 phải luôn được giữ sống, để nó quản lý những tiến trình mồ côi khác. Trong Windows thì được có những tiến trình mồ côi
- DWM becomes active whenever Windows detects that a program has hung – DWM takes over window management so that the user can still move the hung window around.
- Những chương trình có chữ d đằng sau là daemon
- Server là chương trình cung cấp dữ liệu cho chương trình khác. Client là chương trình yêu cầu chương trình khác cung cấp dữ liệu cho mình
-
Đường dẫn, tên tập tin:
- Cách các đường dẫn ở những nơi khác nhau xử lý dấu cách và ký tự phi ASCII
- Dùng absolute path cho lành
- pwd là thư mục mà tiến trình sẽ chạy. cwd là thư mục mà mình đang ở đó
- Những chương trình cũ sẽ dễ gặp vấn đề về dấu cách hơn những chương trình mới
- Hệ điều hành trông như có vẻ dùng được đường dẫn Unicode, nhưng thực ra chúng chỉ là ASCII
- Sự khác biệt giữa Windows và Android, Mac trong tên file
- Đường dẫn đến tệp ngoài trong một script phụ thuộc vào cwd, không phải đường dẫn tới script mình đang viết
- Việc có khoảng trắng trong tên file sẽ khiến việc xử lý code phức tạp hơn
-
Nhân:
-
Terminal, shell, console:
- -contains là giống hoàn toàn. -match mới là giống một nửa
- cmd vẫn được dùng để chạy exe
- cmdlet dùng định dạng Verb-Noun
- Các lệnh PowerShell thường dùng
- Dùng toán tử hay hơn dùng phương thức ở chỗ nếu toán hạng là một mảng thì nó sẽ lọc mảng đó luôn
- Dùng Where-Object nhanh hơn dùng -Filter
- Khi nhận dữ liệu, PowerShell mặc định giải mã ký tự bằng OEM chứ không phải UTF-8
- PowerShell là một ngôn ngữ shell
- powershell.exe, PowerShell 5, Windows PowerShell là một. pwsh.exe, PowerShell 6, PowerShell Core là một
- Profile
- Windows Terminal có thể được kích hoạt trong Explorer
- Lệnh con thì không có gạch. Cờ thì có gạch
- Shell là cái vỏ bảo vệ nhân của hệ điều hành
- Terminal là cái chương trình để làm việc với shell
- Terminal, console, shell và command line thường được dùng lẫn lộn với nhau
-
Unix, Linux:
- Magisk
- Termux
- chmod dùng để thay đổi quyền đọc, ghi, thực thi của tệp hoặc thư mục
- Các chương trình trên Linux hướng đến việc làm tốt đúng một nhiệm vụ duy nhất, và làm tốt việc làm cùng nhau
- Dùng chương trình Linux cho người không biết gì về nó
- Linux là nhân hệ điều hành. GNU Linux mới là hệ điều hành
- nobody là một người dùng hệ thống không có đường dẫn home và có quyền tối thiểu (UID 65534)
- Nên cài Linux hay dùng WSL
- Ý nghĩa tên các thư mục
-
Windows:
- Bản curl MSYS trong Git Bash dễ có vấn đề. Dùng curl.exe đảm bảo hơn
- Các lệnh để chạy khi cài win mới
- Windows không ship phiên bản dotnet Core mới nhất để tránh việc dotnet phải hỗ trợ phiên bản Windows đó cho tới khi nào phiên bản đó bị chính thức ngừng hỗ trợ
- Local app data
- Windows rất lằng nhằng trong việc thiết lập cấu hình