2011-01-02 38 views
11

Tôi đã lập trình được khoảng 11 năm rồi và đã sử dụng rất nhiều ngôn ngữ lập trình khác nhau, từ Python đến C.Tôi có thể tìm hiểu về hoạt động ở mức độ thấp của máy tính ở đâu?

Tuy nhiên, điều tôi xấu hổ là tôi vẫn thiếu rất nhiều các kiến ​​thức cơ bản cấp thấp hơn mà trên đó tất cả điều này được xây dựng trên:

  • làm thế nào chính xác được ngăn xếp và đống thực thi xây dựng và làm thế nào để họ làm việc

  • làm thế nào để một tác phẩm CPU

  • một chu kỳ đồng hồ

  • là gì một chiếc xe buýt dữ liệu là gì

  • Làm thế nào để bắc và chip cầu nam vào công việc bo mạch chủ của tôi

  • thấp mức nhị phân logic/tính toán

Những chỉ là những ví dụ, những gì tôi đang tìm kiếm là một số giới thiệu tốt về điều này, vì tôi cảm thấy rằng đây chỉ đơn giản là kiến ​​thức cần thiết để trở thành một lập trình viên giỏi.

+1

Bản sao và câu hỏi liên quan: [Thật là một cuốn sách hay để tìm hiểu cách máy tính thực sự hoạt động?] (Http://stackoverflow.com/questions/773704/whats-a-good-book-to-learn-how-computers- thực sự làm việc), [Tìm hiểu về mức độ thấp] (http://stackoverflow.com/questions/2440313/learning-about-the-low-level), [Ai đó có thể cho tôi biết những điều cơ bản về cách lập trình máy tính hoạt động? ] (http://stackoverflow.com/questions/273978/can-someone-tell-me-the-very-basics-of-how-computer-programming-works). – gnovice

+0

[x86 tag wiki] (http://stackoverflow.com/tags/x86/info) có rất nhiều liên kết tốt về nội dung phần cứng CPU và ngôn ngữ lắp ráp (ví dụ mọi thứ bạn cần biết để xem xét một vòng lặp đơn giản asm và tính toán bao nhiêu chu kỳ đồng hồ trên mỗi lần lặp lại mà không cần phải nhớ cache, ví dụ Intel Haswell). Không quá nhiều trên chipset (cầu nam). –

Trả lời

4

Tôi thích cuốn sách này (sách này không phải là sách giáo khoa).

Code: The Hidden Language of Computer Hardware and Software

+0

Đây là một cuốn sách rất hay cho loại thông tin này, giải thích mọi thứ mà không đòi hỏi bằng cấp hoặc hiểu biết về kỹ thuật điện. –

0

Hai đề xuất.

Một số sách:

Windows Internals (mặc dù không phải tất cả thông tin áp dụng cho OS'es khác, rõ ràng)

Write Great Code: Volume 1 (và khối lượng có lẽ sau này)

The Art of Assembly Language (quan hệ với đề nghị 2)

Tìm hiểu ngôn ngữ lắp ráp:

Ngôn ngữ hội tụ rất thấp. Trong thực tế, nó chỉ là một hình thức con người có thể đọc được mã máy (những người và số không, mà CPU hiểu). Để hiểu ngôn ngữ lắp ráp, bạn phải hiểu các hoạt động ở mức độ thấp. Điều này là do rất ít (nếu có) được quản lý tự động cho bạn, không giống như các ngôn ngữ cấp cao hơn như C# và Java.

1

tôi nghĩ bạn nên bắt đầu với assembly vì đây là ngôn ngữ lập trình cấp thấp. ví dụ ngăn xếp cơ bản là SP register. để biết cách lắp ráp, sổ đăng ký cpu, hướng dẫn được lấy từ bộ nhớ vào cpu và sau đó thực hiện sẽ là một nơi tốt để bắt đầu.

0

Tôi chắc chắn rằng có các tài nguyên trực tuyến cho loại điều này, nhưng điều này cũng khá độc đáo được đề cập trong khóa học Kiến trúc máy tính như this một. Tôi cũng thích các book cho khóa học đó.Tuy nhiên, nó đã không thực sự bao gồm đủ các mặt x86 thực tế của những thứ theo ý thích của tôi (chúng tôi thiết kế một bộ xử lý MIPS và viết mã lắp ráp cho nó và cuối cùng là một trình biên dịch C cho nó).

Để lấp đầy khoảng trống cho những gì khác biệt giữa ví dụ giả mạo của chúng tôi và máy thực tế của tôi, tôi đề nghị Windows Internals book. Và có thể dùng OSR course.

Nếu bạn đang ở phía bên Linux, có tương tự coursesbooks.

2

Âm thanh như một lớp tôi học tại MIT có tên là 6.004 chỉ là những gì bạn đang tìm kiếm. Lớp học là một cuộc khảo sát của máy tính từ đầu. Chúng ta bắt đầu với lý thuyết thông tin (thông tin là gì, làm thế nào nó có thể được biểu diễn dưới dạng bit, vv), sau đó nói về bóng bán dẫn, và sau đó kết hợp các bóng bán dẫn để tạo các hàm logic cơ bản và kết hợp các chức năng logic đó v.v., tất cả các cách để xây dựng một CPU thô sơ với một hệ điều hành cơ bản.

Nếu điều đó nghe có vẻ như những gì bạn đang tìm kiếm, bạn có thể xem xét các bài phát biểu bài giảng và video trên course web page. Nó có một số công cụ tốt, mặc dù tất cả mọi thứ có cho sinh viên cũng sẽ được giảng dạy, làm phòng thí nghiệm, vv

Tôi nghe nói rằng một cuốn sách độc lập tuyệt vời bao gồm về cơ bản cùng một tài liệu là The Elements of Hệ thống máy tính: Xây dựng một máy tính hiện đại từ nguyên tắc đầu tiên, bởi Nisan và Schocken. Nó có các bài tập thực hành mà bạn có thể thực hiện để thực sự nắm bắt được nó. Tôi đã mua cuốn sách về rất nhiều đề xuất của mọi người, nhưng chưa có cơ hội để làm việc thông qua nó.

+1

bạn có thể cung cấp liên kết tới video được không. Tôi không thể tìm thấy chúng và tôi cá là chúng thật tuyệt vời. –

+1

@Eric Fortis - Xin lỗi, tôi đã sử dụng liên kết sai trong bài đăng của tôi! Trang này (http://6004.csail.mit.edu/currentsemester/handouts.htm) có liên kết đến các ghi chú bài giảng và video tôi đã đề cập. –

+0

cảm ơn bạn đã theo dõi. –

1

Theo tôi, cách tốt nhất để tìm hiểu nó bằng cách vui vẻ. Trình biên dịch học tập, thiết kế hệ thống và kiến ​​trúc là rất nhiều niềm vui làm việc với vi xử lý giao tiếp. Vì vậy, đề nghị của tôi là bắt đầu để có được bàn tay với một bộ dụng cụ Atmel AVR kit hoặc Motorola MSP. Một điểm khởi đầu khác là tạo mô phỏng vi mô bằng bất kỳ ngôn ngữ nào mà bạn thích và mô phỏng máy tính SRC Simple RISC this material, là từ this book.

This is the project Tôi đã thực hiện trong lớp học bằng MSP430, một lần nữa nó rất thú vị.

Các vấn đề liên quan