Thứ tư, 14/01/2015 | 00:00 GMT+7

Giới thiệu so sánh về FreeBSD cho người dùng Linux

FreeBSD là một hệ điều hành giống Unix open-souce miễn phí và là một nền tảng server phổ biến. Mặc dù FreeBSD và các hệ thống dựa trên BSD khác có nhiều điểm chung với các hệ thống như Linux, nhưng có những điểm mà hai họ này khác nhau theo những cách quan trọng.

Trong hướng dẫn này, ta sẽ thảo luận ngắn gọn về một số điểm chung giữa FreeBSD và Linux trước khi chuyển sang phần thảo luận mở rộng hơn về sự khác biệt quan trọng giữa chúng. Nhiều điểm dưới đây có thể được áp dụng chính xác cho dòng hệ thống có nguồn root từ BSD lớn hơn, nhưng do trọng tâm của ta , ta sẽ chủ yếu đề cập đến FreeBSD như một đại diện của họ.

Các đặc điểm mà FreeBSD và Linux chia sẻ

Trước khi ta bắt đầu xem xét các lĩnh vực mà FreeBSD và Linux khác nhau, ta hãy thảo luận về những điểm chung của các hệ thống này.

Mặc dù giấy phép cụ thể mà mỗi gia đình sử dụng khác nhau ( ta sẽ thảo luận điều này sau), cả hai họ hệ thống này đều miễn phí và open-souce . User có thể xem và sửa đổi mã nguồn theo ý muốn và quá trình phát triển được thực hiện ở chế độ mở.

Cả hai bản phân phối dựa trên FreeBSD và Linux đều có bản chất giống Unix. FreeBSD có nguồn root gần gũi với các hệ thống Unix trước đây, trong khi Linux được tạo ra từ đầu như một giải pháp thay thế giống Unix mở. Sự liên kết này thông báo các quyết định về thiết kế của hệ thống, cách các thành phần nên tương tác với nhau và các kỳ vọng chung về hệ thống sẽ trông như thế nào và hoàn thành.

Hành vi giống Unix phổ biến chủ yếu là kết quả của cả hai dòng hầu hết đều tuân theo POSIX . Cảm giác tổng thể và thiết kế của các hệ thống khá tiêu chuẩn hóa và sử dụng các mẫu tương tự. Phân cấp hệ thống file được phân chia tương tự, môi trường shell là phương thức tương tác chính cho cả hai hệ thống và các API lập trình chia sẻ các tính năng tương tự.

Do những cân nhắc này, các bản phân phối FreeBSD và Linux có thể chia sẻ nhiều công cụ và ứng dụng giống nhau. Một số trường hợp cho biết version hoặc hương vị của các chương trình này khác nhau giữa các hệ thống, nhưng các ứng dụng có thể được chuyển dễ dàng hơn so với các hệ thống không giống Unix.

Với những điểm này, bây giờ ta sẽ chuyển sang thảo luận về các lĩnh vực mà hai họ hệ điều hành này khác nhau. Hy vọng rằng những điểm chung này sẽ giúp bạn hiểu chính xác hơn thông tin về sự khác biệt của chúng.

Sự khác biệt về Cấp phép

Một trong những điểm khác biệt cơ bản nhất giữa hệ thống FreeBSD và Linux là vấn đề cấp phép.

Nhân Linux, các ứng dụng dựa trên GNU và nhiều phần mềm có nguồn root từ thế giới Linux được cấp phép theo một số hình thức của GPL, hoặc Giấy phép Công cộng GNU. Giấy phép này thường được mô tả là giấy phép “copyleft”, là hình thức cấp phép cho phép tự do xem, phân phối và sửa đổi mã nguồn, đồng thời yêu cầu bất kỳ tác phẩm phái sinh nào phải duy trì việc cấp phép đó.

