Khái niệm về phân vùng đĩa cứng trong Linux

1. Lý thuyết tổng quát

– Quá trình khởi động: khi bật công tắc (Power), BIOS sẽ làm công việc đầu tiên là “chạy đôn chạy đáo” kiểm tra những phần cứng cơ bản (gồm ổ đĩa cứng, ổ đĩa mềm, bàn phím…) đã được nối vào máy tính. Những phần cứng này sẽ lần lượt được nạp driver (trình điều khiển – BIOS đã có sẵn driver rồi) để có thể sử dụng được ngay khi khởi động xong, đồng thời BIOS cũng đi tìm một đoạn chương trình bé xíu được đặt tại phần đầu của đĩa mềm (Boot sector), đĩa cứng (MBR – Master Boot Record) để “đùn đẩy trách nhiệm” khởi động tiếp.

Riêng đối với đĩa cứng, ngoài MBR còn có thêm Boot sector nữa, Boot Sector này “tạm trú” ngay đầu của mỗi phân vùng Primary (sẽ nói sau) và Boot Sector của Primary đầu tiên sẽ nằm sau MBR. Tại đây, ta không nói đến đĩa mềm vì quá đơn giản, chỉ cần nạp xong Boot Sector là OK. Đĩa cứng thì phức tạp hơn, MBR không nạp ngay hệ điều hành mà còn “bận” phải xác định xem trong đĩa cứng hiện có bao nhiêu phân vùng và phân vùng nào sẽ được ưu tiên khởi động. Mỗi phân vùng Primary sẽ “cầm” một cái cờ tên là Active, trong một thời điểm khởi động chỉ có một Primary được phất cờ thôi, và khi MBR nhận ra được “em” nào phất thì tức khắc “tống” ngay tiến trình khởi động sang cho Boot Sector của Primary đó làm tiếp. Lúc này, Boot Sector mới tìm những tập tin khởi động của hệ điều hành (nếu có) để “chuyển giao công đoạn” và chấm dứt khởi động, phận ai người nấy lo mà.

Continue reading

Bản quyền và giấy phép Phần mềm Tự do Nguồn mở

(NHQ – Dịch và giới thiệu – Đã đăng tải trên tạp chí Tin học & Đời sống số tháng 9-10 / 2009)

Những nguyên tắc cơ bản

Các chương trình nguồn mở không phải là những chương trình không giấy phép. Ngược lại, chính giấy phép của chúng đã làm chúng thành nguồn mở. Chúng cũng không phải nằm trong miền công cộng (public domain), nghĩa là không phải của riêng ai, hoặc chí ít được miễn trừ quyền di sản.

Khi một nhà phát triển viết một chương trình, anh ta giữ quyền tác giả, hay bản quyền (copyright). Trong một số trường hợp, có thể hãng làm việc của anh ta nắm giữ các quyền đó. Và cái bản quyền này có thể được bán, như một tài sản phi vật chất, từ hãng này qua hãng khác.

Người giữ bản quyền được quyền tự do định ra chương trình của anh ta có thể được sử dụng như thế nào?:

Continue reading

Giới thiệu về ngắt (Interrupt)

Ngắt là gì?

Hằng ngày bạn lập trình, bạn sử dụng các hàm như write, writeln, read, scanf, printf… Có lúc nào bạn tự hỏi các hàm này do đâu mà có, được cài đặt như thế nào? Xin trả lời: đó là các hàm thư viện kèm theo mỗi trình biên dịch và chúng được cài đặt như thế nào ư? Đừng quan tâm nó được cài đặt như thế nào bởi đó là mục địch của các ngôn ngữ lập trình làm cho việc lập trình được đơn giản và thống nhất (đối với các ngôn ngữ lập trình đa hệ điều hành như Pascal, C vừa dùng để lập trình cho DOS, cho Windows, cho Linux v.v..).

Continue reading

Đa nhiệm hợp tác và Đa nhiệm ưu tiên

Xu hướng lập trình hiện nay là viết chương trình đa nhiệm (multitasking) để tận dụng tối đa CPU đa lõi. Có 2 cấp độ đa nhiệm: cấp độ hệ điều hànhcấp độ chương trình. Có 2 kiểu đa nhiệm: đa nhiệm hợp tác (cooperative) và đa nhiệm ưu tiên (preemptive). Mục đích bài viết này là giải thích 4 (2×2) khái niệm trên.

Có 2 loại máy ảo: máy ảo cho hệ điều hành (như VMWare) và máy ảo cho chương trình (như máy ảo Java). Từ “máy ảo” trong bài viết này dùng để chỉ loại thứ 2.

Continue reading