node_main.cc(入口)
1、node.cc
启动v8,创建process(实现JSNI),加载core内核,启动uv
2、node.js(node内核)
(1)加载evals模块(C++) process.binding('evals')
(2)预加载内置的JS模块 process.binding('natives')
(3)搭建应用核心
startup.processFatal();
startup.globalVariables();
startup.globalTimeouts();
startup.globalConsole();
startup.processAssert();
startup.processConfig();
startup.processNextTick();
startup.processStdio();
startup.processKillAndExit();
startup.processSignalHandlers();
startup.processChannel();
startup.resolveArgv0();
(4)入口解析
(1)_third_party_main模块(内置JS)
(2)debug参数:_debugger模块
(3)-e/--eval参数:evalScript
(4)mainModule:主模块
(5)命令行:repl模块
(6)监听stdin