1
Làm sao mà phần mềm điều khiển được phần cứng máy tính?
2
Hiệp sĩ20 đã đăng:

Em thắc mắc tại sao phần mềm có thể điều khiển được phần cứng trong khi phần cứng chỉ hoạt động được trên điện nhờ vào các luồng electron.

thêm bình luận...
5
12345678950 đã đăng:

Để phần mềm điều khiển được phần cứng máy tính là cả một quá trình hình thành và phát triển trong lịch sử máy tính. Chúng ta sẽ bắt đầu từ tầng thấp nhất là kim loại, tất nhiên chiếc điện thoại bạn đang xài, chiếc laptop hay PC đều làm từ kim loại hết (ở đây mình không tính phần không tham gia vào bộ xử lý của thiết bị nhé ^^).

Tiếp theo, kim loại được cấu thành từ các nguyên tử. Nguyên tử gồm có nhân và các hạt electron, các electron giữa các nguyên tử có thể qua lại với nhau để bảo toàn cái gì đấy mình quên mất ^^ mà nhờ đó, nó có thể dẫn điện, hay các dòng electron chạy trong kim loại được gọi là điện.

Trong máy tính hay các thiết bị điện tử, người ta chế tạo ra các transistor để giữ lại hoặc giải phóng dòng điện khi cần thiết. Dòng điện được lưu trữ trong các transistor dưới dạng:

  • Giá trị 1: có một hiệu điện thế nhất định.
  • Giá trị 0: không có điện.

Tiếp tục, bây giờ nếu máy tính của bạn muốn biểu diễn một số đơn giản 8 bits thì phải làm sao? Ví dụ: Số 7 trong máy tính được biểu diễn bằng 00000111, đó là dưới góc nhìn về mặt phần mềm, về mặt phần cứng thì giả sử có 8 transistors nằm liên tiếp nhau cùng tham gia biểu diễn số 7 này. Do đó, 3 transistors đầu tiên sẽ mở (có điện), còn 5 transistors tiếp theo sẽ tắt (không có điện).

Tiếp nữa nè, hệ thống hàng triệu đến hàng tỉ các transistors nằm kề nhau gọi là CPU và một khái niệm mới gọi là thanh ghi, một số chip thông dụng hiện này đều của bác Intel cả, một số chip xử lý đồ họa mạnh như của bác NIVIDA, AMD, v.v.

Rồi, khái niệm phần mềm sẽ bắt đầu từ đây, hồi thời đầu của ngành phần mềm, người ta lập trình luôn bằng dãy nhị phân như ví dụ ở trên. Bạn biết rồi đó, con người đều muốn những gì tốt đẹp hơn, lập trình trên dãy nhị phân có thể hại não bạn nghiêm trọng :v. Nhưng mà xin nhắc lại lúc này bạn có thể dùng phần mềm điều khiển được phần cứng rồi nhé.

Tiếp tiếp, để giải quyết vấn đề khó khăn khi làm việc với dãy nhị phân, người ta lại nghĩ ra mã máy, có thể xem nó là một ngôn ngữ cấp thấp mặc dù đã sử dụng kí tự la-tinh để lập trình, nhưng đại loại nó vẫn là một dãy bao gồm ký tự, số chẳng có ý nghĩa gì về mặc ngôn ngữ học cả.

Sau đó, người ta lại phát triển nó lên thành hợp ngữ. Okê, lúc này đã có một chút ý nghĩa trừu tượng về mặt ý nghĩa với các câu lệnh nhất định như REG, MOV, ADD, MUL, ..v.v rất nhiều. Hiện nay nếu bạn nào học ngành công nghệ thông tin ở một số trường đại học lớn ở mình thì vâng xin chúc mừng được học môn hợp ngữ này, có mà chán ngắt ^^.

Xét về mặt định hình một ngôn ngữ lập trình thì hợp ngữ được xem là ngôn ngữ chạy nhanh nhất. Lý do ư? Chính vì hợp ngữ làm việc trực tiếp trên thanh ghi, nãy giờ chúng ta vẫn đang nói về điều này mà.

Hợp ngữ ra đời thì đã sao, vẫn rất khó khăn để ta viết một chương trình giải quyết bài toán thực tế. Một ứng dụng hoàn chỉnh như bây giờ mà viết bằng hợp ngữ thì bạn hãy dừng lại một chút mà tưởng tượng. Thế là bọn Tây nó lại tìm cách tạo ra compiler (hay còn gọi là trình biên dịch) để dịch cú pháp của ngôn ngữ lập trình cấp cao hơn, vào thời đó có C nên mình lấy C làm ví dụ luôn, nhờ đó mà ta có thể thoải mái viết chương trình bằng chính ngôn ngữ la-tinh của mình.

Thử viết mã nguồn cộng 2 số a và b trong C xem:

#include <stdio.h>

int main(){
    int a = 2;
    int b = 3;
    int ketQua = a + b;
    printf("%d", ketQua);
}

Nhìn đoạn mã nguồn trên thật là đơn giản biết bao. Nhưng mà ngôn ngữ C cũng chưa phải là ngôn ngữ lập trình cấp cao thật sự đâu nhé, nên làm việc với C cũng khá gay go. Rồi bắt đầu từ đây, hàng loạt các ngôn ngữ lập trình cấp cao xuất hiện, ta có Java, C#, C++, Python, R, Matlab, Ruby, ... cùng với vô vàng các thư viện.

Tiện thể mình xin nói thêm, mỗi ngôn ngữ cấp cao đều có đặc điểm riêng của nó mà trong từng trường hợp bài toán cụ thể nó sẽ phát huy tác dụng thật sự chứ không phải như một số kẻ đi so sánh các ngôn ngữ lập trình với nhau rồi chiến đấu ầm ĩ để nói rằng ngôn ngữ họ đang sử dụng là số 1 (thật là hài hước). Xong, lúc này bạn có thể tự do bay lượn mà không cần quan tâm bên dưới máy tính nó đang tính cái gì, tất cả đều nhờ những người đi trước, một phút mặc niệm. Thân ái và quyết thắng.

đã bổ sung 6.4 năm trước bởi
Avatar: 123456789 12345678950

Tiếc gì 1 like. Cảm ơn bạn :^^

Hiệp sĩ 02.12.2017

🖒

Member3692 07.10.2018
thêm bình luận...
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)