当前位置: 首页 > news >正文

国外免费源码共享网站wordpress 管理员登录

国外免费源码共享网站,wordpress 管理员登录,主页导航网站建设定制,什么网站可以做TCGA病理分期Linux的启动流程简析(以Debian为例) 正文#xff1a;前面的文章探讨BIOS和主引导记录的作用。那篇文章不涉及操作系统#xff0c;只与主板的板载程序有关。今天#xff0c;我想接着往下写#xff0c;探讨操作系统接管硬件以后发生的事情#xff0c;也就是操作系统的启动流…Linux的启动流程简析(以Debian为例) 正文前面的文章探讨BIOS和主引导记录的作用。那篇文章不涉及操作系统只与主板的板载程序有关。今天我想接着往下写探讨操作系统接管硬件以后发生的事情也就是操作系统的启动流程。这个部分比较有意思。因为在BIOS阶段计算机的行为基本上被写死了程序员可以做的事情并不多但是一旦进入操作系统程序员几乎可以定制所有方面。所以这个部分与程序员的关系更密切。 我主要关心的是Linux操作系统它是目前服务器端的主流操作系统。下面的内容针对的是Debian发行版因为我对其他发行版不够熟悉。 第一步、加载内核 操作系统接管硬件以后首先读入 /boot 目录下的内核文件。以我的电脑为例/boot 目录下面大概是这样一些文件   $ ls /bootconfig-3.2.0-3-amd64config-3.2.0-4-amd64grubinitrd.img-3.2.0-3-amd64initrd.img-3.2.0-4-amd64System.map-3.2.0-3-amd64System.map-3.2.0-4-amd64vmlinuz-3.2.0-3-amd64vmlinuz-3.2.0-4-amd64 第二步、启动初始化进程 内核文件加载以后开始运行第一个程序 /sbin/init它的作用是初始化系统环境。由于init是第一个运行的程序它的进程编号pid就是1。其他所有进程都从它衍生都是它的子进程。 第三步、确定运行级别 许多程序需要开机启动。它们在Windows叫做服务service在Linux就叫做守护进程daemon。 init进程的一大任务就是去运行这些开机启动的程序。但是不同的场合需要启动不同的程序比如用作服务器时需要启动Apache用作桌面就不需要。Linux允许为不同的场合分配不同的开机启动程序这就叫做运行级别runlevel。也就是说启动时根据运行级别确定要运行哪些程序。Linux预置七种运行级别0-6。一般来说0是关机1是单用户模式也就是维护模式6是重启。运行级别2-5各个发行版不太一样对于Debian来说都是同样的多用户模式也就是正常模式。 init进程首先读取文件 /etc/inittab它是运行级别的设置文件。如果你打开它可以看到第一行是这样的   id:2:initdefault:initdefault的值是2表明系统启动时的运行级别为2。如果需要指定其他级别可以手动修改这个值。 那么运行级别2有些什么程序呢系统怎么知道每个级别应该加载哪些程序呢…… 因为每个运行级别在/etc目录下面都有一个对应的子目录指定要加载的程序。   /etc/rc0.d/etc/rc1.d/etc/rc2.d/etc/rc3.d/etc/rc4.d/etc/rc5.d/etc/rc6.d 上面目录名中的rc表示run command运行程序最后的d表示directory目录。下面让我们看看 /etc/rc2.d 目录中到底指定了哪些程序。   $ ls /etc/rc2.dREADMES01motdS13rpcbindS14nfs-commonS16binfmt-supportS16rsyslogS16sudoS17apache2S18acpid... 可以看到除了第一个文件README以外其他文件名都是字母S两位数字程序名的形式。 字母S表示Start也就是启动的意思启动脚本的运行参数为start如果这个位置是字母K就代表Kill关闭即如果从其他运行级别切换过来需要关闭的程序启动脚本的运行参数为stop。 后面的两位数字表示处理顺序数字越小越早处理所以第一个启动的程序是motd然后是rpcbing、nfs……数字相同时则按照程序名的字母顺序启动所以rsyslog会先于sudo启动。 这个目录里的所有文件除了README就是启动时要加载的程序。如果想增加或删除某些程序不建议手动修改 /etc/rcN.d 目录最好是用一些专门命令进行管理。 第四步、加载开机启动程序 前面提到七种预设的运行级别各自有一个目录存放需要开机启动的程序。不难想到如果多个运行级别需要启动同一个程序那么这个程序的启动脚本就会在每一个目录里都有一个拷贝。这样会造成管理上的困扰如果要修改启动脚本岂不是每个目录都要改一遍 Linux的解决办法就是七个 /etc/rcN.d 目录里列出的程序都设为链接文件指向另外一个目录 /etc/init.d 真正的启动脚本都统一放在这个目录中。init进程逐一加载开机启动程序其实就是运行这个目录里的启动脚本。下面就是链接文件真正的指向。   $ ls -l /etc/rc2.dREADMES01motd - ../init.d/motdS13rpcbind - ../init.d/rpcbindS14nfs-common - ../init.d/nfs-commonS16binfmt-support - ../init.d/binfmt-supportS16rsyslog - ../init.d/rsyslogS16sudo - ../init.d/sudoS17apache2 - ../init.d/apache2S18acpid - ../init.d/acpid这样做的另一个好处就是如果你要手动关闭或重启某个进程直接到目录 /etc/init.d 中寻找启动脚本即可。比如我要重启Apache服务器就运行下面的命令   $ sudo /etc/init.d/apache2 restart/etc/init.d 这个目录名最后一个字母d是directory的意思表示这是一个目录用来与程序 /etc/init 区分。 第五步、用户登录 开机启动程序加载完毕以后就要让用户登录了。一般来说用户的登录方式有三种   1命令行登录   2ssh登录   3图形界面登录 这三种情况都有自己的方式对用户进行认证。 1命令行登录init进程调用getty程序意为get teletype让用户输入用户名和密码。输入完成后再调用login程序核对密码Debian还会再多运行一个身份核对程序/etc/pam.d/login。如果密码正确就从文件 /etc/passwd 读取该用户指定的shell然后启动这个shell。 2ssh登录这时系统调用sshd程序Debian还会再运行/etc/pam.d/ssh 取代getty和login然后启动shell。 3图形界面登录init进程调用显示管理器Gnome图形界面对应的显示管理器为gdmGNOME Display Manager然后用户输入用户名和密码。如果密码正确就读取/etc/gdm3/Xsession启动用户的会话。 第六步、进入 login shell 所谓shell简单说就是命令行界面让用户可以直接与操作系统对话。用户登录时打开的shell就叫做login shell。 Debian默认的shell是Bash它会读入一系列的配置文件。上一步的三种情况在这一步的处理也存在差异。 1命令行登录首先读入 /etc/profile这是对所有用户都有效的配置然后依次寻找下面三个文件这是针对当前用户的配置。   ~/.bash_profile~/.bash_login~/.profile 需要注意的是这三个文件只要有一个存在就不再读入后面的文件了。比如要是 ~/.bash_profile 存在就不会再读入后面两个文件了。 2ssh登录与第一种情况完全相同。 3图形界面登录只加载 /etc/profile 和 ~/.profile。也就是说~/.bash_profile 不管有没有都不会运行。 第七步打开 non-login shell 老实说上一步完成以后Linux的启动过程就算结束了用户已经可以看到命令行提示符或者图形界面了。但是为了内容的完整必须再介绍一下这一步。 用户进入操作系统以后常常会再手动开启一个shell。这个shell就叫做 non-login shell意思是它不同于登录时出现的那个shell不读取/etc/profile和.profile等配置文件。 non-login shell的重要性不仅在于它是用户最常接触的那个shell还在于它会读入用户自己的bash配置文件 ~/.bashrc。大多数时候我们对于bash的定制都是写在这个文件里面的。 你也许会问要是不进入 non-login shell岂不是.bashrc就不会运行了因此bash 也就不能完成定制了事实上Debian已经考虑到这个问题了请打开文件 ~/.profile可以看到下面的代码   if [ -n $BASH_VERSION ]; thenif [ -f $HOME/.bashrc ]; then. $HOME/.bashrcfifi 上面代码先判断变量 $BASH_VERSION 是否有值然后判断主目录下是否存在 .bashrc 文件如果存在就运行该文件。第三行开头的那个点是source命令的简写形式表示运行某个文件写成source ~/.bashrc也是可以的。 因此只要运行/.profile文件/.bashrc文件就会连带运行。但是上一节的第一种情况提到过如果存在/.bash_profile文件那么有可能不会运行/.profile文件。解决这个问题很简单把下面代码写入.bash_profile就行了。   if [ -f ~/.profile ]; then. ~/.profilefi 这样一来不管是哪种情况.bashrc都会执行用户的设置可以放心地都写入这个文件了。 Bash的设置之所以如此繁琐是由于历史原因造成的。早期的时候计算机运行速度很慢载入配置文件需要很长时间Bash的作者只好把配置文件分成了几个部分阶段性载入。系统的通用设置放在 /etc/profile用户个人的、需要被所有子进程继承的设置放在.profile不需要被继承的设置放在.bashrc。 顺便提一下除了Linux以外 Mac OS X 使用的shell也是Bash。但是它只加载.bash_profile然后在.bash_profile里面调用.bashrc。而且不管是ssh登录还是在图形界面里启动shell窗口都是如此。来源http://www.ruanyifeng.com转载于:https://blog.51cto.com/11134889/2336153
http://www.sadfv.cn/news/144297/

