x-window配置
一、什么是 X Window System
1、X Window 的发展简史
- 在 Unix Like 上面的图形使用者介面 (GUI) 被称为 X 或 X11;
- X11 是一个『软件』而不是一个操作系统;
- X11 是利用网络架构来进行图形介面的运行与绘制;
- 较著名的 X 版本为 X11R6 这一版,目前大部分的 X 都是这一版演化出来的 (包括 X11R7);
- 现在大部分的 distribution 使用的 X 都是由 Xorg 基金会所提供的 X11 软件;
- X11 使用的是 MIT 授权,为类似 GPL 的自由软件授权方式。
2、主要组件
- x-wondow的主要组件包括:X Server/X Client/Window Manager/Display Manager
- 基本上是分成 X Server 与 X Client 两个组件而已喔!
- 其中 X Server 在管理硬件,而 X Client 则是应用程序。
- 在运行上,X Client 应用程序会将所想要呈现的画面告知 X Server ,最终由 X server 来将结果透过他所管理的硬件绘制出来
X Server
- 键盘、鼠标、手写板、显示器 (monitor) 、萤幕解析度与色彩深度、显卡 (包含驱动程序) 与显示的字型等等,都是 X Server 管理的
- 每部用户端主机都需要安装 X Server,而服务器端则是提供 X Client 软件, 以提供用户端绘图所需要的数据数据
- X Server / X Client 两者其实有互动的,X Server 会将周边设备的这些动作行为告知 X Client ,让 X Client 去伤脑筋
X Client
- X Client 最重要的工作就是处理来自 X Server 的动作,将该动作处理成为绘图数据, 再将这些绘图数据传回给 X Server
Window Manager
- 特殊的 X Client ,负责管理所有的 X client 软件
- 常见的窗口管理员全名与连结:GNOME、KDE、 twm、XFCE
- X Server / X client / window manager 的关系说明:
- CentOS 主机上面必须要有 Xorg 的 X server 核心, 这样才能够提供萤幕的绘制啊~
- 然后为了让窗口管理更方便,於是就加装了 GNOME 这个计画的 window manager ,
- 然后为了让自己的使用更方便,於是就在 GNOME 上面加上更多的窗口应用软件(X client),建构出X Window System
- X server/X client/Window Manager 是同时存在於一部 Linux 主机上头
Display Manager
- 这个 display manager 最大的任务就是提供登陆的环境, 并且加载使用者选择的 Window Manager 与语系等数据喔
3、X Window 的启动流程
进入图形界面的方法
- runlevel5 直接登录就可以获得图形界面
- 文字界面通过 startx 来启动图形界面,命令的说明如下
startx [X client 参数] -- [X server 参数]
# 范例:以色彩深度为 16 bit 启动 X
startx -- -depth 16
- startx 的作用是找出 X server / X client 的配置值,事实上启动 X 的是 xinit 这支程序
图形界面配置使用的优先级
- X server 的参数方面:
使用 startx 后面接的参数;
若无参数,则找寻使用者家目录的文件,亦即 ~/.xserverrc
若无上述两者,则以 /etc/X11/xinit/xserverrc
若无上述三者,则单纯运行 /usr/bin/X (此即 X server 运行档) - X client 的参数方面:
使用 startx 后面接的参数;
若无参数,则找寻使用者家目录的文件,亦即 ~/.xinitrc
若无上述两者,则以 /etc/X11/xinit/xinitrc
若无上述三者,则单纯运行 xterm (此为 X 底下的终端机软件)
上述这么多的文件 centos7 里面默认的就只找到一份
/etc/X11/xinit/xinitrc
实际上默认启动的选项是 :xinit xterm -geometry +1+1 -n login -display :0 -- X :0
二、X Server 配置
1、解析 xorg.conf 配置
- centos 7 /etc/X11/xorg.conf 这个文件设计默认没有的,只有名为xorg.conf.d的一个文件夹,里面好像是只有一个键盘的配置文件,反正我的系统是这样的
关于文件中的配置文件
- 基本的格式是这样的
Section "section name"
-----中间就是配置项
EndSection
- 其中的 section name 可以是下面的这些值
- Module: 被加载到 X Server 当中的模块 (某些功能的驱动程序);
- InputDevice: 包括输入的 1. 键盘的格式 2. 鼠标的格式,以及其他相关输入设备;
- Files: 配置字型所在的目录位置等;
- Monitor: 监视器的格式, 主要是配置水平、垂直的升级频率,与硬件有关;
- Device: 这个重要,就是显卡芯片组的相关配置了;
- Screen: 这个是在萤幕上显示的相关解析度与色彩深度的配置项目,与显示的行为有关;
- ServerLayout: 上述的每个项目都可以重覆配置,这里则是此一 X server 要取用的哪个项目值的配置罗。
- centos7 里面那个文件中键盘的配置文件的内容如下
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "default,cn"
Option "XkbVariant" ","
EndSection
显示器参数调整
- 修改完配置文件需要重启X,直接使用命令
init 3 ; init 5
即可
# 1. 使用 1024x768 的解析度,75 Hz 的升级频率来取得显示器内容
命令:gtf 1024 768 75 -x
显示:# 1024x768 @ 75.00 Hz (GTF) hsync: 60.15 kHz; pclk: 81.80 MHz
Modeline "1024x768_75.00" 81.80 1024 1080 1192 1360 768 769 772 802 -HSync +Vsync
# 2. 将上述的数据输入 xorg.conf 内的 Monitor 项目中:
命令:vim /etc/X11/xorg.conf
显示:Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
Modeline "1024x768_75.00" 81.80 1024 1080 1192 1360 768 769 772 802 -HSync +Vsync
EndSection
显卡驱动安装
- 现在很多的图形界面,比如 ubuntu等发行版都有显卡驱动管理的软件,让我们通过图形界面就可以安装显卡的驱动
- 对于 N 家的显卡,一般可以选择N家提供的闭源驱动和第三方的开源驱动,当然也可以选择不用独显,切换为intel的核显驱动
备份策略
一、备份要点
1、哪些 Linux 数据具有备份的意义
操作系统本身需要备份的文件
/etc/ 整个目录
/home 整个目录
/var/spool/mail
/boot
/root
如果你自行安装过其他的套件,那么 /usr/local/ 或 /opt 也最好备份一下!
网络服务的数据库方面
软件本身的配置文件,例如:/etc/ 整个目录,/usr/local/ 整个目录
软件服务提供的数据,以 WWW 及 MySQL 为例:
WWW 数据:/var/www 整个目录或 /srv/www 整个目录,及系统的使用者家目录
MySQL : /var/lib/mysql 整个目录
其他在 Linux 主机上面提供的服务之数据库文件!
推荐需要备份的目录
/boot
/etc
/home
/root
/usr/local(或者是 /opt 及 /srv 等)
/var(注:这个目录当中有些缓存目录则可以不备份!)
不需要备份的目录
/dev :这个随便你要不要备份
/proc:这个真的不需要备份啦!
/mnt 与 /media:如果你没有在这个目录内放置你自己系统的东西,也不需要备份
/tmp :干嘛存缓存档!不需要备份!
二、备份的种类、频率与工具的选择
1、完整备份之累积备份
- 完整备份的好处就是还原比较快,但是就是数据量很大
- 累计备份可以减少完整备份的数据量:基本原理就是第一次完整进行备份,从第二次开始只对差异的部分进行备份,这样就能够大大减少完整备份的数据量了,但缺点就是还原起来会比较麻烦一些
完整备份可以使用:dd cipo
# 1. 用 dd 来将 /dev/sda 备份到完全一模一样的 /dev/sdb 硬盘上:
dd if=/dev/sda of=/dev/sdb
# 2. 使用 cpio 来备份与还原整个系统,假设储存媒体为 SATA 磁带机:
find / -print | cpio -covB > /dev/st0 <==备份到磁带机
cpio -iduv < /dev/st0 <==还原
# 3. 还可以使用 tar 来进行完整备份
tar --exclude /proc --exclude /mnt --exclude /tmp --exclude /backupdata -jcvp -f /backupdata/system.tar.bz2 /
累积备份可以使用:dump(restore)
# 1. 完整备份
dump -0u -f /backupdata/home.dump /home
# 2. 第一次进行累积备份
dump -1u -f /backupdata/home.dump.1 /home
累积备份还可以自己写脚本来进行备份
2、完整备份之差异备份
- 差异备份与累积备份有点类似,也是需要进行第一次的完整备份后才能够进行
- 只是差异备份指的是:每次的备份都是与原始的完整备份比较的结果
- 系统运行的越久,离完整备份时间越长, 那么该次的差异备份数据可能就会越大
- 差异备份的好处就是还原快,只需还原完整备份,和最近一次的差异备份,但是需要的空间就比较大了
差异备份的的方法
- 使用 dump:每次备份的等级都是 level1就可以了
- 使用 tar:只有在比 2009-06-01 还要新的文件,在 /home 底下的文件才会被打包进 home.bz2 中
tar -N '2009-06-01' -jpcv -f /backupdata/home.tar.bz2 /home
- 使用 rsync:第一次备份的数据比较多会比较慢,后来就比较快了
rsync -av /home /backupdata/
3、关键数据备份
- 还原比较麻烦是肯定的了,但是备份起来又快又简单,使用 tar 把
tar -jpcvf mysql.`date +%Y-%m-%d`.tar.bz2 /var/lib/mysql
三、参考备份策略与相应脚本
- 主机硬件:使用一个独立的 filesystem 来储存备份数据,此 filesystem 挂载到 /backup 当中;
- 每日进行:目前仅备份 MySQL 数据库;
- 每周进行:包括 /home, /var, /etc, /boot, /usr/local 等目录与特殊服务的目录;
- 自动处理:这方面利用 /etc/crontab 来自动提供备份的进行;
- 异地备援:每月定期的将数据分别 (a)烧录到光盘上面 (b)使用网络传输到另一部机器上面。
1、每周系统备份的 script
2、每日备份数据的 script
3、远程备援的 script
- 以上的脚本就不复制了,有需要的话直接取鸟哥的站点查看把:http://cn.linux.vbird.org/linux_basic/0580backup.php
4、灾难复原的考量
- 只是硬件坏了的话,就直接还原就行了
- 如果是由于外部的攻击导致,先断网,复原数据,一定要找出漏洞修复了才行,不然一联网,哦豁,又被别人攻击了
核心编译
- 编译前的任务:认识核心与取得核心原始码
1.1 什么是核心 (Kernel)
1.2 升级核心的目的
1.3 核心的版本
1.4 核心原始码的取得方式:distributions 默认、最新、patch
1.5 核心原始码的解压缩/安装/观察 - 核心编译的前处理与核心功能选择
2.1 硬件环境检视与核心功能要求
2.2 保持干净原始码: make mrproper
2.3 开始挑选核心功能: make XXconfig
2.4 核心功能细项选择
a. 一般配置(General setup):附加版本名称、IPC 通讯、程序相关等
b. 核心模块与 block layer 支持
c. CPU 的类型与功能选择(含虚拟化技术)
d. 电源管理功能
e. 一些汇流排 (bus) 的选项
f. 编译后运行档的格式
g. 核心的网络功能
h. 各项装置的驱动程序
i. 文件系统的支持
j. 核心黑客、资讯安全、口令应用
k. 虚拟化与函式库 - 核心的编译与安装
3.1 编译核心与核心模块
3.2 实际安装模块
3.3 开始安装新核心与多重核心菜单 (grub) - 额外(单一)核心模块编译
4.1 编译前注意事项
4.2 单一模块编译
4.3 核心模块管理