在 Linux系统里面,“分区”,被称作“挂载点”,简单明了的说,“挂载点”意思就是:把一部分硬盘容量,“分”成一个文件夹的形式,用来干什么事情。这个文件夹的名字,就叫做:“挂载点”。所以,和Windows有着本质上的超级大的区别,你在任何linux发行版系统里面,绝对不会看到C盘,D盘,E 盘这样的,能看到的,只有“文件夹”形式存在的“挂载点”。
在Linux 系统里面,有一些已经定义好,用来干一些事情的挂载点,常见的“挂载点”有:
/bin 该目录中存放Linux的常用命令。
/boot 该目录默认下存放的是Linux的启动文件和内核。
/cdrom 该目录在刚安装系统时是空的,可以将光驱文件系统挂在这个目录下。
/dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,可以访问这些外部设备,与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”,就可以看到光驱中的文件;键入“cd /dev/mouse”即可看鼠标的相关文件。
/etc 该目录存放系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。
/home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该
用户的主目录。
/lib 该目录用来存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库。
/lost+found 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。
/media:提供挂载(mounting)和自动挂载设备的标准位置,如远程文件系统和可移动介质(目录名为cdrecorder、floppy等)。
/mnt 临时将别的文件系统挂在该目录下。
/opt 第三方软件在安装时默认会找这个目录,所以你没有安装此类软件时它是空的,但如果你一旦把它删除了,以后在安装此类软件时就有可能碰到麻烦。
/proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里。
/root 如果你是以超级用户的身份登录的,这个就是超级用户的主目录。
/sbin 该目录用来存放系统管理员使用的管理程序。初始化的内存盘。在linux内核启动前,boot loader会将存储介质(一般是硬盘)中的
/sys:一个类似与/proc的文件系统,在Linux2.6内核中最新出现的,包含的文件用于获得硬件状态并反映内核看到的系统设备树。它使用了/proc中的很多帮助。
/tmp 用来存放不同程序执行时产生的临时文件,该目录会被系统自动清理干净。
/usr 用户的应用程序和文件几乎都存放在该目录下。
/var 该目录存放那些经常被修改的文件,包括各种日志、数据文件。
/initrd 它的英文含义是boot loader initialized RAM disk,就是由boot loader,文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的initrd文件系统。
2. Linux内核初始化 sp设置
Linux内核初始化sp设置方法是sp只要指向远大于512偏移处都可以。linux在初始的时候会调用fork系统调用来创建第一个进程,他被仿芹羡成为零号进程,创建后会一直存在并且零号进程是所有进程的父进程。
Linux内核初始化的设置方法
首先看任首行务的结构体,前面是进程备拍的状态时间片,优先级信号打开文件等等,重要的是最后TSS结构体,TSS段存放的是进程的一些寄存器的状态标识,当CPU运行某个进程时,需要将这个进程的TSS段放入CPU中。
TSS实际就是CPU在运行时产生的一些结果会放到这些寄存器中,当再次调用这个进程时再把TSS段放进CPU中,需要将linux的信息从硬盘中移到内存里,之后进行内存向量等的初始化,在内核初始化的过程中,会手动创建0号进程。
3. Linux系统初始化设备的过程主要有哪些
1.自检:依赖于CPU,ROM中的程序
.加载BIOS,Boot Sequence确定启动顺序
3.MBR:
硬盘0磁道0扇区的MBR文件,共512字节
446:BootLoader
64:分区表,每16字节一个分区
2:5A(一个特殊标记)
4.kernel文件vmlinuz+initrd:只能放在基本磁盘分区,BootLoader会把vmlinuz当做根来使用,即/vmlinuz
将vmlinuz加载到内存中使用。vmlinuz分为两段,前半部分未压缩段,是为了解压第二段。
至此BootLoader任务完成,退场。
操作系统安装时会执行一个命令,安装程序完成后自动运行脚本,收集操作系统运行需要的脚本,将所需要的模块打包成initrd,帮助内核完成初始化
initrd: ram disk,内核将之作为根来使用,将硬盘模拟成磁盘
5.initrd将所需文件复制到/下,内核完成初始化后进行根切换
6.启动/sbin/init,由内核空间进入用户空间
/lib/moles
/sbin/init:
/etc/inittab
id:3:initdefault:
/etc/rc.d/rc.sysinit脚本
4. 嵌入式Linux系统的如何进行初始化
LINUX系统的初始化可以分为两部分:内核部分和init程序部分。内核主要完成系统的硬专件检测和初始化属,init程序则主要完成系统的各项配置。
主要流程是:CPU自身初始化-->加载BIOS-->BIOS加载内核引导程序(也就是ubuntu我们常说的GRUB)-->内核引导程序加载内核映像(这里的内核代码是压缩过的)-->内核映像获得CPU控制权并开始工作-->内核映像自己解压缩,开始运行init/main.c中的start_kernel()函数,这时候内核就启动了,系统初始化,系统的父进程init进程执行起来了,这时候整个系统初始化完毕,接下来只是调用一些UI界面的进程执行。
这是我的一点浅陋简介,希望对你有所帮助,谢谢!
5. linux文件系统怎样初始化步骤
System V init启动过程
概括地讲,Linux/Unix系统一般有两种不同的初始化启动方式.
1) BSD system init
2) System V init
大多数发行套件的Linux使用了与System V init相仿的init也就是Sys V init,它比传统的BSD system init更容易且更加灵活。
System V init的主要思想是定义了不同的"运行级别(runlevel)"。通过配置文件/etc/inittab定义了系统引导时的运行级别, 进入或者切换到一个运行级别时做什么。每个运行级别对应于一个子目录/etc/rc.d/rcX.d。
每个rcX.d目录中都是一些以S或K开头的文件链接。这些链接指向的脚本都 可以接收start和stop参数,S开头的链接会传入start参数,一般是开启一项服务,K会传入stop参数,一般是停止某服务。
以下是一个大致的System V init过程:
(1)init 过程执行的第一个脚本是 /etc/rc.d/rc.sysinit,它主要做在各个运行级别中进行初始化工作,包括: 启动交换分区;检查磁盘;设置主机名;检查并挂载文件系统;加载并初始化硬件模块.
(2)执行缺省的运行级别模式。 这一步的内容主要在/etc/inittab中体现, inittab文件会告诉init进程要进入什么运行级别,以及在哪里可以找到该运行级别的配置文件.
(3)执行/etc/rc.d/rc.local脚本文件。 这也是init过程中执行的最后一个脚本文件,所以用户可以在这个文件中添加一些需要在登录之前执行的命令.
(4)执行/bin/login程序
注意:
System V init只是一种模式,每个系统初始化都有差异,但大体上不会相差太多。如busybox执行的第一个启动脚本就是/etc/init.d/rcS,而且不可以改变,与上面讲的不同。
LFS文件系统初始化示例
inittab文件
由下内容可以看出,最先执行的是/etc/rc.d/init.d/rc文件,给这个文件传入的参数是一个数字,rc会由传入的数字合成rcX.d目录的路径,然后执行其中的所有脚本链接。当然这只是一部分功能。
# Begin /etc/inittab
id:3:initdefault:
<em><strong>si::sysinit:/etc/rc.d/init.d/rc sysinit</strong></em> #可以设定初始化脚本
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
...
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
...
# End /etc/inittab
etc目录结构
只是一部分,有删减。
.
├── fstab
├── <em>inittab</em>
├── inputrc
├── profile
├── rc.d
│ ├── init.d
│ │ ├── checkfs
│ │ ├── cleanfs
...
│ │ ├── moles
│ │ ├── mountfs
│ │ ├── mountkernfs
│ │ ├── network
│ │ ├── rc #when boot, run.
│ │ ├── reboot
...
│ ├── rc0.d
│ │ ├── K80network -> ../init.d/network
│ │ ├── K90sysklogd -> ../init.d/sysklogd
│ │ ├── S60sendsignals -> ../init.d/sendsignals
│ │ ├── S70mountfs -> ../init.d/mountfs
│ │ ├── S80swap -> ../init.d/swap
│ │ ├── S90localnet -> ../init.d/localnet
│ │ └── S99halt -> ../init.d/halt
│ ├── rc1.d
│ │ ├── K80network -> ../init.d/network
│ │ └── K90sysklogd -> ../init.d/sysklogd
│ ├── rc2.d
│ │ ├── K80network -> ../init.d/network
│ │ └── K90sysklogd -> ../init.d/sysklogd
│ ├── rc3.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc4.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc5.d
│ │ ├── S10sysklogd -> ../init.d/sysklogd
│ │ └── S20network -> ../init.d/network
│ ├── rc6.d
│ │ ├── K80network -> ../init.d/network
│ │ ├── K90sysklogd -> ../init.d/sysklogd
│ │ ├── S60sendsignals -> ../init.d/sendsignals
│ │ ├── S70mountfs -> ../init.d/mountfs
│ │ ├── S80swap -> ../init.d/swap
│ │ ├── S90localnet -> ../init.d/localnet
│ │ └── S99reboot -> ../init.d/reboot
│ └── rcsysinit.d
│ ├── S00mountkernfs -> ../init.d/mountkernfs
│ ├── S02consolelog -> ../init.d/consolelog
│ ├── S05moles -> ../init.d/moles
...
├── udev
│ ├── rules.d
│ │ └── 55-lfs.rules
│ └── udev.conf
└── vimrc
network脚本
#!/bin/sh
. /etc/sysconfig/rc
. ${rc_functions}
. /etc/sysconfig/network
case "${1}" in
start)
# Start all network interfaces
for file in ${network_devices}/ifconfig.*
do
interface=${file##*/ifconfig.}
# skip if $file is * (because nothing was found)
if [ "${interface}" = "*" ]
then
continue
fi
IN_BOOT=1 ${network_devices}/ifup ${interface}
done
;;
stop)
# Reverse list
FILES=""
for file in ${network_devices}/ifconfig.*
do
FILES="${file} ${FILES}"
done
# Stop all network interfaces
for file in ${FILES}
do
interface=${file##*/ifconfig.}
# skip if $file is * (because nothing was found)
if [ "${interface}" = "*" ]
then
continue
fi
IN_BOOT=1 ${network_devices}/ifdown ${interface}
done
;;
restart)
${0} stop
sleep 1
${0} start
;;
*)
echo "Usage: ${0} {start|stop|restart}"
exit 1
;;
esac
# End /etc/rc.d/init.d/network
6. linux系统中 初始化的全局变量和未初始化过的全局变量保存在哪
一个由C/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动回分配释放 ,存放函答数的参数值,局部变量的值等。其
操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回
收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的
全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另
一块区域。 - 程序结束后由系统释放。
4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码。
7. linux 这是系统初始化文件的shell脚本,大家帮我看看怎么读这段描述啊
去看下linux的启动过程详解
8. 例举Linux系统初始化过程中最主要的4个环境文件,并说明哪些是系统的环境文件,哪些是用户的环境文件
etc/profile: 为系统的每个用户设置环境变量,当用户第一次登陆,该文件被执行,并从/etc/profile.d目录中的配置文专件中搜集属shell设置
/etc/bashrc: 为每个运行bash shell的用户执行此文件
~/.bash_profile: 每个用户都可以使用该文件导入专用于自己的使用信息,该文件只执行一次
~/bashrc: 包含专属于你的bash信息,当登录时以及打开新的shell时,该文件被读取。
9. 如何在Linux上重建初始化内存盘镜像文件
在CentOS 5.X / RHEL 5.X中,可以用mkinitrd命令来创建初始化内存盘文件,举例如下:
# mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
如果你想要给特定的内核版本创建初始化内存盘,你就用所需的内核名替换掉 ‘uname -r’ 。
在CentOS 6.X / RHEL 6.X中,则用dracut命令来创建初始化内存盘文件,举例如下:
# dracut -f
以上命令能给当前的系统版本创建初始化内存盘,给特定的内核版本重建初始化内存盘文件则使用以下命令:
# dracut -f initramfs-2.x.xx-xx.el6.x86_64.img 2.x.xx-xx.el6.x86_64
还有不会的请参考《linux就该这么学》,针对各种linux疑难杂症,帮助linux学习者。
10. linux inl文件怎么使用
.ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式专,统管windows的各项配置,一般用户属就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑ini才方便,一般只有很熟悉windows才能去直接编辑。开始时用于WIN3X下面,WIN95用注册表代替,以及后面的内容表示一个节,相当于注册表中的键。
文件扩展名
配置文件.ini
请注意:所讨论的是项目中的配置文件,它是整个项目共用的。所以它要有一个项目使用的文件名,其后缀是.ini。例如:端口配置.ini
格式
INI文件由节、键、值组成。
节
[section]
参数(键=值)
name=value