Tải bản đầy đủ (.docx) (22 trang)

Tiểu luận môn phương pháp nghiên cứu khoa học PHÂN TÍCH QUÁ TRÌNH PHÁT TRIỂN LINUX – MỘT HỆ ĐIỀU HÀNH VÀ NỀN TẢNG ĐA NĂNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (378.63 KB, 22 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

PHƯƠNG PHÁP NGHIÊN CỨU
KHOA HỌC
PHÂN TÍCH QUÁ TRÌNH PHÁT TRIỂN
LINUX – MỘT HỆ ĐIỀU HÀNH VÀ NỀN
TẢNG ĐA NĂNG
GVHD: HVTH:
Thầy GS.TSKH Hoàng Kiếm Nguyễn Văn Trường CH1301036

Tháng 05 Năm 2014
MỤC LỤC
DANH MỤC HÌNH ẢNH
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
CHƯƠNG 1: HỆ ĐIỀU HÀNH LINUX
Linux® đang ở thời điểm phát triển mạnh. Tính đến năm 2014 thì Linux đã ra đời được
23 năm, một hệ điều hành hoàn thiện với sự hỗ trợ cho một loạt các mô hình sử dụng.
Linux không chỉ là một hệ điều hành - nhân mô đun và tính linh hoạt của nó có thể xử lý
trong nhiều mô hình sử dụng (từ siêu máy tính lớn nhất đến các thiết bị nhúng nhỏ nhất).
Trong thực tế, Linux là một nền tảng. Nó là một công nghệ then chốt cho phép tạo ra các
sản phẩm mới, mà một vài trong số các sản phẩm đó mới chỉ được giới thiệu gần đây.
1.1 Giới thiệu Linux
Linux là được phát triển tựa Unix và tuân thủ chuẩn POSIX. Linux được xem là hệ điều
hành dưới mô hình phát triển phần mềm mã nguồn mở miễn phí và phân phối. Thành
phần xác định của Linux là hạt nhân Linux, được phát hành vào ngày 05 tháng 10 năm
1991 bởi Linus Torvalds.
Bên cạnh đó, Linux được phát triển như một hệ điều hành miễn phí cho máy tính cá
nhân của Intel x86. Linux sau đó được dùng trên nhiều nền tảng phần cứng máy tính hơn
bất kỳ hệ điều hành khác. Nó là một hệ điều hành hàng đầu trên các máy chủ và hệ thống
máy tính lớn.Tính đến tháng 6 năm 2013 , hơn 95% của 500 siêu máy tính nhanh nhất thế


giới chạy trên nền của Linux. Linux cũng chạy trên hệ thống nhúng, đó là các thiết bị có
hệ điều hành được xây dựng vào phần mềm và rất phù hợp với hệ thống, bao gồm điện
thoại di động , máy tính bảng , thiết bị định tuyến mạng, điều khiển tự động hóa cơ sở ,
TV và video game console. Android là một hệ điều hành sử dụng rộng rãi cho các thiết bị
di động, được xây dựng trên nhân Linux.
Sự phát triển của Linux gắn liền với một trong những đặc điểm nổi bật nhất là phần
mềm mã nguồn mở. Mã nguồn cơ bản có thể được sử dụng , thay đổi, và phân phối -
thương mại hoặc phi thương mại - bởi bất cứ ai theo giấy phép như giấy phép GNU
General Public . Thông thường, Linux được đóng gói trong một định dạng được gọi là
HVTH: Nguyễn Văn Trường Trang 4
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
một bản phân phối Linux cho máy tính để bàn và máy chủ sử dụng . Một số bản phân
phối Linux phổ biến chính bao gồm Debian , Ubuntu, Linux Mint , Fedora, Arch Linux ,
và thương mại Red Hat Enterprise Linux và SUSE Linux Enterprise Server . Bản phân
phối Linux bao gồm hạt nhân Linux, tiện ích hỗ trợ, các thư viện và một số lượng lớn các
phần mềm ứng dụng
1.2 Hệ thống thiết kế của Linux
Một hệ thống dựa trên Linux là một hệ điều hành theo mô hình Unix. Linux phát triển
phần lớn các thiết kế cơ bản từ các nguyên lý của Unix trong những năm 1970 và 1980.
Hạt nhân Linux xử lý điều khiển quá trình mạng và thiết bị ngoại vi và hệ thống tập tin
truy cập. Các thiết bị điều khiển hoặc là tích hợp trực tiếp với các hạt nhân hoặc thêm vào
như là các mô-đun được nạp trong khi hệ thống đang chạy.
Linux gồm có một nhân kernel (mã cốt lõi quản lý các tài nguyên phần cứng và phần
mềm) và một bộ sưu tập các ứng dụng của người dùng (chẳng hạn như các thư viện, các
trình quản lý cửa sổ và các ứng dụng).
Hình 1.1: Cấu trúc Linux nhìn bề ngoài
HVTH: Nguyễn Văn Trường Trang 5
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Sơ đồ trên chỉ ra các thành phần quan trọng. Tầng cuối cùng chính là một tập hợp mã
kiến trúc giúp Linux có thể hỗ trợ đa nền tảng phần cứng (ARM, PowerPC, Tilera TILE

v.v ). Tất nhiên, chức năng này được đăng ký theo giấy phép GNU, tạo nên tính di
động của Linux.
Một phần riêng biệt là giao diện kết với các hạt nhân cung cấp nhiều chức năng cao
cấp của hệ thống. GNU Userland là một phần quan trọng của hầu hết các hệ thống dựa
trên Linux, cung cấp các chức năng thực thi phổ biến nhất của thư viện C, một shell phổ
biến, và rất nhiều các công cụ Unix thực hiện nhiều nhiệm vụ cơ bản của hệ điều hành.
Giao diện đồ họa người dùng (hoặc GUI) được sử dụng bởi hầu hết các hệ thống Linux
được xây dựng bên trên của hệ thống Window X.
Hình 1.2: Sự tách biệt giữa các Userland và không gian hạt nhân qua các lớp
Một số thành phần của một hệ thống Linux cài đặt gồm:
• Một bootloader: GNU GRUB và LILO. Đây là một chương trình được thực hiện bởi máy
tính khi nó lần đầu tiên được bật , và tải hạt nhân Linux vào bộ nhớ.
• Một chương trình init: là quá trình đầu tiên được thực hiện bởi hạt nhân Linux để thiết lập
các chương trình. Nó bắt đầu quá trình như là một hệ thống dịch vụ và nhắc nhở đăng
nhập (cho dù là đồ họa hay trong chế độ thiết bị đầu cuối ) .
HVTH: Nguyễn Văn Trường Trang 6
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
• Thư viện phần mềm: có chứa mã có thể được sử dụng bởi tiến trình đang chạy . Trên các
hệ thống Linux sử dụng định dạng tập tin thực thi ELF, các liên kết động trong đó quản lý
sử dụng các thư viện động là " ld-linux.so " . Thư viện phần mềm thường được sử dụng
trên các hệ thống Linux là GNU C Library .
• Chương trình giao diện người dùng: lệnh qua shell hoặc môi trường cửa sổ.
Linux theo phong cách riêng của mình trong lĩnh vực về tính di động . Hệ thống con
của trình điều khiển (là rất lớn về khả năng của nó) hỗ trợ động các mô đun được nạp mà
không ảnh hưởng đến hiệu năng, tạo nên tính mô đun (thêm vào một nền tảng động hơn).
Linux cũng bảo mật ở mức nhân kernel tạo nên một nền tảng bảo mật Trong miền hệ
thống tệp bên ngoài, Linux tạo nên một mảng lớn nhất về hỗ trợ hệ thống tệp của bất kỳ
hệ điều hành nào, tạo nên tính linh hoạt thông qua tính mô đun thiết kế. Linux thực hiện
không chỉ các tính năng lên lịch trình tiêu chuẩn mà còn lên lịch trình thời gian thực bao
gồm các bảo đảm về độ trễ ngắt.

Cuối cùng, Linux là mở, có nghĩa là trên thực tế bất cứ ai cũng có thể xem và cải
thiện dựa vào nguồn gốc của nó. Tính mở này cũng giảm thiểu các cơ hội bị lợi dụng, tạo
ra một nền tảng an toàn hơn. Nhiều công ty đóng góp cho Linux, bảo đảm rằng nó sẽ tiếp
tục giải quyết một loạt các mô hình sử dụng trong khi vẫn duy trì các đặc tính cốt lõi của
mình.
Các nguyên tắc quan trọng này chắc chắn không phải là các thuộc tính duy nhất mà
Linux cung cấp, nhưng chúng cho phép Linux dùng như một nền tảng đa năng trên rất
nhiều các mô hình sử dụng. Hơn nữa, Linux là như nhau trên các mô hình sử dụng này—
không chỉ các nguyên tắc thiết kế mà còn bản thân mã của nó nữa. Người ta không thể
nói điều này về các hệ điều hành khác (như Windows®—máy tính để bàn, máy chủ, hoặc
thiết bị nhúng—hoặc Mac OS X hoặc Apple iOS), chúng có phân khúc dịch vụ và mô
hình sử dụng khác.
1.3 Lập trình trên Linux
HVTH: Nguyễn Văn Trường Trang 7
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Hầu hết các bản phân phối Linux hỗ trợ hàng chục ngôn ngữ lập trình. Các công cụ phát
triển ban đầu được sử dụng để xây dựng cả các ứng dụng Linux và các chương trình hệ
điều hành được tìm thấy trong chuỗi công cụ GNU , trong đó bao gồm Bộ biên dịch GNU
(GCC ) và xây dựng hệ thống GNU . GCC cung cấp trình biên dịch cho Ada, C, C + +,
Java, và Fortran . Đầu tiên phát hành vào năm 2003, dự án LLVM cung cấp một trình
biên dịch mã nguồn mở thay thế cho nhiều ngôn ngữ . Trình biên dịch độc quyền cho
Linux bao gồm Intel C + + Compiler, Sun Studio , và IBM XL C / C + + Compiler.
BASIC trong các hình thức của Visual Basic được hỗ trợ trong các hình thức như
Gambas , FreeBASIC , và XBasic , và về lập trình thiết bị đầu cuối hoặc QuickBASIC
hoặc lập trình Turbo BASIC trong các hình thức QB64 .
Một tính năng phổ biến của các hệ thống Unix, Linux bao gồm ngôn ngữ truyền
thống cụ thể mục đích lập trình nhắm vào kịch bản, xử lý văn bản và cấu hình hệ thống
và quản lý nói chung. Bản phân phối Linux hỗ trợ các shell script, awk , sed, make, grep,
soạn thảo văn bản tiên tiến GNU Emacs có một Lisp thông dịch viên hoàn toàn được xây
dựng bên trong.

Hầu hết các bản phân phối cũng bao gồm hỗ trợ cho PHP , Perl, Ruby, Python và các
ngôn ngữ động khác . Trong khi không phải là phổ biến , Linux cũng hỗ trợ C # ( qua
Mono) , Vala , và Scheme. Một số máy ảo Java và bộ dụng cụ phát triển chạy trên Linux ,
bao gồm cả bản gốc Sun Microsystems JVM ( HotSpot ) , và IBM J2SE RE , cũng như
nhiều dự án mã nguồn mở như Kaffe và JikesRVM .
Gnome và KDE là môi trường máy tính desktop phổ biến và cung cấp một
framework cho phát triển ứng dụng . Các ứng dụng này dựa trên GTK + và bộ công cụ
tiện ích Qt , tương ứng và cũng có thể được sử dụng độc lập trong khuôn khổ lớn hơn. Cả
hai hỗ trợ nhiều ngôn ngữ. Có một số môi trường phát triển tích hợp sẵn bao gồm cả
Anjuta , Code :: Blocks , CodeLite , Eclipse, Geany , ActiveState Komodo , KDevelop ,
Lazarus , MonoDevelop , NetBeans, và Qt Creator , trong khi các biên tập viên lâu đời
Vim, nano và Emacs vẫn phổ biến .
1.4 Các mảng ứng dụng của Linux
HVTH: Nguyễn Văn Trường Trang 8
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Với khả năng biến đổi nhanh và mở rộng quy mô của mình, có thể tìm thấy Linux trong
tất cả các phân khúc máy tính (và thậm chí một số phân khúc vẫn chưa được định nghĩa
đầy đủ). Một số các phân khúc điện toán quan trọng, bao gồm máy tính để bàn/netbook,
máy chủ, cluster, máy tính lớn Mainframe, siêu máy tính, thiết bị cầm tay/máy tính bảng,
thiết bị nhúng, ảo hóa và các máy thử nghiệm
Hình 1.3. Các thuộc tính và các phân khúc của Linux
1.4.1 Máy tính để bàn và netbook
Các máy tính để bàn và các netbook, nơi có nhiều người sử dụng. Linux đã bắt đầu như là
một hệ điều hành thử nghiệm đơn giản và với việc giới thiệu XFree86 vào năm 1994, một
trình quản lý cửa sổ đã cho thấy sự hứa hẹn của một hệ điều hành máy tính để bàn. Ngày
nay, một số trình quản lý cửa sổ có sẵn cho Linux cho phép người dùng biến phong cách
riêng của nó thành các nhu cầu của họ. Hơn nữa, Linux thay đổi quy mô tự động với các
khả năng xử lý (như là đa luồng đối xứng và đa lõi), lập lịch trình hiệu quả.
HVTH: Nguyễn Văn Trường Trang 9
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm

