2016-08-07

Unix, Linux, TRON và nhiều thứ...

Giờ có chút "liên quan" copy lại note từ hồi Yahoo! 360. Là một số thứ mình note từ 2005-2006, khi có blog :D. Nói chung từ nhiều nguồn, 1 số thông tin theo kiểu "truyền thuyết" cũng có.

Chừng 15 năm từ ngày đụng vào Linux, cá nhân mình thì không bao giờ cho rằng Linux phù hợp với PC (chạy được nhưng ko bao giờ thấy ổn). Cứ xài Microsoft Offce vs OpenOffice hay LibreOffice rồi cảm nhận. Sự khác biệt cũng từa tựa như vậy.

----------------------------
Unix
----------------------------
Unix là một OS đa nhiệm, đa người dùng được phát triển vào năm 1969 bởi AT&T tại phòng thí nghiệm Bell Labs. Hầu hết đều được phát triển để chạy tối ưu trên một hoặc một nhóm kiến trúc phần cứng nhất định. Unix cũng thiết kế để phù hợp với yêu cầu và hoạt động cụ thể của doanh nghiệp.
Hơn nữa Unix cung cấp kernel dưới dạng nhị phân và thường phân phối dạng monolithic (monolithic = nguyên khối). Tức ít có chuyện module mo điếc gì cả, ít có chuyện customize, chọn softwares ... (:D mua thì mua ko mua thì biến, no chê đắt)

----------------------------
Open Group và SUS
----------------------------
Các version của Unix đóng nhưng nhiều hệ thống vẫn được gọi chung là Unix. Thương hiệu Unix là mở?

Unix là tên được đăng ký thương hiệu và sở hữu bởi Open Group. Open Group đưa ra một bộ tiêu chuẩn cho OS là Single UNIX Specification (SUS). OS nào đạt được các tiêu chuẩn này,
đăng ký thì sẽ được gọi là Unix. Một số OS có thể kể IBM AIX, HP UX, SCO Unixware, SCO OpenServer, Sun Solaris, Mac OS X (on Intel processors).

Một vài OS ko thỏa mãn SUS nhưng giống Unix thường được gọi là Unix-like như BSD, FreeBSD.
Mac OS X được phát triển từ BSD tới NextStep vốn ko thỏa mãn SUS, nhưng sau khi điều chỉnh lại thỏa mãn SUS được gọi là Unix-based (mang thương hiệu Unix, tên mỹ miều Unix-based graphical interface operating systems (OS) developed and marketed by Apple Inc.).

Xem ví dụ trên website của Open Group
http://www.opengroup.org/openbrand/register/

The Open Brand - Register of Certified Products
UNIX 03
Company Name: Apple Inc.
Product Name: Mac OS X Version 10.5 Leopard
Environment: on Intel-based Macintosh computers
Registered on: 18-May-2007

Unix là một OS đóng (tính chất đóng) vậy "ban đầu" lấy đâu ra Unix-like. Thực sự ban đầu Unix cung cấp cho các trường ĐH và các doanh nghiệp có nhu cầu với đầy đủ thiết kế và công cụ. Thậm chí các tổ chức này còn được cung cấp các ví dụ và cả source code. Vì vậy các trường ĐH và các công ty có cơ sở để có thể viết lại nguyên HĐH.

Kể từ năm 80s, một số nhóm/công ty đã phát triển những OS có triết lý thiết kế gần giống với Unix (Unix philosophy) cũng gọi là Unix-like chứ ko phải từ source code hay thiết kế.

Hỏi ngu: đem Linux distro nào đó điều chỉnh xong đăng ký thành Unix-based được ko? Trả lời ko? Đã ko thích nhau thì chơi với nhau làm gì. Mà có thích cũng ko có tiền. Source code đổi như chong chóng, cứ ra release mới đem đăng ký thì tiền đâu? free chắc có tiền trên trời rơi xuống?

