BSD

Linux bắt nguồn từ đâu?

Bài viết liên quan

1. Mở đầu

Linux, chắc hẳn đây là cái tên mà nhiều bạn đã biết tới, nhưng xung quanh đó vẫn còn nhiều khái niệm mơ hồ và nhiều điều chưa được tường tận, có phải nó là một hệ điều hành không ?

Đặc biệt, đối với nhiều người dùng phổ thông, đây lại là một cái gì đó huyền bí, nhất là màn hình Terminal với các dòng lệnh chạy vun vút, thật là đáng sợ.

Ohh không, nó không nguy hiểm tới mức như thế đâu, cứ bình từ (bình tĩnh + từ từ) rồi sẽ rõ.

2. Lợi ích

Cái gì cũng vậy, trước khi tìm hiểu thì tự hỏi xem mình bỏ công sức cày cuốc về nó thì mình được gì đã:

Tuyển dụng

Đối với nghề lập trình nói riêng, các công ty thường sẽ thích tuyển người có kinh nghiệm với Linux hơn. Tuy chưa đến mức “có thì chưa hẳn là thế mạnh, thiếu thì là một điểm trừ” nhưng cũng nên lưu tâm.

  • Ồ chuẩn rồi, đến nay, Linux được sử dụng rất rộng rãi.
  • Các thiết bị Internet of Things cũng sài Linux nhiều.
  • Môi trường server thì chủ yếu là Linux, cái này ăn đứt các OS khác nhé.
  • Quen với Linux trong máy tính thường ngày bẳn sẽ dễ dàng thao tác với server hơn sau này.
  • Hệ điều hành di động được sử dụng nhiều nhất thế giới là Android cũng được xây dựng trên Linux.
  • Coder thường thích code trên Linux hơn là Windowws (ngoại trừ game), MacOS thì khỏi bàn.
  • Terminal tuyệt vời cùng với các ngôn ngữ shell scripting như bash, zsh,… gần như là đặc sản của Linux mà nhà phát triển nào cũng thích.

Mã nguồn mở

Một cộng đồng hỗ trợ không giới hạn.

  • Chất lượng cao, đồng thời giảm sự lệ thuộc vào những hệ điều hành đóng như Microsoft Windows, cho phép người ta sử dụng nó một cách miễn phí, tự do tham gia phát triển, đóng góp, định hướng hoặc tùy chỉnh nó theo nhu cầu và nguyện vọng của riêng mình.
  • Đây vốn là những điều không thể thực hiện được đối với những hệ điều hành đóng mà điển hình là Windows. Ngoài ra với mã nguồn mở thì các ông lớn kia ít có cơ hội thực hiện những âm mưu đen tối với người dùng hơn.

An ninh

Dùng Linux thì ít lo lắng về virus hơn, có thể gần như là yên tâm. Vì sao?

  • Hệ thống phân quyền user trên Linux rất chặt chẽ nên việc lây lan khó hơn Windows. Mặc định không để bạn đăng nhập với quyền root, một số tác vụ bạn có thể chạy với sudo nhưng có yêu cầu mật khẩu.
  • Với Windows, file thực thi có thể chạy với quyền Admin một cách dễ dàng. Nhưng để thực thi một file trên Linux thì cần phải thay đổi thuộc tính file (với chmod), chạy với quyền user hoặc dùng sudo. Tuy bấy nhiêu là không chắc chắn tránh khỏi virus, nhưng cũng là một bức tường khá lớn.

  • Với Linux, người dùng được một cộng đồng trên toàn cầu cung cấp các bản sửa lỗi bảo mật mỗi ngày, điều đó có nghĩa là họ sẽ dễ dàng phát hiện và sửa lỗi nhanh hơn, chứ không phải ngồi chờ cấp phát như với các HĐH, ứng dụng sử dụng mã nguồn đóng khác.
  • Trong khi đó hầu như chúng ta tuần nào cũng đọc được những bài báo nói về những lỗ hổng đã tìm thấy trong hệ thống Windows hoặc những ứng dụng dùng trong Windows, và điều đó cũng tương tự xảy ra với Mac OS.
  • Hầu như ai cũng biết đến lỗi autorun nổi tiếng trên win xp, thời kì usb có khắp mọi nơi, cứ cắm usb vào là hẹo luôn. Sau hơn 10 năm lỗi này mới được vá. Windows còn vô số các lỗi bảo mật khác, chậm vá lỗi. Linux được cộng đồng bảo kê hầu hết các lỗi nhỏ hay lớn nếu công bố đều được vá, ai cũng có thể tải bản vá về để cập nhật một cách nhanh chóng.
  • Hiện nay thị trường laptop cá nhân sài Windows và MacOS là lớn hơn rất nhiều so với Linux nên rõ ràng đây là miếng đất màu mỡ cho các hacker tung hoành. Linux thì chủ yếu dành cho server. Đã khó rồi, mà mó vào cũng không ngon.