Mặt khác, FreeBSD, bao gồm kernel và bất kỳ công cụ nào được tạo bởi những người đóng góp FreeBSD, cấp phép phần mềm của nó theo giấy phép BSD. Loại giấy phép này dễ dàng hơn GPL ở chỗ nó không yêu cầu công việc phái sinh để duy trì các điều khoản cấp phép.Điều này nghĩa là bất kỳ cá nhân hoặc tổ chức nào cũng có thể sử dụng, phân phối hoặc sửa đổi chương trình mà không cần phải đóng góp các thay đổi trở lại hoặc giải phóng nguồn root của tác phẩm mà họ đang tạo. Các yêu cầu duy nhất là bản quyền root và bản sao của giấy phép BSD có trong mã nguồn hoặc tài liệu (tùy thuộc vào phương pháp phát hành) của tác phẩm phái sinh và bao gồm tuyên bố từ chối trách nhiệm giới hạn trách nhiệm pháp lý. Giấy phép chính rất ngắn và có thể được tìm thấy ở đây .

Sự hấp dẫn của mỗi loại giấy phép này hầu như hoàn toàn phụ thuộc vào triết lý và nhu cầu của user . Giấy phép GPL thúc đẩy chia sẻ và một hệ sinh thái mở trên tất cả các cân nhắc khác. Phần mềm độc quyền phải rất cẩn thận để không dựa trên phần mềm dựa trên GPL. Mặt khác, phần mềm được cấp phép BSD có thể được kết hợp tự do vào các ứng dụng nguồn đóng, độc quyền. Điều này làm cho nó trở nên hấp dẫn hơn đối với nhiều doanh nghiệp và cá nhân hy vọng kiếm tiền từ phần mềm của họ vì có thể bán phần mềm trực tiếp và giữ lại nguồn.

Các nhà phát triển có xu hướng thích một triết lý cấp phép hơn triết lý cấp phép khác, nhưng mỗi triết lý đều có lợi thế của nó. Hiểu được việc cấp phép cho các hệ thống này có thể giúp ta bắt đầu hiểu một số lựa chọn và triết lý đi vào sự phát triển của chúng.

Dòng dõi FreeBSD và những ý nghĩa của nó

Một sự khác biệt quan trọng khác giữa hệ thống FreeBSD và Linux là dòng dõi và lịch sử của mỗi hệ thống. Cùng với sự khác biệt về cấp phép được thảo luận ở trên, đây có lẽ là yếu tố ảnh hưởng lớn nhất đến triết lý mà mỗi trại tuân theo .

Linux là một kernel được Linus Torvalds phát triển như một phương tiện thay thế hệ thống MINIX định hướng giáo dục nhưng hạn chế mà ông đang sử dụng tại Đại học Helsinki. Kết hợp với các thành phần khác, nhiều thành phần đến từ bộ GNU, một hệ điều hành được xây dựng trên nhân Linux có nhiều thuộc tính giống Unix, mặc dù nó không được bắt nguồn trực tiếp từ hệ điều hành Unix trước đó. Vì Linux được bắt đầu từ đầu mà không có một số lựa chọn thiết kế kế thừa và cân nhắc kế thừa, nó có thể khác biệt đáng kể so với các hệ thống có quan hệ chặt chẽ hơn với Unix.

FreeBSD có nhiều mối quan hệ trực tiếp với di sản Unix của nó. BSD, hay Berkeley Software Distribution, là một bản phân phối của Unix được tạo ra tại Đại học California, Berkeley, đã mở rộng bộ tính năng của hệ điều hành Unix của AT&T và có các điều khoản cấp phép dễ hiểu. Sau đó, quyết định được đưa ra là cố gắng thay thế càng nhiều càng tốt hệ điều hành AT&T root bằng các lựa chọn thay thế nguồn mở để user không bị yêu cầu phải có giấy phép AT&T để sử dụng BSD. Cuối cùng, tất cả các thành phần của AT&T Unix ban đầu đã được viết lại theo giấy phép BSD và được chuyển sang kiến trúc i386 là 386BSD. FreeBSD đã được tách ra từ cơ sở này với nỗ lực duy trì, cải tiến và hiện đại hóa công việc đã có ở đó, và cuối cùng đã được khôi phục lại trên một bản phát hành chưa hoàn chỉnh có tên BSD-Lite vì lợi ích của các vấn đề cấp phép.

