Skip to content
Học Công nghệ Thông tin thực chiếnHọc Công nghệ Thông tin thực chiến
  • KHÓA HỌC
  • KIẾN THỨC
  • KÊNH YOUTUBE
  • NGƯỜI SÁNG LẬP
Học Công nghệ Thông tin thực chiếnHọc Công nghệ Thông tin thực chiến
  • KHÓA HỌC
  • KIẾN THỨC
  • KÊNH YOUTUBE
  • NGƯỜI SÁNG LẬP

Học ngôn ngữ lập trình Rust từ việc biên dịch uutils coreutils để xài lệnh Linux viết bằng Rust

  • 06 Apr, 2025
  • Com 0
Học Công nghệ Thông tin thực chiến – Chuyên sâu – Nhanh gọn lẹ – Miễn phí 100% Học ngôn ngữ lập trình Rust từ việc biên dịch uutils coreutils để xài lệnh Linux viết bằng Rust
Tóm tắt nội dung video

Chào mọi người

Hôm nay mình làm video về ngôn ngữ lập trình Rust.

Ngôn ngữ lập trình Rust đã chính thức được tích hợp vào Linux kernel từ phiên bản 6.1 tháng 12/2022, tính ra tới giờ cũng hơn 2 năm rồi.

Mình thấy các job về kĩ sư lập trình nhúng trên Linux hay kĩ sư phần mềm viết chương trình điều khiển thiết bị trên Linux, Tây gọi là device driver software engineer á, có yêu cầu là biết Rust là 1 lợi thế, thậm chí là viết Linux kernel module bằng Rust luôn.


Về hệ điều hành thì đã có 1 hệ điều hành tên là Redox OS được viết bằng Rust.

Redox OS là hệ điều hành như Linux, Unix nhưng được viết hoàn toàn bằng Rust thay vì C.

Các phần mềm hệ thống được viết mới thì sẽ có 2 lựa chọn, viết bằng Rust hay viết bằng C, cán cân sẽ nghiêng về Rust nhiều hơn.

Vì Rust là ngôn ngữ ra đời sau, có 1 số cái hay hơn C như sử dụng bộ nhớ 1 cách an toàn hơn nhưng mà Rust sẽ khó viết hơn C.

Cũng có 1 xu hướng khác đó là viết lại 1 số phần mềm bằng Rust trước đó được viết bằng ngôn ngữ lập trình C.

Trong video này mình sẽ biên dịch phần mềm mã nguồn mở uutils coreutils được viết bằng Rust để có các lệnh Linux xài.

Trong quá trình làm mình sẽ phân tích nhiều thứ để các bạn học được ngôn ngữ lập trình Rust 1 cách thực chiến và nhanh, gọn, lẹ.


Vài nội dung chính về ngôn ngữ lập trình Rust trong video này:

1. rustc và cargo được đóng gói sẵn trên AlmaLinux 9 dạng RPM quá cũ, không biên dịch được uutils coreutils.

2. Cài chương trình biên dịch Rust mới nhất từ trang chủ của Rust.

Rust cài từ trang chủ sẽ có các file như: cargo, cargo-clippy, cargo-fmt, cargo-miri, clippy-driver, rls, rust-analyzer, rust-gdb, rust-gdbgui, rust-lldb, rustc, rustdoc, rustfmt thực ra chỉ là file liên kết tới rustup.

3. Biên dịch mã nguồn (source code) 1 chương trình viết bằng Rust thành file nhị phân định dạng ELF trên Linux và chạy nó.

Để biết Rust là ngôn ngữ lập trình kiểu biên dịch (compile), chung nhóm với C, C++, Go và Pascal ngày xưa.

File nhị phân (binary) là file chứa mã máy (machine code) để chạy trên máy tính.

4. Có thể biên dịch Rust bằng lệnh rustc.

Tuy nhiên với chương trình Rust lớn, phức tạp thì phải xài cargo.

5. Cargo là chương trình quản lí gói của Rust như npm của NodeJS.

cargo cũng là chương trình biên dịch của Rust thay cho lệnh rustc.

Cargo.toml là file chỉ dẫn biên dịch cho lệnh cargo.

Khai báo các thư viện đã xài trong mã nguồn Rust sẽ để ở dependencies trong Cargo.toml.

