js面向对象为什么要init进行初始化?
在创建子类对象之前,会先创建父类对象。
在调用子类构造器之前,在子类构造器中会先调用父类的构造器,默认调用的是父类无参数构造器。
如果父类不存在可以被子类访问的构造器,则不能存在子类。
如果父类没有提供无参数构造器,此时子类必须显示通过super语句去调用父类带参数的构造器。
内核的初始化
内核(Kernel)在开机阶段要做的主要操作如下:
监测计算机上有哪些设备。
发现设备之后,将这些设备的驱动程序初始化并载入到内核中。
当必要的驱动程序都载入之后,以只读的方式挂载根目录文件系统。
内核将载入Linux系统的第1个进程,也就是 init 进程,所以 init 这个程序是第1个被执行的。
决定预设系统使用哪个 run level 。
init 执行一些系统初始化的程序来初始化操作系统。
init 会根据 run level 的设置来执行 run level 所对应目录中的程序,以决定要启动哪些服务。
设定某些组合键。
定义UPS不间断电源系统,即当电源出现问题时或电源恢复时要执行哪些程序。
产生6个虚拟终端控制台(virtual console),也就是 tty1~tty6。
接下来就由 init 进程接管系统。
init 的初始化
init 进程首先要读取 /etc/inittab 文件中的设定,并根据这些设定来配置系统以完成系统的初始化,以下就是 init 进程初始化时要做的工作:
如果启动的 run level 是5,就会初始化 X Windows 的环境,也就是图形环境。