Thông qua quá trình phát sinh kéo dài và nhiều giai đoạn, FreeBSD không bị cản trở về mặt cấp phép, nhưng vẫn duy trì mối quan hệ chặt chẽ với quá khứ của nó.Các nhà phát triển làm việc để tạo ra hệ thống vẫn đầu tư vào cách hoạt động của Unix, có thể là vì FreeBSD luôn hoạt động như một bản sao được cấp phép công khai của Unix. Những root rễ này đã ảnh hưởng đến hướng phát triển tiếp theo và là lý do đằng sau một số lựa chọn mà ta sẽ thảo luận.

Tách Hệ điều hành cốt lõi khỏi Phần mềm Bổ sung

Một điểm khác biệt chính về nỗ lực phát triển và thiết kế hệ thống giữa các bản phân phối FreeBSD và Linux là phạm vi của hệ thống. Group FreeBSD phát triển kernel và hệ điều hành cơ sở như một khối mount , trong khi Linux về mặt kỹ thuật chỉ đề cập đến kernel , với các thành phần khác đến từ nhiều nguồn khác nhau.

Điều này có vẻ như là một sự khác biệt nhỏ nhưng thực sự ảnh hưởng đến cách bạn tương tác và quản lý từng hệ thống. Trong Linux, một bản phân phối có thể kết hợp một group các gói được chọn với nhau, đảm bảo chúng tương tác với nhau một cách độc đáo. Tuy nhiên, hầu hết các thành phần sẽ đến từ nhiều nguồn khác nhau và các nhà phát triển và bảo trì phân phối có nhiệm vụ nhào nặn chúng thành một hệ thống hoạt động chính xác.

Theo nghĩa này, các thành phần thiết yếu không khác nhiều so với các gói tùy chọn có sẵn thông qua các kho của phân phối. Các công cụ quản lý gói của phân phối được sử dụng để theo dõi và quản lý các thành phần này theo cách chính xác. Một bản phân phối có thể duy trì các repository khác nhau dựa trên các group chịu trách nhiệm cho các gói nhất định để group phát triển cốt lõi chỉ phải lo lắng về một tập hợp con của phần mềm có sẵn, nhưng đây là sự khác biệt về tổ chức và trọng tâm và nói chung không dẫn đến sự khác biệt trong phần mềm quản lý từ quan điểm của user .

Ngược lại, FreeBSD duy trì toàn bộ hệ điều hành cốt lõi. Kernel và một bộ sưu tập phần mềm, nhiều phần mềm được tạo ra bởi chính các nhà phát triển FreeBSD, được duy trì như một đơn vị. Việc swap các thành phần là một phần của bộ sưu tập cốt lõi này không đơn giản vì nó là một bộ phần mềm nguyên khối. Điều này cho phép group FreeBSD quản lý rất chặt chẽ hệ điều hành chính, đảm bảo tích hợp chặt chẽ và dễ dự đoán hơn.

Phần mềm có trong hệ điều hành cốt lõi được coi là hoàn toàn tách biệt với các thành phần được cung cấp dưới dạng bổ sung tùy chọn. FreeBSD cung cấp một bộ sưu tập lớn các phần mềm tùy chọn, giống như các bản phân phối Linux, nhưng phần mềm này được quản lý riêng biệt. Hệ thống lõi được cập nhật thành một đơn vị độc lập và phần mềm tùy chọn có thể được cập nhật riêng lẻ.

Cách phát hành được hình thành

Hầu hết các bản phát hành Linux là kết quả của việc thu thập phần mềm từ nhiều nguồn khác nhau và sửa đổi nó khi cần thiết. Người bảo trì phân phối quyết định những thành phần nào sẽ bao gồm trong phương tiện cài đặt, những thành phần nào sẽ bao gồm trong repository lưu trữ được duy trì phân phối, v.v. Sau khi thử nghiệm các thành phần cùng nhau, một bản phát hành chứa phần mềm đã được thử nghiệm được tạo ra.

