Linux操作系统基本知识

来源:互联网 发布:linux udp socket编程 编辑:程序博客网 时间:2024/06/09 19:40
 Linux系统是由那些部分组成?

Linux系统内核,shell(命令编译器),文件系统和应用程序四部分组成。

Linux 内核由哪些部分组成:
进程管理,文件系统管理,网络功能,内存管理,驱动程序,安全功能,进程间通信等模块构成


进程链表
进程链表是一个双向链表,进程链表把所有进程的描述符链接起来。每个task_struct 结构都包含一个list_head类型的tasks字段,这个类型的orevnext字段分别指向前面和后面的task_struct元素。

Linux  创建子进程及子线程

(1) fork是重量级调用,因为它建立了父进程的一个完整副本,然后作为子进程。

(2) vfork1类似于fork,但并不创建父进程数据的副本,相反,父子进程共享数据,节省了大量的CPU。vfork设计用于子进程形成后立即执行execve系统调用,在子进程退出或开始新程序之前,父进程处于堵塞状态。

(3) clone用于产生线程,可以堆父子进程之间的共享、复制进行精确控制。

所有的3个fork机制最终都调用了kernel/fork.c中的do_fork函数,在do_fork中,大多数工作都是由copy_process函数完成的。


COW
父进程在fork 出子进程后,父子进程共享内存数据,如果子进程要修改内存数据 ,Copy一份副本给子进程做修改

进程的优先级
linux进程优先级分:
1. 实时优先级(跟内核有关),范围0-99,数字越小优先级越低。top看到的RT的都是实时优先级。
2. 静态优先级(跟用户有关),范围100-139, 数字越小优先级越高 static_prio = MAX_RT_PRIO + nice + 20,其中MAX_RT_PRIO = 100,那么取值区间为
[100, 139]
实时优先级比静态优先级高。 
nice是一个优先值,范围-20-19 这个值越小,那么对应的进程优先级越高,在top里,PR-NI=20
默认启动一个进程,nice是0,也可以在执行这个进程时指定nice值:
nice -n -5  sleep 100 
使用renice可以调整这个值:
renice  10  pid 
如下命令可以看到实时优先级和静态优先级的级:
ps -e -o  rtprio,pri,nice,cmd  
从调度的角度,Linux把进程分成140个优先等级,其中0级到99级是分给实时进程的,100级到139级是分给非实时进程的。每个优先等级都有一个运行队列,这样就有140个运行队列。运行时间片结束会 送入休息队列 也有140 个休息队列
Linux 内核,抢占式多任务,高优先级枪战低优先级,但必须在固定的时间点上
守护进程: daemon 内核在系统的引导过程中启动跟终端无关
用户进程: 用户通过终端打开的进程
注意:也可以在前台启动的进程送到后台以守护进程运行


Linux 权限设置
Kernel
系统启动时将内核装入内存
管理系统各种资源
Shell
用户界面,提供用户与内核交互处理接口
是命令解释器,提供强大的编程环境
bash,ash,pdksh,tcsh,ksh,sh,csh,zsh….
Utility
提供各种管理工具,应用程序



 进程间通信方式
    1. 管道(pipe),流管道(s_pipe)和有名管道(FIFO)
    2. 信号(signal)
    3. 消息队列
    4. 共享内存
    5. 信号量

     6.套接字(socket)

     7.RPC

     8.Socket


进程的状态
运行态,就绪态,睡眠态(可中断,不可终端) 停止态,僵死态 
可中断睡眠: 叫醒之后可以立马工作
不可终端睡眠:进程等待某种资源,即使叫醒也不能工作
僵死态: 已经执行完任务等待回收的子进程

Linux 文件系统
 
Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
 /bin 二进制可执行命令
  /dev 设备特殊文件
  /etc 系统管理和配置文件
  /etc/rc.d 启动的配置文件和脚本
  /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
  /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
  /sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
  /tmp 公用的临时文件存储点
  /root 系统管理员的主目录(呵呵,特权阶级)
  /mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
  /lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
  /proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信  息。
  /var 某些大文件的溢出区,比方说各种服务的日志文件
  /usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录。其中包  含:
  /usr/X11R6 存放X window的目录
  /usr/bin 众多的应用程序
  /usr/sbin 超级用户的一些管理程序
  /usr/doc linux文档
  /usr/include linux下开发和编译应用程序所需要的头文件
  /usr/lib 常用的动态链接库和软件包的配置文件
  /usr/man 帮助文档
  /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
  /usr/local/bin 本地增加的命令
  /usr/local/lib 本地增加的库