Hình 1.4: Thành phần phần mềm của máy tính Desktop Linux
Sự phổ biến của Linux trên máy tính để bàn tiêu chuẩn và máy tính xách tay ngày
càng tăng trong những năm qua. Hiện nay hầu hết các bản phân phối bao gồm một môi
trường người dùng đồ họa, với hai môi trường phổ biến nhất là GNOME (có thể sử dụng
shell bổ sung như mặc định GNOME Shell và Ubuntu Unity), và Plasma Desktop KDE
1.4.2 Máy chủ, MainFrames và các siêu máy tính
Bản phân phối Linux từ lâu đã được sử dụng như là hệ điều hành máy chủ, và đã tăng lên
đáng kể trong khu vực đó ; Netcraft báo cáo trong tháng 9 năm 2006 rằng tám trong mười
công ty lưu trữ internet đáng tin cậy nhất chạy bản phân phối Linux trên máy chủ web
của họ. Bản phân phối Linux là nền tảng của LAMP server- phần mềm kết hợp ( Linux,
Apache, MariaDB / MySQL, Perl / PHP / Python) đã đạt được phổ biến trong số các nhà
phát triển , và đó là một trong những nền tảng phổ biến hơn cho trang web lưu trữ .
Bản phân phối Linux đã trở nên ngày càng phổ biến trên máy tính lớn trong thập kỷ
qua một phần là do giá cả và mô hình mã nguồn mở . Trong tháng 12 năm 2009 , máy
tính khổng lồ IBM thông báo rằng thị trường và máy tính lớn chủ yếu dựa trên Enterprise
Linux máy chủ.
HVTH: Nguyễn Văn Trường Trang 10
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Hình 1.5: Gói phần mềm LAMP, hiển thị cùng với Squid
Linux thống trị thị trường máy chủ (bao gồm các máy chủ web, máy chủ thư điện tử,
máy chủ Hệ thống tên miền - DNS và các thiết bị tầng sau khác). Các khảo sát gần đây
cho thấy rằng hơn 60% tất cả các máy chủ chạy Linux. Ngoài các dịch vụ web truyền
thống, Linux cung cấp cho nhiều tài sản Internet lớn nhất (Facebook, eBay, Twitter và
Amazon v.v ), với các yêu cầu và các mô hình sử dụng khác nhau. Ngoài các tùy chọn
truyền thống (chẳng hạn như web hoặc thư điện tử), Linux còn cung cấp các mảng lớn
nhất về các dịch vụ web (và các tùy chọn khác nhau cho các dịch vụ đó).
1.4.3 Các thiết bị nhúng
Các thiết bị nhúng, với các mức ràng buộc khác nhau (hiệu năng của bộ xử lý, các tài
nguyên như bộ nhớ và v.v). Linux là lý tưởng trong hầu hết các trường hợp này vì khả
năng thu hẹp quy mô của nó và sử dụng bất kỳ các bộ vi xử lý nhúng nào có sẵn trên thị

