Lập trình hệ thống

Lập trình hệ thống là công việc viết những phần mềm cho hệ thống (máy tính). Điểm khác biệt chủ yếu của lập trình hệ thống đối với lập trình ứng dụng là lập trình ứng dụng nhằm viết những phần mềm phục vụ cho người dùng máy tính (ví dụ: chương trình xử lý văn bản), trong khi đó, lập trình hệ thống nhằm xây dựng những phần mềm phục vụ cho phần cứng (hệ thống) máy tính (ví dụ chương trình chống phân mảnh đĩa cứng). Nó cũng đòi hỏi phải có những hiểu biết sâu hơn về phần cứng máy tính.

Khái quát 
Cụ thể hơn, trong lập trình hệ thống:
 Lập trình viên sẽ tạo những giả định về phần cứng và những thông tin khác của hệ thống mà các chương trình đang chạy trên đó, và thường xuyên khai thác những thông tin này (ví dụ như sử dụng những thuật toán đã biết một cách hiệu quả khi sử dụng với những phần cứng cụ thể).
 thường sử dụng ngôn ngữ lập trình cấp thấp, bởi:
 có thể thực thi trong môi trường hạn chế tài nguyên
 rất hiệu quả và ít khi bị quá tải
 sử dụng rất ít thư viện runtime library, hoặc không sử dụng
 cho phép truy cập trực tiếp và điều khiển thô với bộ nhớ control flow
 cho phép lập trình viên sử dụng trực tiếp mã assembly language trong chương trình

Tham khảo

Phần mềm hệ thống
Lập trình máy tính