"Go" mainstream browser kernel introduction

Source: Internet
Author: User
Tags microsoft edge

Kernel

The first thing you need to know is what the browser kernel refers to.

The browser kernel can be divided into two parts: the rendering engine (layout engineer or Rendering engine) and the JS engine. It is responsible for acquiring the content of the Web page (HTML, XML, images, etc.), organizing the message (such as adding CSS, etc.), and calculating how the page will be displayed, and then outputting it to the display or printer. The browser's kernel is different from the syntax of the Web page, so the effect of rendering is not the same. The kernel is required for all Web browsers, e-mail clients, and other applications that need to edit and display Web content. JS engine is to parse JavaScript language, execute JavaScript language to achieve the dynamic effect of Web page.

The first rendering engine and the JS engine are not clearly distinguished, and then the JS engine becomes more independent, the kernel tends to refer only to the rendering engine. There is a Web page standard planning team produced an ACID to test engine compatibility and performance. There are many types of kernels, such as the non-commercial free kernel with no one to use, there may be more than 10 kinds, but the common browser kernel can be divided into four kinds: Trident, Gecko, Blink, Webkit.

Trident ([' Tra?d (?) NT])

Trident (ie kernel): The kernel program was first adopted in the 1997 IE4, Microsoft in the Mosaic ("Mosaic", which is the first browser in human history, from this page can be viewed in the graphical interface window) code based on the changes, and used to IE11, is also commonly referred to as the "IE kernel".

Trident is actually an open kernel, its interface core design is quite mature, so there are many using IE kernel instead of IE browser (Shell browser) emerges. Because IE itself "monopoly" (although nominally IE is not a monopoly, but in fact, especially from the Windows 95 to the beginning of the XP, in terms of market share, IE indeed with the use of Windows Dongfeng in the "monopoly" status) and make the Trident core of a long-term Alone, Microsoft has not updated the Trident kernel for a long time, which leads to two consequences-one is that the Trident kernel was almost out of touch with the Standard (2005), the second is the Trident kernel of a large number of bugs and other security issues have not been resolved in a timely manner, Then add some developers who are committed to open source and some scholars to open their view that Internet Explorer is unsafe, there are many users to other browsers, Firefox and Opera is the rise of this time. The significant increase in the market share of non-Trident kernel browsers has also led many web developers to pay attention to web standards and non-IE browser browsing effects.

Add: IE starts with version 11 and initially supports WebGL technology. IE8 's JavaScript engine is JSCRIPT,IE9 start with Chakra, these two versions differ greatly, Chakra both speed and standardization are excellent.

Many of the domestic dual-core browser of one of the core is Trident, the United States its name "Compatibility mode."

Gecko ([' Gek??])

Gecko (Firefox Kernel): Netscape6 began to adopt the kernel, and later Mozilla Firefox (Firefox) also adopted the kernel, Gecko is characterized by the full disclosure of the code, so it is highly developed, the world's programmers can write code for it , adding functionality. Because this is an open source kernel, so favored by many people, Gecko Kernel browser is also many, this is the Gecko core although young but the market share can quickly increase the important reason.

In fact, the origin of the Gecko engine is not unrelated to IE, the previous said IE did not use the standard, which led to some internal Microsoft developers dissatisfaction; they started Mozilla with some of the Netscape employees who had stopped updating at the time, based on the Mosaic core. To rewrite the kernel, the Gecko was developed. In fact, the Gecko kernel browser still has the most Firefox users, so it is sometimes called the Firefox kernel. Gecko is also a cross-platform kernel that can be used in Windows, BSD, Linux, and Mac OS x.

Webkit

A mention of WebKit, the first to think of is chrome, you can say that Chrome will webkit the core of the deep rooted, as everyone knows, WebKit is actually the originator of Safari. Many people now mistakenly call WebKit the chrome kernel (even if the chrome kernel is already blink), and the apples are crying out for wood.

Safari is a browser developed by Apple, using the khtml of the KDE (Linux desktop System) as the kernel of the browser, the name of the browser kernel used by Safari is the famous WebKit. Safari first released Beta on January 7, 2003 and became the default browser for Mac OS X v10.3 and later, as well as a designated browser for other Apple products (also supported by the Windows platform).

As mentioned above, WebKit predecessor is the KDE group's khtml engine, can say WebKit is khtml an open source branch. When Apple compared the Gecko and Khtml, chose the latter to do engine development, because Khtml has a clear source structure and very fast rendering speed.

The WebKit kernel can be said to be one of the biggest contributions to the software industry as a hardware-based company. Then, in 2008, Google released Chrome, using the chromium kernel to fork the Webkit.

Chromium/bink

In 2008, Google released the Chrome browser, and the kernel used by the browser was named chromium.

Chromium fork from the open Source Engine WebKit, but the WebKit code comb to improve the readability of a lot, so it may take a day to compile code, now only two hours can be done. So the Chromium engine and other WebKit-based engines render pages with a different effect. So some places will chromium engine and webkit separate introduction, and some articles put chromium into the WebKit engine, there is a certain reason.

Google has also developed its own JavaScript engine, V8, which greatly improves the speed of JavaScript operations.

After the advent of chromium, led the development of domestic browser industry. Some chromium-based single-core, dual-core browser springing up, such as Sogou, 360, QQ Browser, and so on, not a different shell with the same core.

However, on April 3, 2013, Google posted a blog on the Chromium blog, saying it would separate itself from Apple's open source browser core Webkit, and develop Blink rendering engine (the browser core) in the Chromium project, built into the Chrome browser.

WebKit Well, why invest in a new kernel?

Blink is actually a branch of WebKit, as WebKit is the branch of khtml. Google's Chromium project had previously used WebKit (WebCore) as the rendering engine, but for some reason it did not migrate its multi-process architecture into WebKit.

Later, because Apple introduced WebKit2 and Chromium of the sandbox design conflict, so Chromium has been stuck in WebKit, and the use of porting to achieve and the main line WebKit2 docking. This increases the complexity of the Chromium and, to a certain extent, affects the Chromium architecture porting effort.

For these reasons, Google decided to derive its own Blink engine from WebKit, which was developed jointly by Google and Opera software, to develop a faster and simpler rendering engine based on WebKit code, and to step away from the effects of WebKit, Create a completely independent Blink engine. In this way, only one by one of the links between Google and Apple to maintain the technical relationship have been cut off.

Google and Apple are rivals in many areas, with only technical cooperation on the browser engine and a consistent interest. But for their own benefit, no one will come up with a 100% "sincerity" to do a good job of WebKit, because the results you have made can be directly enjoyed by competitors. Mobile internet has risen, and mobile phones and tablet devices will become another battlefield of the browser. This time, if Google and Apple are still glued together, will seriously hinder the progress of both sides, will also hinder the progress of WebKit.

It is said that Blink deleted the 880w line WebKit code.

And why is it called blink? Interested to see this interview Paul Irish on Chrome moving to Blink, Inside said

It fits that Blink would never support the infamous <blink> tag. /pre>

After the advent of the Blink engine, a variety of chrome series of domestic browser has been put into Blink embrace, you can enter chrome://version in the browser address bar to view. For example under XXX:

Presto ([' Prest??])

Presto is the "former" kernel of the Norwegian browser opera, and why it is "predecessor", because the newest opera browser has already abandoned it and put it into Google camp.

One of opera's milestone works is Opera7.0, which uses opera Software's self-developed Presto rendering engine to replace the Elektra typesetting engine used in older versions of opera from 4 to 6. The engine features the ultimate in rendering speed optimization, but at the expense of Web compatibility.

Presto adds dynamic functionality, such as a Web page or part that can be re-typeset with the DOM and Script syntax events. Presto has been updated since its launch, making it possible to correct a number of errors, and to optimize reading Javascript performance and become the fastest engine at the time.

However, in order to reduce the cost of research and development, Opera announced in February 2013 to abandon Presto, followed by Chrome using WebKit branch of the Chromium engine as its own browser core engine, the Presto kernel of the Opera browser version of the permanent stay at 12 .17. After Chrome launched the Blink engine in 2013, Opera also followed its footsteps by saying that it would switch to using Blink as the browser core engine.

Presto and open-source WebKit and Google Plus Chromium series compared to the advantages of no promotion, this is the main reason for opera transfer WebKit, and the use of the WebKit core Opera browser can be compatible with Google Chrome browser a huge amount of plug-ins Resources. But the cost of swapping the cores was too painful for Opera. Using Google's WebKit kernel, the original fast, lightweight, stable Opera browser became abnormal and erratic performance, opera originally old kernel browser bookmarks synced to the new kernel work opera took a full two years, during many opera Users are switching to Google Chrome and other browsers, causing a lot of user churn. Today there are millions of people using the old version of Opera.

Many people think that opera's browser terminates at 12.17, and the version of the opera that was updated later is no longer the original opera.

What about the Presto Forever?

Edge ([' Ed?])

After the release of WINDOW10, IE named its built-in browser Edge,edge The most notable feature is the new kernel edgehtml. For more information about Edge browser, how can I rate Microsoft Edge browser?

About the mobile side

The browser kernel on the mobile side is mainly about the kernel of the system's built-in browser.

Current mobile device browser on the common kernel has Webkit,blink,trident,gecko, including IPhone and IPad and other Apple IOS platform is mainly webkit,android 4.4 before the Android system browser kernel is Webki t,android4.4 System Browser Switch to chromium, the kernel is Webkit branch blink,windows Phone 8 System Browser kernel is Trident.

Summarize

The browser kernel mainly refers to the browser's rendering engine, before 2013, represented by Trident (IE), Gecko (Firefox), Webkit (Safari chrome, etc.) and Presto (opera). In 2013, Google began to develop the blink engine, Chrome 28 began to use later, while opera gave up the self-developed Presto engine, put Google embrace, and Google together to develop Blink engine, the domestic various Chrome series browser (360, UC, QQ, 234 5, etc.) also gave up WebKit, put blink embrace.

There is a point in the article does not say very clearly, is Webkit is actually khtml branch, here khtml refers to the rendering engine, Webkit in fact refers to the Webkit of the rendering engine WebCore, and Webkit engine of the Javascript engine Jscor E is the branch of KJS. And Chrome is powered by its own Javascript engine, V8. Refer to the section in the main browser kernel introduction:

We mentioned that Chrome is based on WebKit branch, and WebKit by the rendering engine "WebCore" and the JS Interpretation engine "jscore" composition, may make you confused V8 and jscore relationship. You can understand that--webkit is a motherboard, Jscore is a removable memory, Google actually think WebKit in Jscore is not good enough to make a V8 JS engine, this is Chrome than Safari in some JS test more efficient Reason.

If chromium is not enough to break out of Webkit's "hat", Blink's appearance, representing Chrome will develop its own rendering engine (Blink) and Javascript engine (V8). It can be expected that in the near future, people are talking about what Chrome thinks about not Webkit but Blink.

"Go" mainstream browser kernel introduction

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.