trường. Tính linh hoạt này làm cho Linux trở thành một nền tảng được sử dụng rất nhiều
trong truyền hình, giải trí trong xe hơi, các hệ thống định vị và nhiều kiểu thiết bị khác.
Linux có khả năng tùy chỉnh cao và tập trung vào mức tiêu thụ điện năng thấp. Để
bảo đảm sự tập trung vào điện năng, sáng kiến Less Watts (Wát thấp hơn) theo dõi sự tiêu
HVTH: Nguyễn Văn Trường Trang 11
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
thụ điện năng của các bản phát hành nhân Linux. Dự án này chủ yếu tập trung vào các
nền tảng của Intel, nhưng cũng có thể có ích với các bộ xử lý khác.
Linux là một đề xuất khá chuẩn cho các thiết bị nhúng và có thể xác định sự thành
công hay thất bại của thiết bị (hỗ trợ phát triển và xuất hiện nhanh). Một thiết bị thú vị
gần đây được gọi là Raspberry Pi, một máy tính có kích thước bằng thẻ tín dụng dựa trên
ARM, chạy Linux và được dự định làm một thiết bị học tập để dạy lập trình.
1.5 Nền tảng ảo hóa
Một trong những lĩnh vực thú vị nhất trong đó Linux hướng tới sự đổi mới là trong lĩnh
vực ảo hóa. Linux là ngôi nhà của hệ điều hành cho tất cả các loại giải pháp ảo hóa có
sẵn, cho dù nền tảng hoặc ảo hóa song song, ảo hóa hệ điều hành hay nhiều ý tưởng mơ
hồ hơn như ảo hóa cộng tác. Linux là một hệ điều hành có thể biến mình thành một trình
siêu giám sát - hypervisor (chẳng hạn như KVM - Máy tính ảo dựa vào nhân) cũng như
lưu trữ trên máy chủ một số trình siêu giám sát nghiên cứu. Để mang lại hiệu quả hơn cho
ảo hóa, Linux thực hiện Kernel SamePage Merging (Kết hợp trang giống nhau của nhân)
để loại bỏ có hiệu quả các trang bộ nhớ dư thừa.
Linux cũng đang hướng tới kỹ nghệ cao về một sự tiến bộ mới trong ảo hóa được gọi
là ảo hóa lồng nhau.Việc lồng nhau cho phép một trình siêu giám sát lưu trữ trên máy chủ
một trình siêu giám sát khách, rồi trình khách này lần lượt lưu trữ một tập hợp các máy
ảo khách trên máy chủ. Mặc dù thoáng nhìn như là một trường hợp sử dụng cũ, nhưng ảo
hóa lồng nhau sẽ thay đổi điện toán đám mây và mở rộng các kiểu của các ứng dụng có
thể được lưu trữ trên máy chủ ở đó. Hiện nay, KVM của Linux hỗ trợ ảo hóa lồng nhau.
1.6 Nền tảng thử nghiệm
Cuối cùng nhưng không kém quan trọng là nền tảng của chính Linux—một nền tảng thử
nghiệm mà qua đó đang khám phá ra nhiều ý tưởng mới. Năm 1991, Linux đã được giới