相关文章:

  • 深圳股票配资网站开发建设网站的价格
  • 深圳 网站建设培训班网上装修平台哪个最好
  • 网站开发建设属于什么费用网站体系优势
  • 设计灵感的网站莱芜定制网站建设公司
  • 北京高端网站建设入门企业管理官网登录入口
  • 西宁哪家网络公司做网站好广州网站设计素材
  • 网站开发字体选择怎么自己做APP网站
  • phpcms 手机网站模板wordpress 上传fttp
  • 抓好门户网站建设网站生成自助
  • 网站留言板html代码新竹网站
  • 网站流量查询 优帮云东莞营销网站建设报价
  • 朝阳区手机网站制作服务深圳装修网
  • 临汾推广型网站建设个人开发小程序多少钱
  • 什么样的网站容易做seo无锡网站建设优化
  • 网站中的搜索功能怎么做的重庆网站开发设计公司
  • 当建设部门网站河南建设厅网站
  • 做企业网站设计价格是多少山东seo网页优化外包
  • 网站建设方案对比报告产品设计方案格式模板
  • 求一个2023年没封的南通企业网站seo
  • 网站规划与网页设计案例图书大厦网站建设报告
  • 石家庄网站建设公司哪个好icp网站备案流程
  • 做设计不进设计公司网站wordpress连接数据库文件
  • 网站建设的服务怎么样wordpress 后台模板
  • 谷城做网站企业如何开展网络营销
  • 坪地网站建设如何wordpress图片下一篇
  • wordpress开启伪静态无法登陆2017织梦网站怎么做seo
  • 普陀网站建设比较实惠wordpress实现微信登录
  • 网站建设有什么优势排版设计网站
  • 电子商务网站设计html模板化学网站定制
  • 查看网站开发技术域名解析记录值填什么