Lập trình hệ thống
Bách khoa toàn thư mở Wikipedia
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 (chẳng hại 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.
Mục lục |
[sửa] Khái quát
Cụ thể hơn, trong lập trình hệ thống:
- Lập trình viên will make assumptions about the hardware and other properties of the system that the program runs on, and will often exploit those properties (for example by using an algorithm that is known to be efficient when used with specific hardware)
- 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
- debugging can be difficult if it is not possible to run the program in a debugger due to resource constraints. Running the program in a simulated environment can be used to reduce this problem.
Systems programming is sufficiently different from application programming that programmers tend to specialize in one or the other.
In system programming, often limited programming facilities are available. The use of automatic garbage collection is not common and debugging is sometimes hard to do. The runtime library, if available at all, is usually far less powerful, and does less error checking. Because of those limitations, monitoring and logging are often used; operating systems may have extremely elaborate logging subsystems.
Implementing certain parts in operating system and networking requires systems programming (for example implementing Paging (Virtual Memory) or a device driver for an operating system).
[sửa] History
Originally systems programmers invariably wrote in assembly language. Experiments with hardware support in high-level languages in the late 1960s led to such languages as BLISS and BCPL, but C, helped by the growth of UNIX, became ubiquitous in the 1980s. More recently Embedded C++ has seen some use, for instance in the I/O Kit drivers of Mac OS X.
[sửa] Alternate Usage
For historical reasons, some organizations use the term systems programmer to describe a job function which would be more accurately termed systems administrator. This is particularly true in organizations whose computer resources have historically been dominated by mainframes, although the term is even used to describe job functions which do not involve mainframes.
[sửa] References
| Thông tin trong bài (hay đoạn) này không thể kiểm chứng được do không được chú giải từ bất kỳ nguồn tham khảo nào. Xin bạn hãy cải thiện bài viết này bằng cách bổ sung chú thích tới các nguồn uy tín. Nếu bài được dịch từ Wikipedia ngôn ngữ khác thì hãy chuyển nguồn tham khảo từ phiên bản đó cho bài này. Nếu không, những câu hay đoạn văn không có chú giải nguồn gốc có thể bị thay thế hoặc xóa đi bất cứ lúc nào. |