thiệu như là một hệ điều hành đồ chơi, 20 năm sau bản phát hành đầu tiên của UNIX®.
Hiện nay, Linux dùng làm một nền tảng để thử nghiệm trong nghiên cứu hệ thống tệp,
điện toán cụm, những đám mây, sự tiến bộ ảo hóa và mở rộng các hạn chế theo đó một
HVTH: Nguyễn Văn Trường Trang 12
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
nhân của hệ điều hành đơn lẻ có thể được áp dụng cho rất nhiều mô hình sử dụng. Linux
như là một nền tảng cho phép thử nghiệm tăng tốc thông qua việc sử dụng cả Linux lẫn
một loạt các thành phần nguồn mở to lớn. Kết quả là một loạt các công nghệ thú vị được
xây dựng từ Linux, gồm có HP webOS (Hệ điều hành web của HP), Google Chrome OS
(Hệ điều hành web của Google) và Android.
Một thay đổi thú vị được Linux giới thiệu là sự không phù hợp của các nền tảng phần
cứng cơ bản ngày càng tăng. Linux trình bày một trải nghiệm người dùng tương tự bất kể
kiến trúc phần cứng cơ bản nào. Vì vậy, cho dù một đám mây có được lấp đầy bằng các
máy chủ x86 của AMD hoặc các dịch vụ dựa trên ARM điện năng thấp hay không, các
ứng dụng chạy trên Linux đều được trừu tượng hóa từ các kiến trúc vật lý. Sự trừu tượng
hóa này cho phép những người dùng ra các quyết định trên nền tảng dựa vào các yêu cầu
của họ chứ không bị buộc chặt vào kiến trúc chung nhưng cổ xưa và không hiệu quả.
Linux cân bằng sự lựa chọn.
Linux cũng là một môi trường phát triển tích hợp (IDE) độc lập. Ngoài việc lưu trữ
trên máy chủ một chuỗi công cụ của trình biên dịch tầm cỡ thế giới (GNC Compiler
Collection – Bộ sưu tập trình biên dịch GNC), nó còn lưu trữ trên máy chủ một loạt các
công cụ trải rộng từ các trình gỡ lỗi, các trình soạn thảo, các hệ thống kiểm soát phiên
bản, các công cụ tệp và các trình vỏ và các trình thông dịch để giúp tự động hóa các
nhiệm vụ phát triển. Trong khả năng này Linux làm cho nó trở thành một môi trường lý
tưởng để phát triển phần mềm và nghiên cứu phần mềm.
1.7 Hiệu suất và ứng dụng
Hiệu suất của Linux trên máy tính để bàn là một chủ đề gây tranh cãi; ví dụ như trong
năm 2007 Côn Kolivas cáo buộc của cộng đồng Linux ưu hiệu suất trên các máy chủ . Kể
từ đó một số lượng đáng kể phát triển đã được thực hiện trong nỗ lực để cải thiện kinh
nghiệm máy tính để bàn . Các dự án như Upstart và systemd với mục tiêu làm thời gian