----------------------------
GNU/Linux
----------------------------
Linux bản thân là một kernel, core của OS (không phải là một OS: không có shell; không có bootloader GRUB, LILO, syslinux; không có môi trường desktop GNOME, KDE hay cũng ko có
init system-hệ thống khởi tạo như init, upstart, systemd).

GNU ban đầu là tham vọng của FSF (Tổ chức Phần mềm Tự do) nhằm xây dựng một tập hợp các free softwares bao gồm cả kernel, nói chung gói gọn là một OS giống Unix nhưng tự do (tự do: về tiền và free nhiều thứ, tự do vs miễn phí). Xem thêm khái niệm tương thích interface với Unix - POSIX Portable Operating System Interface for Unix.
Phân biệt free softwares vs open source softwares

Thực tế GNU ra đời từ lâu (1983) đã phát triển một bộ gần hết các công cụ và phần mềm "tự do" để sử dụng với Unix bao gồm 1 đống softwares, utilities nhưng mãi vẫn chưa có OS (chính xác là kernel OS). Đến năm 1991, GNU project đã hoàn thành 1 số phần công việc để build GNU operating system như GCC (GNU C compiler), GNU shell utilities (rất nhiều shell utilities), bash command-line shell, text editor. Về graphical desktop có thể "xài ké" các nguồn mở có sẵn như X Window System bỏ vào. Tuy nhiên core của OS là GNU Hurd kernel đã tiến hành phát triển nhưng chưa xong
(tham vọng làm microdesign kernel và bị delay, sau hơn 25 năm GNU Hurd kernel chưa release, nói cho đúng là ko có một stable version nào được release). Kernel là một mảnh còn thiếu của GNU.

Khi Linux join GNU Project thì GNU coi như là đã đầy đủ (năm 1991). Khi đó một phân phối sẽ gom nhân Linux, các softwares và utilities GNU, thêm giao diện X Window System ... sẽ tạo thành một hệ điều hành hoàn chỉnh.

Tất nhiên phải nói cho rõ khi Linux phát triển thì được nhiều cá nhân/nhóm/công ty gọi chung là cộng đồng đóng góp. Trong đó FSF vẫn đóng góp nhiều nhất (kể cả về cộng đồng, công cụ, định hướng, triết lý ...)

----------------------------
GNU/Linux hay Linux hay cái gì nữa ...
----------------------------

Nếu gọi là GNU/Linux thì gây ra tranh luận quá tập trung vào GNU. Nếu vậy có thể phải ghi là
Mozilla/KDE/Apache/X.org/GNU/Linux vì một distributions ít nhất cũng bao gồm các bác organizations bự bự như thế.

Richard Stallman- ý kiến của boss GNU (founded Free Software Foundation)

Hàng triệu người dùng sử dụng OS đã được phát triển nhằm đem tới sự tự do (ý nói đã được GNU định hướng phát triển)- nhưng mà éo biết điều đó, bởi họ nghĩ rằng hệ thống là Linux (system is Linux) và nó được phát triển bởi một sinh viên (Linus Torvalds, sinh viên University of Helsinki) chỉ để cho vui 'just for fun'.

Xem Linus Torvalds nói vụ này
https://groups.google.com/forum/?fromgroups=#!msg/comp.os.linux.misc/Cm15HxjDGRs/su3OHyLUgXcJ
Linus Torvalds trả lời năm 1996
Thảo luận vấn đề này là đã đủ lâu (:D lâu và chắc nhiều). Nó ko phải là vấn đề thực sự, tức người ta gọi là Linux thì kệ nó đi vì credit vẫn ghi rõ ràng (cho cả 2). Nhưng mà cá nhân thì tao thích gọi nó là Linux.

----------------------------
Còn gì khác? Popular OS? 
----------------------------
TRON (The Real-time Operating system Nucleus) là open real-time operating system kernel design.
Nhiều cơ sở để cho rằng trong 1 thời gian rất lâu không phải Microsoft, cũng ko phải các Linux distro hay Unix là OS phổ biến nhất. Khoảng những năm 2003, Industrial TRON (ITRON) mới là OS phổ biến nhất thế giới (nếu coi là OS), chạy trên hàng tỷ các thiết bị điện tử.

