Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Chạy Phần Mềm Trên Linux – Từ Source Code đến Binary

    Chạy Phần Mềm Trên Linux – Từ Source Code đến Binary


    Trong Linux, để chạy được một phần mềm có hai yêu cầu cơ bản:
    1. File phải có định dạng hợp lệ – hoặc là dạng nhị phân có thể chạy trực tiếp, hoặc là file nguồn được chạy thông qua trình thông dịch (interpreter).
    2. File phải được gán quyền thực thi (execute bit) cho user mong muốn chạy chương trình.

    Nếu thiếu một trong hai điều kiện trên, hệ thống sẽ từ chối thực thi.
    1. Từ Source Code đến Binary Executable


    Phần mềm thường bắt đầu từ source code viết bằng ngôn ngữ lập trình, phổ biến nhất trên Linux là C. Để chuyển source code thành file thực thi, ta sử dụng trình biên dịch – trong Linux là GNU Compiler Collection (gcc).

    Quy trình chung:
    • Có được source code: tự viết hoặc tải về từ nguồn khác.
    • Biên dịch (compile): chuyển source code thành binary phù hợp với hệ điều hành và kiến trúc phần cứng của bạn.
    • Cài đặt (install): đặt binary và file hỗ trợ vào đúng vị trí trong hệ thống để mọi user có thể sử dụng.

    2. Các Loại File Liên Quan Trong Quá Trình Compile
    • Source files (.c): chứa code gốc.
    • Object files (.o): code đã biên dịch từng phần, có thể liên kết thành ứng dụng hoàn chỉnh.
    • Archive files (.a): tập hợp nhiều object file trong một container.
    • Shared object (.so): thư viện chia sẻ, nạp vào khi ứng dụng chạy. Giúp cập nhật chức năng mà không cần biên dịch lại toàn bộ.
    • Header files (.h): chứa khai báo hàm, macro, hằng số – dùng chung cho nhiều source file.

    3. Cơ Bản Về gcc


    Lệnh compile đơn giản nhất:



    gcc -o <output file> <source file>



    Ví dụ:



    gcc -o myprog myprog.c



    Kết quả là file thực thi myprog.
    4. Tự Động Hóa Với Autotools


    Với các ứng dụng phức tạp, compile thủ công không đủ. Linux dùng bộ công cụ autotools để tự động hóa:
    1. configure: kiểm tra hệ thống, xác định môi trường compile, cho phép tùy chọn bật/tắt tính năng.
    2. make: thực thi compile, sinh binary.
    3. make install: copy file đã compile vào vị trí hệ thống chuẩn (thường cần quyền root).

    Quy trình cài đặt điển hình:



    tar zxvf app.tar.gz # giải nén source cd app-x.y.z # vào thư mục source ./configure # kiểm tra môi trường, tùy chọn tham số make # biên dịch sudo make install # cài đặt vào hệ thống



    Ví dụ với Snort:



    tar zxvf snort-2.9.5.3.tar.gz cd snort-2.9.5.3 ./configure --enable-sourcefire make sudo make install
    5. Điểm Nhấn Quan Trọng
    • Compile từ source giúp phần mềm tương thích tối đa với distro và môi trường phần cứng của bạn.
    • Shared libraries (.so) cho phép update phần mềm mà không cần recompile toàn bộ.
    • make install thường yêu cầu quyền superuser vì cần ghi vào các thư mục hệ thống.

    Câu hỏi ôn tập


    Trong Linux, để chạy một phần mềm cần có những điều kiện nào? (Chọn 2)

    ✅ File phải có định dạng hợp lệ (binary hoặc script chạy qua interpreter).
    ✅ File phải có quyền thực thi (execute bit).
    ❌ User phải là superuser để chạy code.
    ❌ File phải được lưu trong thư mục /etc.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X