khởi động nhanh hơn ; dự án Wayland và Mir nhằm mục đích thay thế X11 giúp tăng
cường hiệu suất máy tính để bàn , an ninh và giao diện.
HVTH: Nguyễn Văn Trường Trang 13
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Nhiều ứng dụng phổ biến có sẵn cho một loạt các hệ điều hành. Ví dụ Mozilla
Firefox, OpenOffice.org / LibreOffice và Blender có phiên bản tải về cho tất cả các hệ
điều hành chính . Hơn nữa, một số ứng dụng đã được ban đầu được phát triển cho Linux ,
chẳng hạn như Pidgin , và GIMP, và đã được chuyển đến các hệ điều hành khác như
Windows và Mac OS X nhờ sự phổ biến. Ngoài ra, một số lượng lớn các ứng dụng máy
tính để bàn độc quyền cũng được hỗ trợ trên Linux, như Autodesk Maya, Softimage XSI
và Apple Shake trong lĩnh vực cao cấp của hình ảnh động và hiệu ứng hình ảnh .
Nhiều ứng dụng khác có sẵn cho Microsoft Windows và Mac OS X cũng có sẵn cho
Linux chẳng hạn như với Skype và một số trò chơi video như DotA 2 và Team Fortress 2.
Hơn nữa, dự án Wine cung cấp một lớp tương thích Windows để chạy các ứng dụng
Windows nguyên bản trên Linux. CrossOver là một giải pháp độc quyền dựa trên dự án
mã nguồn mở Wine hỗ trợ chạy các phiên bản Windows của Microsoft Office , các ứng
dụng như Intuit Quicken và QuickBooks, các phiên bản Adobe Photoshop CS2 qua , và
nhiều trò chơi phổ biến như World of Warcraft.
HVTH: Nguyễn Văn Trường Trang 14
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
CHƯƠNG 2: PHÂN TÍCH CÁC NGUYÊN TẮC SÁNG TẠO
VẬN DỤNG TRONG LINUX
2.1 Nguyên tắc sao chép (copy)
Linux được phát triển dựa vào những nguyên lý của Unix. "Linux" thường được sử dụng
để chỉ Nhân Linux, nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể
một hệ điều hành giống Unix. (còn được biết đến dưới tên GNU/Linux) đượ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, cũng như là các bản
phân phối Linux.
Torvalds bắt đầu phát triển Linux kernel trên môi trường MINIX năm 1991, các ứng
dụng viết cho MINIX có thể sử dụng trên Linux. Và sau đó khi Linux đã "trưởng thành"