TRON ra đời năm 1984, từ những thiết kế của Prof. Dr. Ken Sakamura, University of Tokyo.
TRON với nhiều ưu thế vượt trội từng vì nhiều lý do bao gồm cả "chính trị" đã ko được phát triển cho PC (bị dìm cho chết). Do may mắn (hay do đưa đẩy) TRON phần nhiều phổ biến trên các thiết bị điện tử như đồ gia dụng.
http://www.linuxinsider.com/story/31855.html

Năm 1989, hãng điện tử "khổng lồ" Nhật Bản Matsushita Electric Industrial Co. (1918-2008, tên sau này là Panasonic) giới thiệu BTRON PC, một PC gây "choáng váng" ngành công nghiệp với khả năng tiên tiến của nó (ngon hơn MS-DOS -> Windows 3.1x). Các BTRON PC dùng chip 80286 Intel 8 MHz và có 2 MB bộ nhớ, nhưng có thể hiển thị video màu chuyển động trong một cửa sổ riêng biệt (giao diện đồ họa- GUI).

Ngoài ra, hệ thống dual-boot cho phép chạy cả hai hệ điều hành BTRON và MS-DOS.
BTRON đã từng có "cơ hội" để chiếm một phần thị phần OS dành cho desktop trên thị trường.

Khi chính phủ Nhật Bản (ủng hộ của MITI- Ministry of International Trade and Industry và MOE) tuyên bố sẽ cài đặt BTRON PC trong các trường học của Nhật Bản, chính phủ Mỹ (đầu tiên là USTR) đã phản đối và coi "sáng kiến ​"​của Nhật Bản là "thực tế và có tiềm năng can thiệp thị trường"
đồng thời đe dọa trừng phạt nếu kế hoạch này được thực hiện.

Do phụ thuộc thị trường xuất khẩu Mỹ, Nhật Bản đã "nhanh chóng" bỏ kế hoạch này. Kéo theo đó là những thiệt hại cho TRON. Gần như tất cả các công ty Nhật Bản tham gia vào các hoạt động liên quan đến TRON đã "tự động" hủy bỏ các dự án.

Từ trước đó, Microsoft bị nghi là đã tác động để U.S. government "chơi" TRON
(nhiều tác giả kêu chính là nó chứ khỏi nghi- với nhiều bằng chứng lịch sử). Microsoft được cho là sợ TRON khi đó sẽ "phá" thống trị của NEC Corp. (đang chạy MS-DOS) tại thị trường PC ở Nhật.

Chưa kể có cả nghi ngờ "bóng dáng" U.S Army liên quan trong vụ tai nạn JAL123 ngày 12/8/1985 chết 520 người (thuộc loại nhiều bí ẩn và lớn nhất thế giới). Vụ JAL123 bị nghi ngờ ko phải tai nạn thông thường mà là kết quả "cuộc chiến" với nhiều thành phần (SDF, U.S Army, NSA, cả Nga...)
Mỹ là nghi can "ám sát" 4 doanh nghiệp lớn nhất vùng Kansai (đại diện cộng đồng doanh nghiệp Kansai). Các cty này phản đối Plaza Accord và nghe nói còn ủng hộ phát triển công nghệ hạt nhân nội địa (nghe đâu mang trên máy bay kỹ thuật, thiết bị hạt nhân và đầu đạn hạt nhân...). Trong vụ này 17 technicians TRON OS quan trọng của Matsushita (Panasonic) cũng "ra đi".

Thỏa ước Plaza Accord (hay hiệp định) giữa Mỹ, Nhật Bản, Đức (Tây Đức), Anh và Pháp (G5) ký tại Plaza, New York 22/09/1985 mục đích chính giảm giá USD so với Yên Nhật và Mark Đức.
(cơ bản hạn chế thâm hụt thương mại với Nhật, hàng Mỹ ko thành công tại thị trường Nhật).

