Chúng ta sẽ bắt đầu với khái niệm engine của trình
duyệt hay nói đầy đủ hơn là layout engine. Bạn có thể hiểu một cách đơn
rằng nếu thiếu đi engine, website
sẽ không thể biên dịch và lúc đó, những thứ trình bày cho người duyệt
web chỉ là những đoạn mã mà nhà phát triển đã sử dụng để thiết kế
website mà thôi.
Ngày nay, có bốn engine chi phối toàn bộ các ứng
dụng duyệt web. Lần lượt chúng là Trident, Gecko, Webkit và Presto.
Chúng ta sẽ đến với Trident trước tiên, engine thuộc sở hữu của đại gia
Microsoft.
Trident được ra mắt đầu tiên vào năm 1997, thời
điểm công bố phiên bản Internet Explorer 4 của Microsoft. Trident là một
kiến trúc được Microsoft thiết kế nhằm tạo sự dễ dàng hơn cho các nhà
phát triển muốn sử dụng engine này để tạo nên các sản phẩm khác.
Engine này được đóng gói thành một tập tin
mshtml.dll giúp các nhóm phát triễn dễ dàng sử dụng. Mặc dù kiến trúc
của Trident được chia thành nhiều tập tin mã nhị phân khác nhau, nhưng
quan trọng nhất vẫn là mshtml.dll.
Mặc dù không công bố mã nguồn Trident, nhưng Microsoft hoàn toàn cho phép sử dụng miễn phí
engine này, cũng vì thế mà ngày nay có khá nhiều trình duyệt web được
phát triển dựa trên Trident, có thể kể ra những cái tên cũng khá nổi
tiếng như Maxthon, Avant. Ngoài ra, những ứng dụng quen thuộc của
Microsoft Outlook hay Outlook Express hay như Skype cũng sử dụng engine
Trident nhằm biên dịch các đoạn mã HTML.
Bất cứ một layout engine nào cũng cần phải đáp ứng
được các chuẩn của tổ chức World Wide Web Consortium (W3C), tổ chức được
thành lập nhằm quản lý cũng như phát triển các chuẩn dành cho thế giới
internet.
Với phiên bản Trident 5 dành cho Internet Explorer 8
và 9, engine này hoàn toàn có thể biên dịch các chuẩn internet mới như
CSS3 và HTML5. Mặc dù với một số tổ chức mở rộng của CSS3 thì Trident 5
chưa thật sự hoàn chỉnh. Bên cạnh đó, với bài kiểm tra trình duyệt
Acid2, Trident 5 cũng hoàn thành rất xuất sắc. Phiên bản Trident 6 dành
cho Internet Explorer 10 được phát triển hỗ trợ HTML5 và CSS3 rất tốt.
Mặc dù rất mạnh và tiện dụng trong việc hỗ trợ phát
triển ứng dụng. Nhưng Microsoft cũng không thể sử dụng Trident cho hệ
điều Mac, điều này là dễ hiểu bởi cả hai nền tảng của cả hệ điều hành
này là quá khác nhau. Microsoft đã phát triển một engine khác với tên
gọi Tasman, vẫn dựa trên một số thành phần của Trident.
Tasman hoạt động hiệu quả tới mức mà vào thời điểm
sắp ra mắt Internet Explorer 7, đã có tin đồn Tasman sẽ thay thế Trident
nhưng điều này đã không xảy ra. Về sau, Microsoft đã thôi không dùng
Tasman mà chuyển sang sử dụng WebKit cho phiên bản Microsoft Outlook
dành cho MAC.
Tiếp đến là layout engine Gecko. Ban đầu là dự án
được Netscape phát triển nhằm khắc phục những yếu kém của trình duyệt
Netscape vào năm 1997. Tại thời điểm đó, trình duyệt Netscape hoàn toàn
thua sút so với Internet Explorer của Microsoft và không thể đáp ứng các
chuẩn của tổ chức W3C.
Ban đầu, Gecko có tên mã dự án là Raptor. Gecko
phân chia thành hai phần quan trọng, một là Browser Engine, thành phần
này bao gồm các phương thức khác nhau phục vụ cho việc tương tác của
người dùng với trình duyệt. Theo cấu trúc thiết kế của Gecko, Browser
Engine sẽ nhận mọi yêu cầu sử dụng từ phía người dùng, rồi sau đó sẽ đưa
xuống cho thành phần thứ hai của layout engine này, có tên gọi
Rendering Engine.
Thành phần Rendering Engine sẽ biên dịch các mã
được nhà thiết kế website sử dụng như HTML, XML, Javascript,... hoàn
thành việc biên dịch này, Rendering Engine sẽ trả về kết quả hoàn chỉnh
là website cho người dùng.
Để thực hiện điều này, Redering Engine sử dụng lần
lượt các thành phần với chức năng xử lý cụ thể. Necko, có nhiệm vụ đảm
bảo tính chất bảo mật và sự đúng đắn trong các giao thức internet HTTP
hay FTP. Tiếp đến là Spider Monkey, trình thông dịch Javascript của
Gecko. Để xử lý mã XML, Gecko cũng sở hữu một thành phần riêng cho ngôn
ngữ định dạng này. Cuối cùng, để tái tạo lại giao diện và các đối tượng
hình ảnh, Gecko sử dụng thư viện GTK+ lâu đời.
Sau khi mua lại Netscape vào tháng 7 năm 2003, AOL
đã ngừng phát triển Gecko, layout engine này được tiếp tục phát triển
bởi Mozilla như bạn đã biết ngày nay.
Với mã nguồn mở, Gecko đã được sử dụng cho rất
nhiều trình duyệt sau này như K-Meleon, Seamonkey và cả trình quản lý
thư điện tử Thunderbird. Điểm kém nhất của Gecko là khả năng bảo mật nếu
so sánh với Trident.
Gecko cũng hoàn thành xuất sắc bài kiểm tra Acid2
nhưng có một số tính năng CSS3 mà engine này vẫn chưa hoạt động tốt lắm.
Với HTML5, Gecko cũng hoạt động tương đối trơn tru.
Ra đời sau Trident và Gecko chỉ một năm, tính đến
thời điểm hiện tại, WebKit đã có 12 năm phát triển và ngày nay là một
trong những layout engine ưa thích của nhiều hãng phát triển nổi tiếng
như Adobe, Samsung hay Google với sản phẩm hết sức quen thuộc, trình
duyệt Google Chrome và Safari của Apple.
Tiền thân của WebKit là dự án của KDE, tổ chức phát
triển ứng dụng miễn phí cho hầu hết các môi trường khác nhau. WebKit
bao gồm hai kỹ thuật chính, đã được KDE phát triển, đó là KHTML và KJS.
Cấu thành WebKit bao gồm hai phần chính là WebCore
và JavaScriptCore. WebCore đảm nhiệm vai trò biên dịch các thành phần
định dạng hình ảnh của một website như HTML, CSS và đặc biệt là định
dạng hình ảnh SVG, loại hình ảnh dựa trên ngôn ngữ định dạng dữ liệu XML
với khả năng trình bày hình ảnh vượt trội so với các loại hình ảnh quen
thuộc đã biết như JPEG hay PNG.
Bên cạnh đó, WebCore cũng hoàn thành xuất sắt cả
hai bài kiểm tra Acid2 và Acid3 với tốc độ xử lý cực nhanh và tốn rất ít
tài nguyên phần cứng. WebCore cũng đáp ứng các chuẩn định dạng được W3C
qui định với khả năng xử lý CSS3 và HTML5 rất tốt.
Tiếp đến là JavaScriptCore. Được phát triển dựa
trên KJS đã đề cập ở trên cùng với một số cải tiến sáng giá.
JavaScriptCore của Wbekit có khả năng thu dọn rác rất tốt, điều này cải
thiện tài nguyên phần cứng mỗi khi trình duyệt hoạt động. Không những
thế, JavaScriptCore còn vượt qua bài kiểm tra chuẩn Javscript của
Mozilla.
Apple đã công bố chuẩn WebKit2 với khả năng xử lý
nhiều tiến trình cùng một lúc giúp gia tăng hiệu suất xử lý của trình
duyệt Safari. Đối với Google, Chrome Webkit cũng đã trình làng kỹ thuật
này sớm hơn.
Ngoài là "trái tim" của trình duyệt Safari và
Google Chrome. WebKit còn được sử dụng cho nhiều sản phẩm khác nhau như
iPhone hay iPod và những ứng dụng dành cho thiết bị công nghệ mới sau
này của Adobe như Adobe Air.
Cuối cùng là Presto, layout engine của trình duyệt
Opera. Layout engine này được Opera công bố vào năm 2003 dành cho phiên
bản Opera 7 nhằm thay thế cho engine cũ Elektra của hãng và được sử dụng
cho đến tận ngày hôm nay với Opera 11.
Khác hẳn với cả ba trình duyệt đã đề cập ở trên,
Presto thuộc sở hữu độc quyền của Opera và họ vẫn không công bố chi tiết
công nghệ của mình, chỉ những đối tác từ hãng thứ ba mới có được những
thông tin phát triển khi đã mua quyền sử dụng Presto của Opera mà thôi.
Presto có khả năng làm việc tuyệt vời với
Javascript và vượt qua rất nhiều cuộc thử nghiệm Javascript khác nhau.
Tương tự như engine WebKit, Presto cũng hoàn thành xuất sắc cả hai bài
kiểm tra chuẩn Acid2 và Acid3.
Bên cạnh đó, một số ứng dụng của Nintendo cũng sử
dụng Presto làm layout engine. Trước đây, Adobe cũng đã sử dụng layout
engine này cho một số sản phẩm của mình, nhưng về sau họ đã từ bỏ nó để
sử dụng WebKit.
Đó là đôi nét sơ lược về những thứ ẩn sâu bên trong
mỗi trình duyệt các bạn đang dùng, qua đây chúng ta có thể hiểu được
đâu là nguyên nhân dẫn đến sự khác nhau về tốc độ giữa các trình duyệt
phổ biến ngày nay.
Không có nhận xét nào:
Đăng nhận xét