thì việc phát triển Linux diễn ra ngay trên hệ thống Linux.
2.2 Nguyên tắc đảo ngược
Sự khác nhau cơ bản giữa Linux và nhiều hệ điều hành phổ biến đương thời là nhân
Linux và các thành phần khác đều là phần mềm tự do và mã nguồn mở. Trong khi, Mac
OS X là một dòng hệ điều hành độc quyền, được phát triển và phân phối bởi Apple,
được cài đặt sẵn trên các máy tính Macintosh, và Microsoft Windows là tên của các dòng
phần mềm hệ điều hành độc quyền của hãng Microsoft
Linux không chỉ là một hệ điều hành, mặc dù cho đến nay đã được sử dụng phổ biến.
Vài giấy phép phần mềm tự do và mã nguồn mở dựa trên copyleft, một vài công việc bắt
nguồn từ một phần copyleft cũng phải được copyleft chính nó. Giấy phép thông dụng
nhất của phần mềm tự do là giấy phép GNU (the GNU General Public License - GPL),
một dạng của copyleft, và được sử dụng cho nhân Linux và nhiều thành phần từ dự án
GNU.
Ngày nay, Linux được xem là biểu tượng của sự chia sẻ cộng đồng, được phát triển
bởi cộng đồng và được ủng hộ vì hoàn toàn miễn phí. Linux được xem là sự đối địch của
Windows (Microsoft), bởi nhiều người cho rằng, với Microsoft tất cả chỉ có lợi nhuận.
2.3 Nguyên tắc vạn năng
HVTH: Nguyễn Văn Trường Trang 15
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Với khả năng biến đổi nhanh và mở rộng quy mô của mình, có thể tìm thấy Linux trong
tất cả các phân khúc máy tính từ các hệ thống nhúng vào siêu máy tính, cài đặt máy chủ
thường được sử dụng phổ biến ứng dụng LAMP. Việc sử dụng các bản phân phối Linux
trong gia đình và doanh nghiệp máy tính để bàn cũng đang phát triển mạnh
Các bản phân phối Linux cũng đã trở nên phổ biến trong thị trường netbook, với nhiều
thiết bị như Eee PC ASUS và Acer Aspire One
Hình 2.1: Các phân khúc ứng dụng của Linux
Các bản phân phối Linux hỗ trợ rất nhiều ngôn ngữ lập trình. GCC cung cấp trình
biên dịch cho Ada, C, C + +, Java, và Fortran . Dự án LLVM cung cấp một trình biên
dịch mã nguồn mở thay thế cho nhiều ngôn ngữ . Hầu hết các bản phân phối hỗ trợ cho
PHP , Perl, Ruby, Python và các ngôn ngữ động khác Linux hỗ trợ C # ( qua Mono) ,

