- Bài viết về một dự án dài hạn nhằm giải mã toàn bộ mã nguồn của GNU coreutils phiên bản 8.3
- Dự án dành cho các lập trình viên mới bắt đầu quan tâm đến việc khám phá thiết kế của các tiện ích dòng lệnh
- Dự án được chia thành nhiều giai đoạn đã hoàn thành, bao gồm việc tạo các trang riêng cho từng tiện ích, mở rộng thảo luận về các quyết định thiết kế và thuật toán quan trọng, đồng thời tạo công cụ trực quan hóa quá trình tiến hóa của mã nguồn
- Bài viết cung cấp liên kết đến trang riêng của từng tiện ích, các thảo luận chi tiết, mã nguồn và tài liệu hướng dẫn
- Bài viết cung cấp phần nền tảng cho việc đọc mã, thảo luận về đặc tính của tiện ích, thiết kế và những điểm cần lưu ý khi đọc mã
- Bài viết giải thích rằng GNU coreutils ban đầu là ba gói riêng biệt cho shell, văn bản và tiện ích tệp, và nhiều tiện ích cùng loại chia sẻ các mẫu thiết kế giống nhau
- Bài viết trình bày thiết kế cơ bản của hầu hết các tiện ích CLI, bao gồm giai đoạn thiết lập cho cờ, tùy chọn, bản địa hóa, giai đoạn phân tích đối số đọc đầu vào để thiết lập tham số thực thi, và giai đoạn xử lý/thực thi chuẩn bị đầu vào cho một hoặc nhiều lời gọi hệ thống
- Bài viết cung cấp giải thích chi tiết về khởi tạo tiện ích, phân tích bằng Getopt, duyệt hệ thống tệp bằng fts, wrapper và helper cho lời gọi hệ thống, các hàm dùng chung, các dòng mã dùng chung và các thành ngữ trong C
- Bài viết thảo luận về việc bảo trì tiện ích, bao gồm các thay đổi trên toàn bộ dự án, các cập nhật riêng theo tiện ích và bảo trì hằng năm
- Bài viết cung cấp thông tin cho những người muốn đóng góp cho dự án, như liên kết đến trang dự án GNU, hướng dẫn đóng góp và danh sách các tính năng bị từ chối
- Bài viết kết thúc bằng phần trivia và các mục nói về những cách triển khai thú vị, cung cấp các thông tin bên lề và góc nhìn sâu hơn về các tiện ích
1 bình luận
Ý kiến Hacker News
shredthực ra lại là mô tả củacsplit.yes,shred,shuf,factor./bin/truethất bại và trả về false, điều này khiến lời gọi "Not /bin/false" trở nên vững chắc hơn.odcủa Coreutils được cài thànhgod(1)vì MacOS đã cung cấpod(1).