Trong phần trước, ta đã biết rằng:

  • Một phần lớn hệ điều hành FreeBSD được phát triển bởi group FreeBSD.
  • Hệ điều hành cơ sở là kết quả chính đang được production .
  • Phần mềm cơ sở được coi là một tổng thể mount .

Những phẩm chất này dẫn đến một cách tiếp cận phát hành phần mềm khác với hầu hết các bản phân phối Linux. Bởi vì FreeBSD tổ chức mọi thứ ở cấp hệ điều hành, tất cả các thành phần cơ sở được duy trì trong một repository mã nguồn duy nhất. Điều này có một vài ý nghĩa quan trọng.

Trước hết, vì các công cụ này đều được phát triển song song trong một repository duy nhất, một bản phát hành được hình thành chỉ đơn giản bằng cách chọn bản sửa đổi của một trong các nhánh của repository . Điều này tương tự như cách mà hầu hết phần mềm được phát hành trong đó một điểm ổn định được chọn từ một cơ sở mã có tổ chức.

Vì tất cả hệ điều hành cơ bản đều nằm dưới quyền kiểm soát version đang hoạt động, điều này cũng nghĩa là user có thể “theo dõi” các nhánh hoặc mức độ ổn định khác nhau tùy thuộc vào mức độ kiểm tra của họ muốn các thành phần hệ thống của họ. User không phải đợi các nhà phát triển xử phạt các thay đổi để đưa chúng vào hệ thống của họ.

Điều này hơi giống với việc user theo dõi các repository khác nhau được tổ chức theo tính ổn định trong các bản phân phối Linux nhất định. Trong Linux, bạn theo dõi một repository , trong khi trong FreeBSD, bạn có thể theo dõi một nhánh của repository nguồn tập trung.

Sự khác biệt phần mềm và thiết kế hệ thống

Những khác biệt còn lại mà ta sẽ thảo luận sẽ liên quan đến bản thân phần mềm và các phẩm chất chung của hệ thống.

Gói được hỗ trợ và cài đặt nguồn

Một trong những điểm khác biệt chính giữa FreeBSD và hầu hết các bản phân phối Linux từ quan điểm của user là tính khả dụng và hỗ trợ của cả phần mềm đóng gói và phần mềm được cài đặt nguồn.

Trong khi hầu hết các bản phân phối Linux chỉ cung cấp các gói binary được biên dịch trước của phần mềm hỗ trợ phân phối, FreeBSD chứa cả các gói được tạo sẵn cũng như hệ thống xây dựng để biên dịch và cài đặt từ nguồn. Đối với hầu hết phần mềm, điều này cho phép bạn chọn giữa các gói được biên dịch trước được xây dựng với các giá trị mặc định hợp lý và khả năng tùy chỉnh phần mềm của bạn trong quá trình biên dịch bằng cách tự xây dựng nó. FreeBSD thực hiện điều này thông qua một hệ thống mà nó gọi là "cổng".

Hệ thống cổng FreeBSD là một tập hợp các phần mềm mà FreeBSD biết cách xây dựng. Hệ thống phân cấp có tổ chức đại diện cho phần mềm này có sẵn trong folder /usr/ports nơi user có thể xem chi tiết các folder cho từng ứng dụng. Các folder này chứa một số file chỉ định vị trí có thể lấy file nguồn, cũng như hướng dẫn cho trình biên dịch về cách vá đúng cách để nguồn hoạt động chính xác với FreeBSD.

Các version đóng gói của phần mềm thực sự được tạo ra từ hệ thống cổng, làm cho FreeBSD trở thành bản phân phối ưu tiên nguồn với các gói có sẵn để thuận tiện. Hệ thống của bạn có thể bao gồm cả phần mềm nguồn và phần mềm đóng gói sẵn và hệ thống quản lý phần mềm có thể xử lý đầy đủ sự kết hợp của hai phương pháp cài đặt này.

