Linux Kernel - Hướng tới sự tự do
1. Nhân Linux: Năm 1991, Linus Torvalds bấy giờ đang theo học tại đại học Helsinki, Phần Lan. Bản thân là một sinh viên không dư dả gì, đấng nảy ra ý tưởng viết một OS cho con Intel 80386 PC. Linux ấy cảm hứng từ Minix, một UNIX-like OS kernel được thiết kế bởi một giáo sự Hà Lan tên Andrew Tanenbaum, chuyên được ông dùng trong giảng dạy về OS design ở đại học. Minix kernel có thể được build và chạy trên kiến trúc 386, tuy nhiên do chỉ được dùng trong dạy học nên Minix khá xa rời với kiến trúc phần cứng, do đó không tận dụng được hết sức mạnh của bộ xử lí 386.
Intel 80386 PC
Intel 80386 PC
=> Torvalds hướng tới tạo ra một UNIX kernel chạy hiệu quả và đầy đủ công năng trên 386! E hèm, vậy là trong vài tháng ngắn ngủi, đấng đã phát triển một kernel cơ bản có thể biên dịch và chạy phần lớn SW của GNU. Tháng 10/1991, Torvalds cùng một số đồng sự tiến hành release version 0.02 của kernel này trên USENET newsgroup UNIX user network :v)
0.02 kernel announcement on comp.os.minix USENET
0.02 kernel announcement on comp.os.minix USENET
Để tôn vinh UNIX và người tạo ra kernel này, Linus Torvalds, kernel này cuối cùng lấy tên Linus + X = Linux. Ban đầu Linux bị giới hạn về license khá gắt, nhưng ngay sau đó đã được Torvalds đưa về open source sử dụng license GNU GPL. Cộng đồng phát triển Linux ngày càng lớn mạnh, đem đến nhiều tính năng mới như cải thiện file systems, hỗ trợ networking, device drivers và hỗ trợ chạy đa xử lý (multi-processor, phân biệt với đa nhân-multi-core). Linux được maintain với nhiều branches: mainline/stable/longterm, bản release mới nhất cho longterm là 6.6. Để biết thêm về Kernel releases các bạn có thể truy cập:
2. Bản phân phối Linux: Về cơ bản thì Linux chỉ dùng để nói đến nhân Linux phát triển bới Linus Torvalds. Tuy nhiên, theo thời gian thì Linux được sử dụng rộng rãi để chỉ cả nhân và SW (tools và libs) để tạo nên một OS hoàn chỉnh. Ban đầu việc cài đặt Linux khá vất vả, từ tạo file system cho tới config đúng và đủ các gói SW khác nhau, do đó việc tạo ra các gói có sẵn và cho phép tự động hóa toàn bộ việc tạo file system và cài đặt kernel là cần thiết => các bản phân phối ra đời! Một số Linux distro mình từng dùng qua: Ubuntu, Debian, NixOS (recommend), Arch Linux, Android. 3. Chuẩn hóa: Phần này mình sẽ tóm gọn cho đỡ ngán :v. Ok vấn đề phát sinh từ thập niên 1980 khi mà UNIX sử dụng kernel viết hoàn toàn bằng C. Ban đầu C được chuẩn hóa theo chuẩn C89 vào năm 1989, sau đó lại được chuẩn hóa lại theo C99 (1999). Về mặt chuẩn hóa OS thì kể đến POSIX.1 (chứng nhận IEEE std 1988 và ISO std 1990). Xuyên suốt 1990 thì có thêm chuẩn SUS (Single UNIX Specification). Tuy nhiên đến 2001 thì sự kết hợp giữa tiêu chuẩn POSIX 1003.1-2001 và SUSv3 được phê chẩn, và 2008 là POSIX 1003.1-2008 + SUSv4. DONE! Tại sao lại phải đề cập đến chuẩn của Linux? Vì các phần tiếp sau trong series mình sẽ phân biệt hai ông POSIX (mainly focus) và System V interface. More or less các bạn tham khảo: