Linux内核初始化及启动之用户模式开始

2016-01-29 17:34 26 1 收藏

Linux内核初始化及启动之用户模式开始,Linux内核初始化及启动之用户模式开始

【 tulaoshi.com - Linux 】


PCI: bus0: Fast back to back transfers disabled
PCI: Configured XX as a PCI slave with 128MB PCI memory
PCI: Each Region size is 16384KB
PCI: Reserved memory from 0x10080000 to 0x15080000 for DMA and mapped to 0x12000000
  设备的初始化 init()---do_basic_init()---pci_init(),初始化PCI,检测系统的PCI设备。

Linux NET4.0 for Linux 2.4Based upon Swansea University Computer Society NET3.039

英国威尔士,斯旺西大学的NET3.039, TCP/IP 协议栈
  此信息,在linux启动过程中都会出现。

Initializing RT netlink socket  
  对Socket的初始化,socket_init(),Netlink 一种路由器管理协议(linux-2.4.22netcoreRtnetlink.c,Routing netlink socket interface: protocol independent part。 其中RT是route路由的意思。这句输出是在create产生rtnetlink的socket套接字时的一个调试输出。)

  此信息,在linux启动过程中都会出现。

Starting kswapd  
  启动交换守护进程kswapd,进程IO操作例程kpiod

  kswapd可以配合kpiod运行。进程有时候无事可做,当它运行时也不一定需要把其所有的代码和数据都放在内存中。这就意味着我们可以通过把运行中程序不用的内容切换到交换分区来更好的是利用内存。大约每隔1秒,kswapd醒来并检查内存情况。如果在硬盘的东西要读入内存,或者内存可用空间不足,kpiod就会被调用来做移入/移出操作。kswapd负责检查,kpiod负责移动。

Journalled Block Device driver loaded
  加载日志块设备驱动。

  日志块设备是用来对文件系统进行日志记录的一个块设备。日志文件系统是在传统文件系统的基础上,加入文件系统更改的日志记录。

  它的设计思想是:跟踪记录文件系统的变化,并将变化内容记录入日志。日志文件系统在磁盘分区中保存有日志记录,写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,系统重启时,会根据日志记录来恢复中断前的写操作。在日志文件系统中,所有的文件系统的变化都被记录到日志,每隔一定时间,文件系统会将更新后的元数据及文件内容写入磁盘。在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么,然后它修改元数据。

devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)devfs: boot_options: 0x1  
  Devfs模块的输出信息。

设备文件系统devfs,版本1.12c,  
pty: 256 Unix98 ptys configured 
  Pty模块的输出信息,与控制台操作有关的设置。

  将通过 devpts 文件系统使用 Unix98 PTYs,(Pseudo-ttys (telnet etc) device是伪ttys设备的缩写。

  ① TTY(/dev/tty)是TeleTYpe的一个老缩写,为用户输入提供不同控制台的设备驱动程序。它的名字来源于实际挂接到 UNIX系统的、被称为电传打字机(teletype)的终端。在Linux下,这些文件提供对虚拟控制台的支持,可以通过按到键来访问这些虚拟控制台。这些虚拟控制台提供独立的、同时进行的本地登录对话过程

  ② ttys(/dev/ttys)是计算机终端的串行接口。/dev/ttyS0对应MS-DOS下的 COM1。

  使用 make dev脚本MAKEDEV来建立pty文件。这样系统内核就支持Unix98风格的pty了。在进行Telnet登录时将要用到/dev/pty设备。 pty是伪终端设备,在远程登录等需要以终端方式进行连接,但又并非真实终端的应用程序中必须使用这种设备,如telnet或xterm等程序。Linux 2.2以后增添了UNIX98风格的Pty设备,它使用一个新的文件系统(devpts针对伪终端的文件系统)和一个克隆的设备cloning device来实现其功能。

来源:https://www.tulaoshi.com/n/20160129/1501942.html

延伸阅读
单一类:(静态成员变量&静态初始化块)(成员变量&初始化块)构造函数 代码如下: public class 对象初始化顺序 {     public static void main(String[] args){         Person p = new Person();     } } class Person{     public static String staticf...
final变量的初始化位置 一是其定义处,也就是说在final变量定义时直接给其赋值, 二是在构造函数中。而且在Java1.1以前,只能是在定义时给值。 三是在初如化代码块中{} 或者 static{} 代码如下: public class InitOrder {     {         System.out.println("before---field");  ...
在使用C++编程的过程当中,经常需要对类成员进行初始化,通常的方法有两种: 第一种方法: CMYClass::CSomeClass(){x=0;y=1;} 第二种方法: CSomeClass::CSomeClass() : x(0), y(1){} 本文将要探讨这两种方法的异同以及如何使用这两种方法。     从技术上说,第二种方法比较好,但是在大多数情况下,两者实际上没有什么区...
VB中没有提供定义数组并同时初始化其内容的方法,所以大多数情况下,必须单独地设置每一个元素,就象下面一样: DimstrArray(0To3)AsString strArray(0)="Spring" strArray(1)="Summer" strArray(2)="Fall" strArray(3)="Winter" 在VB4、VB5和VB6中,可以使用Array()函数随意创建一个Variants类型数组: DimvarArray()AsVariant varA...
标签: Web开发
var Class = { create: function() { return function() { this.initialize.apply(this, arguments); } }} 这是prototype.js里面的类构造方法,使用方法是: var myClass = Class.create(); 这样就可以创建一个类了。 继续加入: myClass.prototype ={ x : function () { return 1; } y : function (...

经验教程

619

收藏

61
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部