Tôi đã làm việc trên các môi trường * nix trong bốn năm qua với tư cách là nhà phát triển ứng dụng (chủ yếu bằng C).
Vui lòng đề xuất một số sách / blog, vv để cải thiện kiến thức nội bộ * nix của tôi.
Tôi đã làm việc trên các môi trường * nix trong bốn năm qua với tư cách là nhà phát triển ứng dụng (chủ yếu bằng C).
Vui lòng đề xuất một số sách / blog, vv để cải thiện kiến thức nội bộ * nix của tôi.
Câu trả lời:
Dưới đây là một số gợi ý về cách hiểu "tinh thần" của Unix, ngoài các khuyến nghị tốt đã được thực hiện trong các bài viết trước:
"Môi trường lập trình Unix" của Kernighan và Pike: một cuốn sách cũ, nhưng nó cho thấy bản chất của môi trường Unix. Nó cũng sẽ giúp bạn trở thành một người dùng shell hiệu quả.
"Unix for the Impatient" là một tài nguyên hữu ích để học cách điều hướng môi trường Unix. Một trong những sở thích của tôi.
Nếu bạn muốn trở thành người sử dụng năng lượng, không có gì tốt hơn "Công cụ quyền lực Unix" của O'Reilly bao gồm các mẹo và thủ thuật tập thể từ các chuyên gia Unix.
Một cuốn sách khác mà tôi chưa từng thấy đề cập đến đó là một cuốn sách vui về giáo dục và giáo dục là "Hệ điều hành, thiết kế và triển khai", cuốn sách của Andy Tanenbaum bao gồm mã nguồn cho một hệ điều hành Unix hoàn chỉnh trong 12k dòng mã.
Bạn chắc chắn muốn đọc Lập trình nâng cao trong Môi trường Unix của Stevens . Đừng để tiêu đề Nâng cao làm bạn sợ, nó rất dễ đọc.
Sách / trang web / hướng dẫn sử dụng mà tôi đang sử dụng thường xuyên:
Hạt nhân Linux : Cuốn sách này được xuất bản trực tuyến như một phần của TLDP (Dự án Tài liệu Linux). Nó không cập nhật và không phải là hướng dẫn nội bộ, nhưng cung cấp thông tin hữu ích và tài liệu giới thiệu về các nguyên tắc và cơ chế của hạt nhân.
Hiểu về hạt nhân Linux: IMHO, đây là cuốn sách tốt nhất cho người mới bắt đầu có kiến thức về thiết kế và khái niệm của hệ điều hành. Nó được chấp nhận là cập nhật, bao gồm phiên bản 2.6 của kernel. Có một phiên bản HTML của cuốn sách trên web, nhưng tôi nghĩ đó có lẽ là warez.
Trong khi nghiên cứu phần bên trong linux linux, bạn thường cần tìm hiểu cách phần cứng hoạt động và phần cứng cung cấp theo cách trừu tượng. Intel có hướng dẫn tuyệt vời cho việc này.
Hướng dẫn dành cho nhà phát triển phần mềm Intel 64 và IA-32 Architectures : Thông tin chi tiết, cập nhật.
Hướng dẫn tham khảo dành cho lập trình viên Intel 80386 : Tôi biết điều này hơi cũ nhưng tôi đã học được rất nhiều điều từ hướng dẫn này.
Nếu bạn cần nghiên cứu về thiết kế và khái niệm của hệ điều hành, tôi đề nghị cuốn sách sau: Khái niệm hệ điều hành .
O'REILLY Linux Kernel trong một Nutshell
và O'REILLY Trình điều khiển thiết bị Linux
Lập trình hệ thống Linux hoặc bất kỳ cuốn sách nào khác của Robert Love (đây đều là những cuốn sách của O'Reilly):
Tôi đồng ý với tất cả những người khác và tôi phải nói rằng APUE của Stevens (tôi có phiên bản thứ hai) là một tác phẩm kinh điển. Tôi cũng muốn nói thêm rằng Nghệ thuật lập trình UNIX của Eric Raymond xếp ngay trên đó với Stevens trong danh sách của tôi.
Chà, đối với các Thông báo BSD, có Thiết kế và triển khai Hệ điều hành 4.4BSD, các phần hiện có sẵn miễn phí tại http://www.freebsd.org/doc/en/books/design-44bsd/
Trình điều khiển thiết bị Linux là một tài nguyên tốt khác. Nó sẽ cho bạn một cách khác để đi vào hoạt động bên trong. Từ lời nói đầu:
Trên bề mặt, đây là một cuốn sách viết về trình điều khiển thiết bị cho hệ thống Linux. Đó là một mục tiêu xứng đáng, tất nhiên; dòng chảy của các sản phẩm phần cứng mới dường như sẽ không chậm lại bất cứ lúc nào và ai đó sẽ phải làm cho tất cả các tiện ích mới này hoạt động với Linux. Nhưng cuốn sách này cũng là về cách thức hoạt động của nhân Linux và cách điều chỉnh hoạt động của nó theo nhu cầu hoặc sở thích của bạn. Linux là một hệ thống mở; với cuốn sách này, chúng tôi hy vọng, nó sẽ cởi mở hơn và dễ tiếp cận hơn với cộng đồng các nhà phát triển lớn hơn.
Để hiểu được lý do tại sao và ý nghĩa của hạt nhân hỗ trợ, hãy xem Nghệ thuật lập trình Unix của Eric Raymond. Nó đưa mọi thứ ở một mức độ khá cao, mang tính triết học, nhưng nó sẽ phù hợp với các chi tiết khó chịu của các cuốn sách khác.
Tôi có thể đề xuất hai cuốn sách sau đây không (ngoài những cuốn khác):
Tôi đã giới thiệu rộng rãi câu chuyện đầu tiên (Nếu tôi có trí nhớ tốt hơn và có nhiều thời gian hơn, tôi sẽ biết nhiều hơn bây giờ; nhưng đó là một câu chuyện khác). Tôi hiện đang đọc cái thứ hai.