Nhanh gọn nhẹ

Đặc biệt là tránh được Windows Update.

  • Từ dung lượng bộ cài đặt cho tới thời gian cài đặt, dung lượng phân vùng system đều bé hơn Windows nhé.

  • Khởi động, tắt máy cũng bụp phát à xong. Nhiều bạn đã quay sang dùng các hệ điều hành họ Linux (điển hình là Ubuntu) và không muốn trở về Windows nữa ngoại trừ khi chơi game và làm đồ họa.

Bản quyền

Tình trạng bản quyền ở Việt Nam thì chắc các bạn cũng biết rồi.

  • Giá của những phần mềm, hệ điều hành đóng không hề rẻ và không phải ai cũng đủ khả năng chi trả cho chúng. Điều này đã thúc đẩy con người đi tìm những phiên bản lậu, key lậu. Tuy nhiên đây lại là một điều vô cùng xấu khi bản chất của nó không hề khác việc ăn cắp thành quả, công sức trí tuệ của người khác. Chưa nói đến những nguy cơ tiềm tàng như mã độc, virus, rò rỉ thông tin… khi bạn sử dụng chúng.
  • Một cái miễn phí mà vẫn đáp ứng nhu cầu cơ bản ngon, một cái có phí đắt mà an ninh chưa tốt.

Khả năng cập nhật

Bạn chán cảnh Windows Update và quay ngòng ngòng.

  • Bạn cũng cảm thấy khó khăn để nâng cấp Windows sau vài năm bởi vì không biết rõ đường dẫn đến nơi chứa bản nâng cấp?
  • Trong khi đó, Ubuntu Linux cung cấp phiên bản mới mỗi 6 tháng và sự hỗ trợ dài hạn trong vòng 2 năm với mỗi phiên bản. Ngoài ra, các nhà cung cấp HĐH Linux thường xuyên cung cấp các bản sửa lỗi và vá bảo mật trong năm ngay khi cần thiết.

Một thế giới mới

Và đây là điều quan trọng nhất, bạn có thêm được một cái nhìn hoàn toàn mới lạ về thế giới OS. (Operating System – Hệ điều hành) Hướng bạn tới cộng đồng mã nguồn mở, một điều thật là tốt đẹp.

  • Okie, ngon rồi, trong bài viết đầu tiên này, chúng ta sẽ cùng tìm hiểu nguồn gốc, lịch sử hình thành của chú chim cánh cụt nhé!

3. Nguồn gốc