May mắn Industrial TRON (ITRON) nhờ ít liên can (focus vào hệ thống công nghiệp và embedded systems trong khi BTRON là business và education) nên sống sót tốt hơn. ITRON vẫn chạy trên nhiều các tiện ích của Nhật Bản, thiết bị gia dụng, thiết bị điện tử ô tô, robot, trên cả các vệ tinh.
http://www.ertl.jp/ITRON/home-e.html

Bất ngờ, năm 2003, Microsoft tham gia T-Engine Forum (xem danh sách thành viên trên http://www.t-engine.org, website giờ là http://www.tron.org)

So sánh với RTLinux (hard realtime RTOS microkernel)
Có nhiều tranh luận cho rằng ITRON có hiệu suất về thời gian vượt trội và do thiết kế TRON là một RTOS thực sự còn RTLinux thì ko real-time. Ngoài ra RTLinux footprint tính bằng MB, ITRON chỉ tính bằng KB.

----------------------------
The GNU C Library (glibc)
----------------------------

https://www.gnu.org/software/libc/download.html
libc6 và glibc là cùng một version của libc là version 2 của GNU C library nhưng là version 6 của Linux C library. GNU C Library gọi thông dụng là glibc là một dự án của GNU implement thư viện C chuẩn C standard library. C standard library là thư viện chuẩn của ngôn ngữ C, còn gọi là thư viện ANSI C (ANSI C standard).

Khi được chuẩn hóa (ví dụ C99 theo ISO/IEC 9899:1999) có thể gọi là thư viện chuẩn ISO: ISO C library. Có nhiều cài đặt như BSD libc, GNU C Library glibc, Microsoft run-time library msvcrt ...

Mặc dù gọi là C library nhưng hiện tại support cả C++ (và các ngôn ngữ khác).

Fork "Linux libc"
Những năm 1990s, Linux kernel (developers phát triển Linux kernel) forked glibc và gọi là "Linux libc" và maintained riêng từ version 2 đến version 5.

Đến khi FSF released glibc 2.0 vào 1997 chuẩn hơn, POSIX ok hơn, Linux kernel developers bỏ fork và quay lại glibc. Theo Richard Stallman thì code của Linux libc không thể merged vào glibc vì 1 số lý do quan trọng nhất là vấn đề không rõ ràng về authorship (quyền tác giả).

Khi glibc mà bị gì thì ảnh hưởng nguyên 1 đám "đi theo" từ Linux, smartphones đến IoT.
Xem thêm http://www.infosecurity-magazine.com/news/glibc-flaw-affects-linux-machines/

----------------------------
Firmware, Linux firmware
----------------------------
Nhiều devices (hardware) gồm 2 phần "software" chính để hoạt động trên OS.

+ Driver để system nói chuyện với hardware
+ Firmware thường uploaded trực tiếp vào device (một dạng lập trình cho hardware mà nằm trên device hay có thể gọi là embedded software). Ban đầu firmware có thể nằm để sẵn trên device's ROM sau này là Flash memory. Trên Linux thì thông thường firmware có thể được nạp bởi driver vào device khi initialization.

Ranh giới 2 thằng firmware và software không cụ thể lắm, firmware thường thao tác với các operation low-level.

----------------------------
Debian GNU/Linux
----------------------------

Debian là một trong những Linux distributions ra đời sớm nhất. Bản stable (ổn định) phát hành chính thức có tên là Debian GNU/Linux xây trên nhân Linux + 1 số công cụ hệ thống khác.
Hiện tại Debian xài 1 số nhân khác như FreeBSD, kFreeBSD ví dụ Debian GNU/kFreeBSD.
Hầu hết Debian phân phối tuân theo GNU General Public License.

Nhiều OS xây trên Debian như Ubuntu, Knoppix, Linux Mint. Debian nổi tiếng với trình quản lý package Advanced Packaging Tool-APT và hệ thống các chính sách kiểm tra nghiêm ngặt chất lượng các package, quá trình phát triển, phiên bản...