Tôi đã mơ về những nội dung như thế này từ hồi thiếu niên, và thật tuyệt khi ngày càng có thể xem các lập trình viên thực hiện những dự án khá nâng cao stream quá trình làm việc của họ
Khi có thể nhìn vào hậu trường như vậy, những thứ từng trông như phép màu và sự phức tạp sẽ giảm đi rất nhiều
Thật ghen tị với bọn trẻ ngày nay, vì gần như muốn học gì cũng có thể tìm thấy. Ngày xưa hoàn toàn không như vậy
Tôi cũng từng mơ về điều tương tự, nhưng vẫn thấy nội dung sâu và xuất sắc về mặt kỹ thuật rất khó tìm
Sẽ rất tốt nếu chúng ta chia sẻ các kênh như thế này với nhau, và tôi cũng muốn biết thêm các kênh khác
Một kênh khác tôi biết là https://www.youtube.com/@LowLevelLearning
Nói chặt chẽ thì không phải kênh lập trình, nhưng tôi cũng rất thích https://www.youtube.com/@StuffMadeHere. Đây là một kênh kỹ thuật rất hay
Vài tháng trước tôi đã viết USB host driver cho STM32F4, và phần khó nhất là thiếu tài liệu tốt
Có peripheral có thanh ghi đọc/ghi bị ánh xạ trong SVD thành chỉ đọc, phải thiết lập những bit không có trong tài liệu, còn USB bulk-only transport thì trỏ tới một đặc tả SCSI không tồn tại
Cuối cùng tôi tìm được một bài blog nói rằng nếu muốn USB drive hoạt động thì gần như phải sao chép nguyên những gì Windows làm
May là tôi có oscilloscope có thể giải mã USB frame, nên tiết kiệm được rất nhiều thời gian để hiểu vì sao nó không chạy
USB có vẻ phụ thuộc rất nhiều vào tri thức truyền miệng, nhưng dù vậy việc nó phổ biến đến thế và phần lớn cứ cắm là chạy vẫn thật ấn tượng
Tôi tò mò bạn đã dùng oscilloscope nào để giải mã USB
Tôi tò mò liệu bạn có từng nghĩ đến việc stream kiểu công việc này không
Intel USB controller cực kỳ bao dung với lỗi trong phần mềm điều khiển. Thật sự là cực kỳ rộng lượng
Tôi bắt đầu đóng góp cho một dự án decompile, và dù hoàn toàn không phải là decompiler giỏi nhất, tôi từng nghĩ đến việc stream khi làm
Không biết có ai hứng thú với loại nội dung này không. Tôi không biết mọi người có tò mò về những thứ như dấu vết cho thấy assembly bị ảnh hưởng bởi signedness của biến, khác biệt giữa truy cập struct và truy cập array, những điều kỳ quặc mà ngay cả compiler 30 năm tuổi cũng làm với control structure, tái sử dụng register, hay cách dẫn dắt code để tạo ra assembly giống hệt từng byte trên console cổ điển hay không
Tôi đã tạo tài khoản vì nếu được xem những thứ như thế thì thật sự rất tuyệt. Tôi từng cố gom góp loại kiến thức reverse engineering khó nhằn này, nhưng thậm chí còn khó biết phải tìm ở đâu
Tôi quan tâm. Hồi đại học tôi học assembly 8086 cơ bản và cũng đọc vài cuốn sách về reverse engineering, nhưng không tiến xa hơn
Không biết bạn có đang làm trong một dự án open-source nào không
Tôi đang làm một hệ điều hành và từng nghĩ đến việc stream vài phiên làm việc; nếu mọi người thật sự thấy hứng thú thì có lẽ tôi có thể bắt đầu
Sức hấp dẫn khi xem ai đó làm việc khó nằm ở việc được nhìn vào quá trình tư duy của họ. Viết hệ điều hành chắc chắn thuộc loại việc khó
Nếu bạn thật sự có thời gian thì mong bạn làm, tôi cũng sẽ tài trợ
Tiêu đề còn thiếu một phần: đây là USB device driver cho một thiết bị tương đối đơn giản, và đã có sẵn code hiện hữu, nên thực chất gần giống một công việc “dịch” từ code sang code
Nó có thể trông rất ấn tượng, nhưng cá nhân tôi thấy giống việc xem một người thành thạo nghề của mình làm việc
Đúng vậy. Tiêu đề hơi lệch. Tôi không phải người quá rành về kernel, và dù có học được vài điều khi xem video, nhiều phần trông gần như phép màu
Nếu moderator có thể bỏ “from scratch” khỏi tiêu đề và thêm rằng đây là device driver thì tốt, nhưng không thì cũng không sao
Ngay từ đầu đây có vẻ là một driver gần như không có lý do để tồn tại. Nếu là front panel thì có khả năng quản lý bằng ứng dụng libusb ở user space sẽ tốt hơn
Tôi rất thích các video kiểu này và những tutorial có chiều sâu, nhưng cụm “from scratch” thì không thật sự đúng
Nếu nói “bắt đầu từ 10 năm kinh nghiệm làm đúng loại việc này” thì có lẽ không tạo cảm giác tương tự
Đặc tả USB chẳng phải khoảng 500 trang sao? Ấn tượng thật
Không cần đọc toàn bộ chi tiết của đặc tả USB; hiểu đại khái chức năng là đủ
Kernel cung cấp rất nhiều hàm để làm việc. Chỉ cần đọc driver đơn giản nhất có thể tìm thấy trong source của kernel cũng học được rồi, sau đó nâng dần lên các driver khó hơn
500 trang thì trong ba tiếng chắc tôi còn không chép lại nổi
Một driver API tốt nên che giấu hết những phần đó để từng USB driver riêng lẻ không phải bận tâm đến đặc tả USB. Đó là việc của phần code USB core dùng chung
Và trong trường hợp này, phần lớn những thứ đó cũng chẳng liên quan mấy
1 bình luận
Ý kiến trên Hacker News
Tôi đã mơ về những nội dung như thế này từ hồi thiếu niên, và thật tuyệt khi ngày càng có thể xem các lập trình viên thực hiện những dự án khá nâng cao stream quá trình làm việc của họ
Khi có thể nhìn vào hậu trường như vậy, những thứ từng trông như phép màu và sự phức tạp sẽ giảm đi rất nhiều
Sẽ rất tốt nếu chúng ta chia sẻ các kênh như thế này với nhau, và tôi cũng muốn biết thêm các kênh khác
Một kênh khác tôi biết là https://www.youtube.com/@LowLevelLearning
Nói chặt chẽ thì không phải kênh lập trình, nhưng tôi cũng rất thích https://www.youtube.com/@StuffMadeHere. Đây là một kênh kỹ thuật rất hay
https://www.youtube.com/live/GxnWuXgj3JI?si=lUJ_7KdkylzXLryj
Vài tháng trước tôi đã viết USB host driver cho STM32F4, và phần khó nhất là thiếu tài liệu tốt
Có peripheral có thanh ghi đọc/ghi bị ánh xạ trong SVD thành chỉ đọc, phải thiết lập những bit không có trong tài liệu, còn USB bulk-only transport thì trỏ tới một đặc tả SCSI không tồn tại
Cuối cùng tôi tìm được một bài blog nói rằng nếu muốn USB drive hoạt động thì gần như phải sao chép nguyên những gì Windows làm
May là tôi có oscilloscope có thể giải mã USB frame, nên tiết kiệm được rất nhiều thời gian để hiểu vì sao nó không chạy
USB có vẻ phụ thuộc rất nhiều vào tri thức truyền miệng, nhưng dù vậy việc nó phổ biến đến thế và phần lớn cứ cắm là chạy vẫn thật ấn tượng
Tôi bắt đầu đóng góp cho một dự án decompile, và dù hoàn toàn không phải là decompiler giỏi nhất, tôi từng nghĩ đến việc stream khi làm
Không biết có ai hứng thú với loại nội dung này không. Tôi không biết mọi người có tò mò về những thứ như dấu vết cho thấy assembly bị ảnh hưởng bởi signedness của biến, khác biệt giữa truy cập struct và truy cập array, những điều kỳ quặc mà ngay cả compiler 30 năm tuổi cũng làm với control structure, tái sử dụng register, hay cách dẫn dắt code để tạo ra assembly giống hệt từng byte trên console cổ điển hay không
Không biết bạn có đang làm trong một dự án open-source nào không
Tôi đang làm một hệ điều hành và từng nghĩ đến việc stream vài phiên làm việc; nếu mọi người thật sự thấy hứng thú thì có lẽ tôi có thể bắt đầu
Nếu bạn thật sự có thời gian thì mong bạn làm, tôi cũng sẽ tài trợ
Font dùng cho terminal/coding là thứ thú vị nhất
https://tosche.net/fonts/comic-code
Tiêu đề còn thiếu một phần: đây là USB device driver cho một thiết bị tương đối đơn giản, và đã có sẵn code hiện hữu, nên thực chất gần giống một công việc “dịch” từ code sang code
Nó có thể trông rất ấn tượng, nhưng cá nhân tôi thấy giống việc xem một người thành thạo nghề của mình làm việc
Nếu moderator có thể bỏ “from scratch” khỏi tiêu đề và thêm rằng đây là device driver thì tốt, nhưng không thì cũng không sao
Tôi rất thích các video kiểu này và những tutorial có chiều sâu, nhưng cụm “from scratch” thì không thật sự đúng
Nếu nói “bắt đầu từ 10 năm kinh nghiệm làm đúng loại việc này” thì có lẽ không tạo cảm giác tương tự
Đặc tả USB chẳng phải khoảng 500 trang sao? Ấn tượng thật
Kernel cung cấp rất nhiều hàm để làm việc. Chỉ cần đọc driver đơn giản nhất có thể tìm thấy trong source của kernel cũng học được rồi, sau đó nâng dần lên các driver khó hơn