3.1 Unix

  • Trước khi nói tới Linux, t phải kể về Unix & BSD trước đã.

  • Ngày xửa ngày xưa, vào năm 1969, hệ điều hành Unix bắt nguồn từ một đề án nghiên cứu tại phòng thì nghiệm Bell Labs của công ty AT&T và được dẫn dắt bởi Ken Thompson, Dennis Ritchie – hai nhà khoa học máy tính nổi tiếng.

  • Phiên bản đầu tiên của Unix được ra đời vào tháng 3 năm 1971, tiếp đó là phiên bản thứ 2 ra đời năm 1972.
  • Trong 10 năm đầu, việc phát triển Unix giới hạn bên trong Bell Labs là chính. Những phiên bản trong thời gian này được gọi là Version n (Vn).
  • Unix bắt đầu được viết bằng ngôn ngữ Assembly nhưng sau đó Dennis Ritchie – cha đẻ của ngôn ngữ lập trình C đã chuyển qua viết lại Unix bằng chính ngôn ngữ C (trừ nhân kernel, I/O). Và rồi:
  • Năm 1973, V4 được viết bằng C. Đây là sự kiện đáng chú ý nhất trong lịch sử hệ điều hành này vì lợi ích của việc viết hệ điều hành bằng ngôn ngữ bậc cao là có khả năng mang mã nguồn của hệ sang các nền máy tính khác và biên dịch lại, chính nhờ điều này mà hệ điều hành sẽ có các bản chạy trên các hệ máy tính khác nhau.
  • Năm 1976, V6 được phát miễn phí cho các trường đại học.
  • Năm 1979, V7 được phát hành rộng rãi với giá $100$ cho các trường đại học và $21,000 cho những thành phần khác. V7 là phiên bản căn bản cho các phiên bản sau này của Unix.

(Số liệu này lấy từ Wikipedia – vâng $21,000 không thể tin được)

3.2 BSD

  • Những năm của thập niên 70, AT&T chia sẻ Unix cho những tổ chức giáo dục, hay tổ chức thương mại bên ngoài, từ đó dẫn đến sự ra đời của nhiều phiên bản Unix khác nhau.
  • Từ năm 1977, Computer Systems Research Group (CSRG) của trường đại học California, Berkeley được quyền sử dụng code của Unix để phát triển ra nhãn hiệu UNIX khác là BSD (Berkeley Software Distribution)
  • Có nhiều công ty lớn sử dụng FreeBSD cho hệ thống máy chủ như Yahoo, Sony.

  • Khi AT&T bắt đầu khai thác Unix như sản phẩm thương mại thì tiền bản quyền Unix tăng lên nhanh chóng (đoạn $21,000 ở trên đó) làm cho Berkeley phải đặt kế hoạch thay mã nguồn của AT&T bằng mã riêng. Việc này tốn rất nhiều thời gian và không kịp hoàn thành khi Berkeley bị ngưng tài trợ nghiên cứu hệ điều hành, CSRG giải tán.
  • BSD Unix và AT&T Unix là hai dòng chính của Unix.BSD giúp cho Unix trở nên phổ biến và có nhiều đóng góp về mặt kỹ thuật như: csh, termcap, curses, vi, TCP/IP socket, long file name, symbolic link.

3.3 Unix && BSD

  • Nhánh BSD đi đến hồi kết của quá trình phát triển với sự ra đời và của các open source project như: FreeBSD, NetBSD và OpenBSD. BSD phát triển từ version 1 đến version cuối cùng 4.4 năm 1992.
  • Trong khi đó, phiên bản cuối cùng của Unix được phát triển bởi Bell Laps, phiên bản Unix 10, được ra mắt vào năm 1989.
  • Mặc dù phiên bản chính thức của Unix, BSD đã dừng phát triển từ lâu, thế nhưng những di sản mà chúng để lại là rất lớn cho đến ngày hôm nay. Rất nhiều hệ điều hành, từ close source cho đến open source đều dựa trên 2 nhánh này.

Hoặc thấy rối mắt quá thì mời bạn xem bức ảnh này

3.4 GNU

  • Năm 1971, Richard Stallman bắt đầu làm việc tại MIT trong một nhóm nhân viên kĩ thuật chuyên sử dụng phần mềm tự do. Tuy vậy, đến những năm của thập kỉ 80, hầu hết các phần mềm đều có tính chất sở hữu (bản quyền). Nhận thấy điều này có thể ngăn cản việc hợp tác giữa những người phát triển phần mềm, Stallman và những người khác khởi đầu dự án GNUvào năm 1983.

  • Mục tiêu của dự án GNU là tạo ra được một hệ điều hành giống Unix nhưng miễn phí, nơi mà mọi người có quyền tự do copy, phát triển, chỉnh sửa và phân phối phần mềm và việc tái phân phối là không bị giới hạn.
  • Sau đó vào năm 1985, Stallman bắt đầu thành lập Tổ chức phần mềm tự do và viết ra giấy phép chung GNU (GNU General Public License – GNU GPL) vào năm 1989.
  • Khoảng đầu 1990, nhiều chương trình như thư viện, trình biên dịch, trình soạn thảo văn bản, Unix Shell, và một chương trình quản lý cửa sổ đã ra đời, nhưng các thành phần cấp thấp cần thiết như trình điều khiển thiết bị, daemons, và kernel vẫn chưa hoàn thành.
  • Như vậy điều Richard Stallman tìm kiếm bây giờ là có phần nhân hệ điều hành để chạy những phần mềm trên.
  • Và thế là định mệnh của cuộc tình đôi ta bắt đầu từ đây: GNU và Linux.