Vanilla vs Phần mềm tùy chỉnh

Một quyết định có vẻ hơi lạ đối với những user quen thuộc với một số bản phân phối Linux phổ biến hơn là FreeBSD thường chọn cung cấp phần mềm ngược dòng chưa được sửa đổi nếu có thể.

Nhiều bản phân phối Linux thực hiện các sửa đổi đối với phần mềm để giúp kết nối với các thành phần khác dễ dàng hơn và cố gắng quản lý dễ dàng hơn.Ví dụ điển hình cho xu hướng này là việc tái cấu trúc cấu hình phân cấp web server phổ biến để làm cho cấu hình server trở nên module hơn.

Mặc dù nhiều user thấy những thay đổi này hữu ích, nhưng cũng có những hạn chế đối với phương pháp này. Một vấn đề khi thực hiện các sửa đổi là nó phải biết cách tiếp cận nào phù hợp nhất với user . Nó cũng làm cho phần mềm khó đoán hơn đối với user đến từ các nền tảng khác, vì nó khác với các quy ước ngược dòng.

Bảo trì FreeBSD thường làm phần mềm Sửa với các bản vá lỗi, nhưng đây là những thường thay đổi bảo thủ hơn lựa chọn gói một số bản phân phối Linux. Nói chung, những sửa đổi đối với phần mềm trong hệ sinh thái FreeBSD là những điều cần thiết để làm cho phần mềm được xây dựng và chạy chính xác trong môi trường FreeBSD và những sửa đổi cần thiết để xác định một số mặc định hợp lý. Các file cấu hình được đặt trên hệ thống file thường không được sửa đổi nhiều, vì vậy có thể cần phải thực hiện một số công việc bổ sung để các thành phần giao tiếp với nhau.

Hương vị FreeBSD của các công cụ phổ biến

Một khía cạnh khác của hệ thống FreeBSD có thể gây nhầm lẫn cho user Linux là sự sẵn có của các công cụ quen thuộc hoạt động hơi khác so với các hệ thống Linux.

Group FreeBSD duy trì version riêng của một số lượng lớn các công cụ phổ biến. Trong khi nhiều công cụ được tìm thấy trên hệ thống Linux là từ bộ GNU, FreeBSD thường cung cấp các biến thể riêng cho hệ điều hành của nó.

Có một số lý do cho quyết định này. Vì FreeBSD chịu trách nhiệm phát triển và duy trì hệ điều hành cốt lõi, việc kiểm soát sự phát triển của các ứng dụng này và đặt chúng theo giấy phép BSD là điều cần thiết hoặc hữu ích. Một số công cụ này cũng có quan hệ chức năng chặt chẽ với các công cụ BSD và Unix mà chúng được tạo ra, không giống như bộ GNU, nói chung có xu hướng ít tương thích ngược hơn.

Những khác biệt này thường thể hiện trong các tùy chọn và cú pháp của các lệnh. Bạn có thể quen với việc chạy một lệnh theo một cách nhất định trên các máy Linux của bạn , nhưng những lệnh này có thể không hoạt động giống nhau trên server FreeBSD. Điều quan trọng là phải luôn luôn kiểm tra man trang các lệnh để làm quen với các tùy chọn cho FreeBSD biến thể.

Vỏ tiêu chuẩn

Một điểm liên quan có thể gây ra một số nhầm lẫn là shell mặc định trong FreeBSD không phải là bash . Thay vào đó, FreeBSD sử dụng tcsh làm shell mặc định của nó.

Shell này là một version cải tiến của csh , là C shell được phát triển cho BSD. bash shell là một thành phần GNU, làm cho nó trở thành một lựa chọn tồi làm mặc định cho FreeBSD. Mặc dù cả hai shell thường hoạt động theo những cách tương tự nhau trên dòng lệnh, nhưng không nên thực hiện tập lệnh trong tcsh . Sử dụng Bourne shell sh cơ bản tin cậy hơn và tránh được một số cạm bẫy được ghi chép rõ ràng liên quan đến tcshcsh scripting.

