This is the sixth day of my participation in Gwen Challenge
Browser kernel
Five major Browsers | The kernel |
---|---|
IE | trident |
Chrome | webkit/blink |
safari | webkit |
firefox | geoko |
opera | peresto |
Browser History
-
In 1990, Tim Berners-Lee, the first person to use hypertext to share information, developed the earliest browser, Word Wide Web, which was ported to the C language platform called libwww and later renamed Nexus
-
In 1993, Mark Andreessen, a member of the National Center for Supercomputing Applications at the University of Illinois, developed MOSIAC, a browser that could display images, a truly graphical browser
-
In 1994, Mark Anderson formed MOSIAC Communication Corporation with Jim Clark of SGI. But the MOSIAC trademark stayed at the University of Illinois and was later transferred to Spy Glass. Marc Andreessen had to change the name of the company to Netscape Communication Corporation and developed Netscape Navigator, the Netscape browser
-
1996
- Microsoft acquired Spy Glass and developed IE (Inernet Exploror) based on MOSIAC
- In 1996, Microsoft released IE3 and the scripting language JScript
- Livescript was developed in 1996 by Brendan Eich of Netscape Based on Netscape Navigator
- In 1996, When Sun’s Java language took off and Netscape livescript was tepid, Netscape teamed up with Sun to launch JavaScript, which promoted the development of JavaScript
-
In 2001, IE6 and XP came out with a JavaScript engine
-
In 2003, Mozilla released Firefox based on the open source of Netscape Navigator,
-
In 2008, Google launched Chrome browser based on webKit/Blink kernel, equipped with JavaScript V8 engine. V8 engine can directly translate machine code and run independently of browser, which is an unprecedented technological revolution
-
Oracle acquired the rights to the JavaScript language when it acquired Sun in 2009
ECMAScript
- ECMA, European Computer Manufactures Association, European Computer Manufactures Association, evaluates, develops, and endorses standards and regulations for the telecommunications, Computer industries
- Ecma-262, specification for scripting languages
- ECMAScript, a canonical scripting language such as JavaScript, and Microsoft’s JScript follow this specification
Language type
-
High-level and low-level languages
Advanced languages: Java, C/C++, Python, etc
Low-level language: assembly language, machine language
-
Interpreted and compiled languages
Interpretive language
- There is no need to migrate to different system platforms
- Source code -> interpreter -> Explain execution
Compiled language
-
Poor cross-platform and good performance
-
Compilation: source -> compiler -> Machine language -> executable
-
For example, c++ :.cpp source -> compiler ->.s assembly -> assembler ->.obj object code -> linker -> executable
-
Scripting language
-
Scripting languages are interpreted languages, or dynamic languages
-
The execution is interpreted by the interpreter (script engine)
-
For example: JavaScript browser scripting language, PHP server scripting language
-
Three large JavaScript
- ECMAScript
- Canonical scripting language
- It defines syntax, variables, reserved words, data types, operations, objects, inheritance, functions, and so on
- BOM
- Browser object Model
- There is no same specification, need to write compatibility, related to the content of the browser itself, such as scrollbars, keyboard and mouse events, etc
- DOM
- Document Object Model
- Complies with a set of W3C specifications related to the operation of elements within a document
JavaScript thread
-
JavaScript is single-threaded in the browser
The JS engine is single-threaded, but can simulate multi-threading
-
Time slice rotation
Execute multiple task fragments in a short time
-
The simulation process
Multiple tasks -> split into multiple task fragments -> queue randomly -> send the fragments into the JS process for execution in sequence