3.5 Minux

  • Nhưng trước khi kể về Linux, chúng ta sẽ kể một chút về Minix, đây là một hệ điều hành kiểu Unix, được thiết kế vì mục đích giáo dục bởi giáo sư Andrew S. Tanenbaum

  • Chính Minix đã là nguồn cảm hứng cho Linus Torvalds để viết Linux.
  • Vào năm 2005, Minix trở thành một phần mềm tự do. Tên Minix là viết tắt của Mini Unix.

3.6 Linux

  • Vào năm 1991 trong khi đang học tại Helsinki – Phần LanLinus Torvalds bắt đầu có ý tưởng về một hệ điều hành, hơn nữa ông cũng nhận thấy hạn chế trong giấy phép của Minix – chỉ cho phép việc sử dụng Minix trong giáo dục mà thôi. Ông bắt đầu viết nên hệ điều hành riêng của mình.

  • Torvalds phát triển Linux kernel trên môi trường Minix, các ứng dụng viết cho Minixcó thể sử dụng trên Linux. Sau này, khi Linux đã “trưởng thành” thì việc phát triển Linuxdiễn ra ngay trên hệ thống Linux.

3.7 GNU/Linux

  • Thế là bác Richard Stallman sở hữu các phần mềm của GNU thì thiếu lõi, nhân kernel, còn bác Linus Torvalds thì đã có nhân kernel nhưng để phát triển lên được hệ điều hành hoàn chỉnh là còn nhiếu rất nhiều thứ abc xyz. Cả hai bác đều có chung tư tưởng lớn, muốn xây dựng hệ điều hành mã nguồn mở.
  • Linus Torvalds làm việc một cách hăng say trong vòng 3 năm liên tục và sự kết hợp của nhân Linux cùng các phần mềm của GNU đã cho ra đời hệ điều hành hoàn toàn miễn phí đầu tiên. Nó được mang tên GNU/Linux với phiên bản 1.0 vào năm 1994 – được phát triển và tung ra trên thị trường dưới bản quyền GNU General Public License. Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn của GNU/Linux.

  • Các ứng dụng GNU cũng dần thay thế các thành phần của Minix.
  • Như vậy, có vài điều lưu ý:
  1. Một cách chính xác, thuật ngữ Linux được sử dụng để chỉ nhân hệ điều hành (kernel), chứ bản thân nó chưa phải là hệ điều hành nhé !Còn hệ điều hành được tạo ra bởi việc đóng gói nhân Linux cùng với các thư viện và công cụ GNU – hệ điều hành bạn đang sử dụng đó, nó có tên là GNU/Linux. Nhưng không hiểu sao người ta gọi ngắn ngọn lại là Linux. Hẳn là một sự bất công bằng cho GNU, nhưng biết làm sao được. Và đành xuôi theo chiều gió, trong series này, mình cũng dùng từ Linux để chỉ hệ điều hành này, còn khi nào cần nhắc tới phần nhân thì mình sẽ nói rõ là kernel Linux.Nếu không tin, bạn thử vào Terminal gõ: 
  2. Linux không hề kế thừa dòng code nào từ Unix cả, nó được xây dựng mới và kết hợp với các phần mềm của GNU để trở thành một bản clone của Unix nhưng miễn phí, vì thời điểm đó Unix và Minux đều là close source và mất phí. Gọi là nhìn theo sản phẩm “nhà người ta” và “tự” bắt chước.

Techtalk via Viblo

Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration