Hãy nghĩ về bộ xử lý trong máy tính để bàn của bạn. Tất cả những gì nó làm là chạy các hướng dẫn máy, và bản thân nó, không thực sự quan tâm đến "hệ điều hành" hay "chương trình".
Bạn bật máy tính lên, bộ xử lý chỉ vào hướng dẫn đầu tiên và nó bắt đầu thực thi.
Trên máy tính để bàn của bạn, nó bắt đầu thực thi "hệ điều hành". Nhưng không có lý do gì mà bạn không thể có bộ xử lý thực thi bất kỳ bộ hướng dẫn nào bạn đã chọn. (Điều này có thể không hữu ích lắm, vì bạn vẫn muốn xuất kết quả ra màn hình và chức năng đó nằm trong HĐH.) Đồng thời, nếu hướng dẫn máy của bạn bao gồm các opcode bên phải để bộ xử lý sẽ xuất chuỗi tín hiệu chính xác để vẽ một hình ảnh trên màn hình, tất cả đều tốt hơn. Không cần hệ điều hành.
Máy tính để bàn làm rất nhiều thứ mà chúng ta thường yêu cầu sự trừu tượng của một hệ điều hành. Nhưng tại cốt lõi của nó, tất cả các bộ xử lý làm là thực hiện các hướng dẫn.
Tương tự cho bộ xử lý trong máy Coke và máy Cà phê. Tất cả nó làm là thực hiện hướng dẫn.
Chà, viết hướng dẫn máy từng chút một là tẻ nhạt. Vì vậy, giống như với máy tính để bàn, chúng ta thường viết mã bằng C, sau đó được biên dịch thành mã máy. Mã máy đó được tải vào bộ xử lý nhúng và nó chạy.
Các hệ thống nhúng làm rất ít đến mức chúng không cần hệ điều hành đầy đủ. Một bộ vi điều khiển có thể có 8 hoặc 16 chân trên chip - so với điểm số của các chân trong ổ cắm CPU thông thường của bạn.
Vì vậy, quy trình làm việc là viết một số mã (giả sử bằng C), biên dịch nó trên máy tính để bàn của bạn. Trình biên dịch đó tạo mã máy cho chip nhúng. Sau đó, mã đó được tải vào bộ vi xử lý (và bạn cần phần cứng đặc biệt để làm điều này.) Sau đó, bạn cấp nguồn cho chip và nó bắt đầu thực hiện các hướng dẫn. Đơn giản!