Vala , và Scheme. Một số máy ảo Java và bộ dụng cụ phát triển chạy trên Linux , bao
gồm cả bản gốc Sun Microsystems JVM ( HotSpot ) , và IBM J2SE RE , cũng như nhiều
dự án mã nguồn mở như Kaffe và JikesRVM .
Linux đáp ứng được hầu như rất nhiều chương trình văn phòng với các phần mềm
thay thế: Openoffice hoặc LibreOffice thay cho Microsoft Office, Pidgin thay cho Yahoo
Messenger, BitTorrent thay cho Utorrent, OpenShot thay cho Proshow Gold, VLC hay
Movie Player thay cho Windows Media Player việc đổi host vào facebook cũng dễ
dàng, việc cài đặt D-com 3G, USB 3G hay cài đặt điện thoại để kết nối internet qua điện
thoại rất dễ dàng. Add-on Down Them All dùng để download cũng có thể down tốt như
Internet Download Manager trên Windows
2.4 Nguyên tắc rẻ thay cho đắt
Sử dụng Linux, sẽ không phải trả bất cứ một khoản tiền bản quyền nào. Linux và các
phần mềm đi kèm đều hoàn toàn miễn phí. Nếu máy tính sử dụng Windows và 1 phần
mềm văn phòng như Microsoft Office thì phải mất một khoản tiền nhất định
HVTH: Nguyễn Văn Trường Trang 16
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Chi phí thấp và dễ dàng tùy biến, Do đó Linux thường được sử dụng trong các hệ
thống nhúng. Trong điện thoại di động phân ngành của ngành thiết bị viễn thông có ba
nền tảng chính dựa trên một phiên bản ít nhiều sửa đổi của hạt nhân Linux: mer, Tizen, và
Android. Android hiện nay đã trở thành hệ điều hành di động chiếm ưu thế cho điện thoại
thông minh.
2.5 Nguyên tắc phân nhỏ
Hình 2.2: Các thành phần của hệ điều hành Linux.
Hệ điều hành Linux có ba thành phần chủ yếu:
• Kernel- hạt nhân là phần cốt lõi của Linux. Nó chịu trách nhiệm cho tất cả các hoạt động
chính của hệ điều hành này. Nó là bao gồm các mô-đun khác nhau và nó tương tác trực
tiếp với phần cứng cơ bản. Hạt nhân cung cấp trừu tượng cần thiết để che giấu các chi tiết
phần cứng cấp thấp để hệ thống hoặc chương trình ứng dụng.
• Thư viện hệ thống - Hệ thống thư viện là chức năng đặc biệt hoặc chương trình sử dụng
các chương trình ứng dụng hoặc tiện ích hệ thống truy cập các tính năng hạt nhân của.

Các thư viện này thực hiện hầu hết các chức năng của hệ điều hành và không đòi hỏi
quyền truy cập mô-đun mã hạt nhân của.
• Hệ thống Tiện ích - Hệ thống các chương trình tiện ích có trách nhiệm làm nhiệm vụ cấp
độ cá nhân chuyên ngành.
Linux phân chia làm 2 mode là Kernel mode và user mode:
HVTH: Nguyễn Văn Trường Trang 17
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
• Mã thành phần kernel thực hiện trong một chế độ đặc quyền đặc biệt được gọi là chế độ
kernel có quyền truy cập vào tất cả các nguồn tài nguyên của máy tính. Mã này đại diện
cho một quá trình duy nhất, thực hiện trong không gian địa chỉ duy nhất và không yêu
cầu bất kỳ bối cảnh chuyển đổi và do đó là rất hiệu quả và nhanh chóng. Kernel chạy mỗi
quy trình và cung cấp các dịch vụ hệ thống các quy trình, cung cấp truy cập bảo vệ phần
cứng cho các quá trình.
• Hỗ trợ mã mà không cần phải chạy trong Kenel mode là trong thư viện hệ thống. Chương
trình người dùng và các chương trình hệ thống khác hoạt động trong user mode không có
quyền truy cập vào phần cứng hệ thống và mã kernel. Chương trình sử dụng hoặc các
ứng dụng tiện ích sử dụng thư viện hệ thống để truy cập các chức năng kernel để thực
hiện nhiệm vụ cấp thấp của hệ thống.
• Nhớ cách thiết kế này mà khi đóng gói nhân Linux với các thư viện và công cụ GNU
khác nhau sẽ tạo ra một giao diện, chức năng khác nhau. Trong khi đó, Windows là hệ
điều hành tổng thể, được xây dựng cố định với các API ( Aplications Program Interface),
nên không thể thay đổi giao diện điều khiển, nếu có thây thì bạn chỉ có thể thay đổi cái
theme, còn về cái khung chính luôn luôn cố định ở từng phiên bản.
HVTH: Nguyễn Văn Trường Trang 18
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Hình 2.3: Kiến trúc Linux
Do Giao diện hoàn toàn tách rời với hệ thống lõi nên khi dùng Linux có thể đổi môi
trường giao diện mà không cần lo lắng xem có phải cài lại chương trình hay không. Có
nhiều giao diện như KDE Plasma Desktop, GNOME, Cinnamon, Unity, LXDE, Pantheon
and Xfce.