文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。
  Llinux文件系统使用索引节点来记录文件信息
挂载点必须是一个目录。
  2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。
对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16或ext2;
光驱和软驱是不自动挂载的,参数设置为noauto。(如果你非要设成自动挂载,你要确保每次开机时你的光驱和软驱里都要有盘

Linux 系统上查看及管理工具
pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,nohup,nice,renicekillall

1.Linux开机启动流程详细步骤是什么?系统安装完,忘记密码如何破解?

答:

开机步骤由a--h

a、首先是bios加电自检、初始化,这个过程会检测相关硬件(cpu、内存、显卡、硬盘等),然后读取一个启动顺序,以硬盘为例,会读取硬盘中的MBR。

b、加载内核 读取/boot里边的配置文件。

c、启动初始化进程,开始运行/sbin/init

d、读取/etc/inittab确定运行级别

e、根据/etc/rc.d/rcN.d加载开机启动程序,rcN.d都是链接文件,都指向/etc/rc.d/init.d 再运行/etc/rc.d/rc.local

f、用户登录(3种方式 ssh、命令行、图形化)

g、进入login shell,以命令行为例,首先读取/etc/profile这个全局配置文件,然后再针对当前用户读取家目录中的 ~/.bash_profile和~/.bash_login和~/.profile

h、最后一步就是打开non-login shell,进入图形化后 手动新建一个终端,但这个shell不读取/etc/profile

忘记密码

a、重启系统,在GRUB界面,选取忘记密码的系统,按e键进入编辑模式

b、选项Kernel.....按e键进行编辑

c、在编辑界面rhgb quiet后加空格,然后输入"single"或"1" 回车

d、按b启动 进入单用户模式

f、进入系统后passwd回车输入新密码(如果有selinux,先暂时关闭 setenforce 0)

2.企业中Linux服务器系统分区标准是什么?(硬盘为300G,内存16G)

答:

/boot 200M

/swap 16G

/     70G

/data 剩下的全部空间

3.某一天突然发现Linux系统文件只读,该怎么办呢?完整操作步骤。

答:

首先把系统关机,然后以光盘启动进入救援模式(linux rescue),执行"fsck.ext3 -y /dev/sda2" (假如只读的分区类型为ext3,分区为/dev/sda2)

4.安装一台系统使用DVD光盘安装,如何安装50台Linux系统如何安装呢?思考一下。

答:

a、可以多用几张DVD一台一台的安装。

b、可以用Kickstart批量安装(客户端从网络启动)

5.用虚拟机安装了一台Linux系统,突然想克隆一台服务器,克隆后发现无法上网,如何解决?

答:

a、编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,将HWADDR和MAC地址这两行删除。

b、修改文件/etc/udev/rules.d/70-persistent-net.rules,删除之前eth0所在的行,将下一行eth1修改为eth0

c、reboot

6.Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?

答:

网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg-eth*(*代表数字)

要上外网需要:能够链接internet的网线(或无线)、有网卡

需要配置:IP、netmask、gateway、dns(自动或手动都ok,服务器一般自动)

7.一般可以使用什么软件远程linux服务器?通过什么上传文件和下载文件?

答:

远程连接linux的软件:xshell、SecureCRT、putty、vnc(图形化)

上传和下载文件:lrzsz、sftp

8./mnt目录主要用于什么?/root目录跟root用户有什么关系?/根目录与/boot目录有什么联系?

答:

/mnt一般用于挂载外接设备

/root是一个目录,是root用户的家目录

/boot目录是/目录下的一个子目录

9.某一天误操作,执行了rm  -rf  * ,会有哪些情况发生?请举例。

答:

a、如果当前目录为"/tmp" ,那么这个目录下的东西会全部删除(默认不包含隐藏文件)

b、如果当前目录为"/",那么系统上的数据将会丢失,且无法启动,系统崩溃(谨慎使用这个命令)



0 0