Các thư viện khi được tự động lấy về từ trang crates.io sẽ để trong thư mục target/release/deps hoặc target/debug/deps.

6. Cargo.lock là file tự động sinh ra trong quá trình biên dịch Rust bằng lệnh cargo.

Nó sẽ ghi lại thông tin như chi tiết về các thư viện cần cài, các thư viện cần cài phụ thuộc vào thư viện nào, coi như kết quả quá trình biên dịch để nếu bị lỗi và biên dịch lại sẽ bỏ qua các bước đã biên dịch thành công trước đó.

7. Rust cho phép nhúng mã nguồn của C++ vào bên trong nó, nhờ cpp crate.

Khi biên dịch Rust tới phần nào là code của C++ nó sẽ gọi tới chương trình biên dịch C++ trên AlmaLinux 9.

gcc-c++ là phần mở rộng của GCC, để biên dịch mã nguồn của C++.

8. Xóa hết kết quả biên dịch Rust và các file sinh ra trong quá trình biên dịch Rust bằng cargo clean.

9. Cách nhận biết thư viện chuẩn của Rust trong mã nguồn.

Cách nhận biết các thư viện của Rust lấy từ crates.io trong mã nguồn.

10. uutils coreutils có thể được biên dịch theo kiểu multicall binary của BusyBox.


Chi tiết kĩ thuật và các nội dung khác, các bạn xem và thực hiện như trong video nha.

Cảm ơn mọi người.

Video
Previous Lesson
Back to Course
Next Lesson

Search

Categories

  • An toàn thông tin thực chiến (17)
  • Cơ sở dữ liệu thực chiến (6)
  • Computer security (1)
  • Công nghệ ảo hóa máy chủ (1)
  • Công nghệ lõi Công nghệ Thông tin (1)
  • Công nghệ lõi Linux (8)
  • Công nghệ phần mềm thực chiến (7)
  • Công nghệ Thông tin thực chiến (1)
  • Cybersecurity (1)
  • Đại số tổ hợp (1)
  • DevOps thực chiến (2)
  • Điện toán đám mây thực chiến (3)
  • Docker container (3)
  • Giải tích tổ hợp (1)
  • Hệ điều hành Linux thực chiến (8)
  • Học an toàn thông tin (1)
  • Học công nghệ thông tin thực chiến (1)
  • Information security (1)
  • Lập trình an toàn thông tin (2)
  • Lập trình thực chiến (1)
  • Linux hacking (1)
  • Linux thực chiến (2)
  • Olympic Toán 30 tháng 4 (1)
  • Oracle DBA (11)
  • Podman container (3)
  • Tích hợp hệ thống công nghệ thông tin thực chiến (1)

Tags

AlmaLinux 8 (2) Anaconda installer (3) Biên dịch Linux kernel (4) Biên dịch nhân Linux (4) Container-Optimized OS (3) Container Operating System (4) Container OS (4) Cài Oracle 21c (3) Công nghệ lõi Linux (3) Công nghệ phần mềm thực chiến (3) Fedora CoreOS (3) Hệ điều hành Linux thực chiến (4) Học an toàn thông tin (4) initramfs (2) Linux hugepages (3) Linux kernel (3) Linux kernel module (2) Linux PAM (5) Linux security (8) MySQL database developer (3) MySQL DBA (3) netplan (3) OpenSSH server (2) Oracle 21c (2) Oracle OUI (5) Oracle Universal Installer (5) Password hashing (4) Password hashing algorithm (6) Quản trị MySQL (3) RHEL 10 (2) Samba Active Directory Domain Controller (4) Samba AD DC (5) Samba AD Domain Controller (5) SMB protocol (3) Thuật toán băm mật khẩu (9) Thuật toán băm mật khẩu yescrypt (2) Thuật toán MD5 (3) Thuật toán SHA512 (5) Thuật toán yescrypt (4) Trung tâm dữ liệu (2) Tối ưu cơ sở dữ liệu MySQL (4) Tối ưu MySQL (4) Ubuntu netplan (3) vmlinuz (3) Điện toán đám mây (3)

Học Công nghệ Thông tin chuyên sâu
Tiết kiệm tiền bạc, thời gian, công sức cho người học
© Copyright 2024 CâyTreOS – Học IT thế kỉ 21

Học Công nghệ Thông tin thực chiếnHọc Công nghệ Thông tin thực chiến