Cũng cần lưu ý rất đơn giản để thay đổi shell của bạn thành bash nếu bạn thấy phù hợp hơn trong môi trường đó.

Hệ thống file phân tầng hơn

Ta đã đề cập nhiều lần ở trên rằng FreeBSD phân biệt giữa hệ điều hành cơ sở và các thành phần tùy chọn, hoặc các cổng, có thể được cài đặt trên đầu lớp đó.

Điều này có ý nghĩa trong cách FreeBSD tổ chức các thành phần trong cấu trúc file . Trong Linux, các file thực thi thường được đặt trong folder /bin , /sbin , /usr/sbin hoặc /usr/bin tùy thuộc vào mục đích của chúng và mức độ thiết yếu của chúng đối với chức năng cốt lõi. FreeBSD nhận ra những khác biệt này, nhưng cũng áp đặt một mức độ phân tách khác giữa các thành phần được cài đặt như một phần của hệ thống cơ sở và những thành phần được cài đặt dưới dạng cổng. Phần mềm hệ thống cơ sở nằm trong một trong các folder ở trên. Bất kỳ chương trình nào được cài đặt dưới dạng cổng hoặc gói đều được đặt trong /usr/local/bin hoặc /usr/local/sbin .

Thư mục /usr/local chứa cấu trúc folder chủ yếu phản ánh cấu trúc được tìm thấy trong folder / hoặc /usr . Đây là folder root chính cho phần mềm được cài đặt thông qua hệ thống cổng. Hầu như tất cả cấu hình cho các cổng được thực hiện thông qua các file nằm trong /usr/local/etc trong khi cấu hình hệ thống cơ sở được giữ trong /etc như bình thường. Điều này giúp bạn dễ dàng nhận ra ứng dụng có phải là một phần của cổng hệ thống cơ sở hay không và giúp giữ sạch hệ thống file .

Lời kết

FreeBSD và Linux có nhiều điểm chung nhưng nếu bạn đến từ nền tảng Linux, điều quan trọng là phải nhận ra và hiểu cách thức mà chúng khác nhau. Khi con đường của chúng khác nhau, cả hai hệ thống đều có lợi thế của chúng và những người ủng hộ từ một trong hai phe có thể chỉ ra lý do cho những lựa chọn đã được đưa ra.

Coi FreeBSD là hệ điều hành của riêng nó thay vì khăng khăng muốn xem nó qua ống kính Linux sẽ giúp bạn tránh đấu tranh với hệ điều hành và nhìn chung sẽ mang lại trải nghiệm tốt hơn. Bây giờ, ta hy vọng rằng bạn đã hiểu khá rõ về những điểm khác biệt cần chú ý khi bạn tiến lên.

Nếu bạn chưa quen với việc chạy các server FreeBSD, thì bước tiếp theo có thể là hướng dẫn của ta để bắt đầu với FreeBSD .


Tags:

Các tin liên quan

Cách cấu hình xác thực dựa trên khóa SSH trên server FreeBSD
2015-01-14
Tại sao bạn có thể không muốn chạy mail server của riêng mình
2014-12-11
Cách kiểm tra lưu lượng mạng trong server LAMP với sysdig trên CentOS 7
2014-12-05
Giới thiệu về quyền của Linux
2014-11-14
Quản lý tệp và điều hướng Linux cơ bản
2014-11-14
Giới thiệu về Linux Terminal
2014-11-14
Quản lý tệp và điều hướng Linux cơ bản
2014-11-14
Quản lý tệp và điều hướng Linux cơ bản
2014-11-14
Cách tạo server để gửi thông báo đẩy bằng GCM tới thiết bị Android bằng Python
2014-11-11
Cách cài đặt và cấu hình server Mumble (Murmur) trên Ubuntu 14.04
2014-11-11