2.6 Nguyên tắc đồng nhất
Cấu trúc file: Linux sắp xếp mọi dữ liệu trong máy tính trên một "cây thư mục duy
nhất'.Khác trên Windows, quan niệm ổ đĩa C: , D: , E… và một cái gốc của một cây thư
mục, căn cứ vào đó để quản lý.
Linux không có Registry, ứng dụng trên Linux lưu giữa thiết đặt nội tại trong bản
thân nó trên cơ sở phân cấp người dùng. Tức là nó sẽ tạo ra những module được đặt trong
các thư mục có quyền truy cập khác nhau. Khi người dùng đăng nhập máy tính ở cấp độ
nào thì ứng dụng chỉ truy cập đến modul trong thư mục mà họ có quyền truy cập. Trong
khi đó, Registry trên windows được xem là bộ khung của máy tính, nó lưu trữ toàn bộ
thông tin ứng dụng, thiết đặt chức năng, mật khẩu người dùng, thông tin thiết bị.
2.7 Nguyên tắc kết hợp
Linux có tính động rất cao nhờ modun hóa. Hệ thống con của trình điều khiển hỗ trợ
động các mô đun được nạp mà không ảnh hưởng đến hiệu năng, tạo nên tính mô đun
Bên cạnh đó, Linux cài đặt chương trình theo trình quản lý, một ứng dụng được liên
kết đến nhiều thư viện và tệp tin rời rạc, khi cài đặt thì trình quản lý này tự nhận ra gói
nào cần thiết sẽ tải về. Và khi nâng cấp, nó cũng chỉ tải về những thư viện, file thực thi
được nâng cấp chứ không tải về tất cả.
2.8 Nguyên tắc chứa trong
Linux đang hướng tới kỹ nghệ cao về một sự tiến bộ mới trong ảo hóa gọi là ảo hóa lồng
nhau.Việc lồng nhau cho phép một trình siêu giám sát lưu trữ trên máy chủ một trình siêu
giám sát khách, rồi trình khách này lần lượt lưu trữ một tập hợp các máy ảo khách trên
máy chủ. Phương pháp sẽ thay đổi điện toán đám mây và mở rộng các kiểu của các ứng
dụng có thể được lưu trữ trên máy chủ ở đó.Hiện nay, KVM (a Kernel-based Virtual
Machine) của Linux hỗ trợ ảo hóa lồng nhau.
HVTH: Nguyễn Văn Trường Trang 19
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
CHƯƠNG 3: KẾT LUẬN
Qua quá trình nghiên cưu và tìm hiều sự phát triển của Linux, Báo cáo đã trình bày tổng
quan về hệ thông Linux. Cấu trúc hệ thống Linux là hoàn toàn khác biệt nếu so sánh với
Window, Linux có sự phân tách rõ rành giữa các thành phần từ HardWare cho tới GUI.

Nhờ giao diện hoàn toàn tách rời với hệ thống lõi nên khi dùng Linux có thể đổi môi
trường giao diện mà không cần lo lắng xem có phải cài lại chương trình hay không
Bên cạnh đó, Báo cáo cũng đưa ra những dẫn chứng cụ thể về quá trình lớn mạnh
của Linux, kể từ khi có phiên bản đầu tiên năm 1991 khi mà Linux hầu như đã được ứng
dụng trong nhiều phân khúc từ hệ thống nhúng cho đến các siêu máy tính, cụ thể gồm:
Máy tính để bàn và netbook, Máy chủ, Điện toán Cluster và điện toán phân tán, Máy tính
Mainframe, Siêu máy tính, Các thiết bị di động và máy tính bảng…
Báo cáo cũng phân tích việc vận dụng các nguyên lý sáng tạo trong quá trình phát
triển của Linux. Nguyên tắc đầu tiên phài kể đến “Nguyên tắc đảo ngược”, trong khi
nhiều hệ điều hành là có bản quyền và mã nguồn đóng thì Linux lại là phần mềm tự do và
mã nguồn mở. Giấy phép thông dụng nhất của phần mềm tự do là giấy phép GNU, một
dạng copyleft. Và nhờ đó mà rất nhiều đam mê đã đóng góp vào sự phát triển của Linux.
Nguyên tắc vạn năng cũng được áp dụng triết dể trong Linux, khi mà hiện nay Linux
đã hổ trợ được rất nhiều nên tảng ứng dụng khác nhau từ máy chủ, PC đền thiết bị nhúng.
Các ngôn ngữ lập trình cũng được hổ trợ rất đa dạng trên Linux: Ada, C, C + +, Java, và
Fortran, PHP , Perl, Ruby, Python…
Ngoài ra, báo cáo cũng phân tích một số nguyên tắc sáng tạo khác được vận dụng
trong Linux, nguyên tắc sao chép, nguyên tắc phân nhỏ, nguyên tắc đồng nhất, nguyên
tắc kết hợp và nguyên tắc chứa trong.
HVTH: Nguyễn Văn Trường Trang 20
Báo cáo môn Phương pháp nghiên cứu khoa học Hướng dẫn GS.TSKH Hoàng Kiếm
Tài liệu tham khảo:
[1] Slide Phương pháp nghiên cứu khoa học trong tin học của GS.TSKH Hoàng Kiếm
[2] />[3] />[4] />[5] />HVTH: Nguyễn Văn Trường Trang 21

×