近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经逐渐淡出历史舞台,新的 UpStart 和 systemd 各有特点,越来越多的 Linux 发行版采纳了 systemd.本文简要介绍了这三种 init 系统的使用和原理,每个 Linux 系统管理员和系统软件开发者都应该了解它们,以便更好地管理系统和开发应用. 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 浅析 Linux 初始化 init 系统,第 2 部分: UpS…
浅析 Linux 初始化 init 系统,第 1 部分: sysvinit  第 2 部分: UpStart 第 3 部分: Systemd http://www.ibm.com/developerworks/cn/linux/1407_liuming_init1/index.html http://www.ibm.com/developerworks/cn/linux/1407_liuming_init2/ http://www.ibm.com/developerworks/cn/linux/…
原文地址:http://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/ Systemd 的简介和特点 Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度.systemd 和 ubuntu 的 upstart 是竞争对手,预计会取代 UpStart,实际上在作者写作本文时,已经有消息称 Ubuntu 也将采用 systemd 作为其标准的系统初始…
http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp?sort_by=&show_abstract=true&show_all=&search_flag=&contentarea_by=Linux&search_by=浅析+Linux+初始化+init+系统&topic_by=-1&type_by=所有类别&ibm-search=搜索 浅析 Linux 初始化 ini…
参选URL: http://www.ibm.com/developerworks/cn/linux/1407_liuming_init1/index.html 本系列一共三篇,看完记住,那水平就不一样啦. 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit 从 sysvinit 到 systemd 近年来,Linux 系统的 init 进程经历了两次重大的演进,传统的 sysvinit 已经淡出历史舞台,新的 init 系统 UpStart 和 systemd 各有特点,…
首先了解以下Ubuntu运行级别(init)对应工具的变化历史: 1.Ubuntu 6.10及以前版本使用Sysvinit. 2.Ubuntu 14.10及以前版本使用Upstart但是还留着Sysvinit并存. https://wiki.ubuntu.com/Upstart https://help.ubuntu.com/community/UpstartHowto 3.Ubuntu 15.04开始预设使用Systemd,但是可以在开机选项选择使用Systemd或Upstart,但是不可同時…
虚拟内存 先简单介绍一下操作系统中为什么会有虚拟地址和物理地址的区别.因为Linux中有进程的概念,那么每个进程都有自己的独立的地址空间. 现在的操作系统都是64bit的,也就是说如果在用户态的进程中创建一个64位的指针,那么在这个进程中,这个指针能够指向的范围是0~0xFFFFFFFFFFFFFFFF(总共有16个F,每个F是4个bit). 每个进程"理论上"都有这样的地址范围(-,-这里的"理论"是指猜测一下,指针乱指向未定义的范围会引发段错误,下文中会写明64…
wikipedia 浅析 Linux 初始化 init 系统 systemd 中文手册 fedoraproject - systemd 1. Systemd 简介 Systemd 是 Linux 系统的初始化系统. 提高启动速度 通过并行启动和减少启动进程,且采用了 socket / D-Bus activation 激活等技术,实现了较快的启动速度. 管理进程的生命周期 init 初始化系统的一个重要职责就是跟踪和管理服务进程的生命周期.不仅要启动服务,同时也能够停止服务. Systemd 采…
浅析Linux服务器集群系统技术 目录 前言 常用的服务器集群 集群系统的优势 LVS集群的通用体系结构 为什么使用层次的体系结构 为什么是共享存储 可伸缩Web服务 前言 总结两篇技术文章,努力学习! http://www.linuxvirtualserver.org/zh/lvs2.html https://www.cnblogs.com/happyPawpaw/p/5250651.html 常用的服务器集群 一种是将备份服务器连接在主服务器上,当主服务器发生故障时,备份服务器才投入运行,把…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/juS3Ve/article/details/79049404 本文具体解说了利用__attribute__((section()))构建初始化函数表.以及Linux内核各级初始化的原理. 作者简单介绍:     廖威雄,2016年本科毕业于暨南大学.眼下就职于珠海全志科技股份有限公司从事linux嵌入式系统(Tina Linux)的开发,主要负责文件系统和存储的开发和维护,兼顾linux測试系统的…
System V 特点 缺点: 启动时间长,init是串行启动,只有前一个进程启动完,才会启动下一个进程 启动脚本复杂,init只是执行启动脚本,不管其他事情,脚本需要自己处理各种情况,这往往使得脚本变得很长很复杂 优点: 概念简单,只需要编辑脚本 启动顺序确定,严格按照启动数字的大小顺序执行,一个执行完毕再执行下一个,有益于错误排查 文件目录 /etc/init.d/ 存放服务启动脚本 对于支持 service 的程序,安装的时候,会自动的在 /etc/init.d 目录添加一个配置文件 /e…
本来以为结束,谁知离正常的系统还是比较远,不过不放弃,这期的笔记我敢肯定是最后一期了,写了那么多我也觉得烦,被gentoo折磨烦了. 安装KDE桌面 选择正确的配置文件 先获取root权限来安装桌面环境: 先eselect profile list来看看配置正,如果选不对的话KDE桌面环境是无法正常安装的. 建议选择适当的概要文件(尽管不是必需的),因为它设置了许多全局和特定于包的使用标志,以简化安装并确保KDE的流畅体验.为了选择最合适的配置文件,首先列出可用的: 对于KDE Plasma 5…
这期笔记继续安装Gentoo,上期我们已经到了可以进入新环境了,这意味着就是将原来的安装CD或其它介质改为硬盘上安装系统了,话不多说,马上开始! 恢复安装 由于我已经中断了安装,对于已经可以进入新环境的用户来说,这个可以通过恢复安装来继续安装Gentoo. 首先先挂载根分区: 然后复制DNS信息: 如果之前已经复制了,它会提示你是否覆盖文件,回车确定即可. 挂载必要的文件系统: 进入新环境: 以后的安装过程中被中断了,都要通过以上的这些命令来恢复安装. 配置Portage 从网站安装ebuild…
Linux启动时我们会看到许多启动信息 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导 运行init 系统初始化 建立终端 用户登录系统 init程序的类型: •SysV:init,CentOS 5之前,配置文件:/etc/inittab •Upstart:init,CentOS 6,配置文件:/etc/inittab, /etc/init/*.conf •Systemd:systemd,CnetOS 7,配置文件:/usr/lib/systemd/sy…
浅析linux内核中timer定时器的生成和sofirq软中断调用流程 mod_timer添加的定时器timer在内核的软中断中发生调用,__run_timers会spin_lock_irq(&base->lock);禁止cpu中断,所以我们的timer回调处理函数handler工作在irq关闭的环境中,所以需要作很多考虑,比如在handler中尽量不要执行会引起pending的函数调用,比如kmalloc之类可能引起pending的操作,否则会使kernel永远停在我们的handler中不…
转自:http://blog.chinaunix.net/uid-20564848-id-73480.html 浅析linux内核中timer定时器的生成和sofirq软中断调用流程 mod_timer添加的定时器timer在内核的软中断中发生调用,__run_timers会spin_lock_irq(&base->lock);禁止cpu中断,所以我们的timer回调处理函数handler工作在irq关闭的环境中,所以需要作很多考虑,比如在handler中尽量不要执行会引起pending的函…
systemd是Linux下的一种init软件,由Lennart Poettering带头开发,其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替现在常用的System V与BSD风格init程序.传统sysvinit使用inittab来决定运行哪些shell脚本,大量使用shell脚本被认为是效率低下无法并行的原因.systemd使用了Linux专属技术,不再顾及POSIX兼容. 设计理念 与多数发行版…
本文转载自:http://www.cnblogs.com/qingchen1984/p/7007631.html 本篇文章主要介绍了"浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程",主要涉及到浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程方面的内容,对于浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程感兴趣的同学可以参考一下.   简介: 本文试图完整地描述 Linux 系统中 C 语言编程中的时…
初始化CentOS系统的初始化脚本 #!/bin/bash # #******************************************************************** #Author: kjAlbert #Date: 2019-10-11 #FileName: sysinit.sh #Description: Init CentOS Linux system #Copyright (C): 2019 All rights reserved #*********…
Linux系统启动流程 Linux 系统的启动,从计算机开机通电自检开始,一直到登陆系统,需要经历多个过程.了解 Linux 的启动过程,有助于了解 Linux 系统的结构,也对系统的排错有很大的帮助. CentOS 6.x 系统启动过程发生了较大的变化,使用 Upstart 启动服务取代了原先的 System Vinit(英文).(中文) 启动服务.Upstart 启动服务的效率更高,启动速度更快. Linux 系统启动过程比较复杂,我们先整理一下基本的启动过程,有一个整体的印象,然后再进一步…
一.MMap基础概念 mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系.实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数.相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享. 进程空间布局前置知识:浅析Linux进程空间布局 如下图所示: 由上图可…
浅析Linux下进程间通信:共享内存 共享内存允许两个或多个进程共享一给定的存储区.因为数据不需要在客户进程和服务器进程之间复制,所以它是最快的一种IPC.使用共享内存要注意的是,多个进程之间对一给定存储区的同步访问. 主要用到的函数有:shmget(),shmctl(),shmat(),shmdt(),下面一一介绍: 一.shmget()函数 函数原型如下: #include <sys/ipc.h> #include <sys/shm.h> int shmget(key_t ke…
环境:lubuntu 13.04   kernel 3.9.7 作者:SA12226265 katao 简介: 本文根据 Linux™ 系统工作基础的分析,对存储程序计算机.堆栈(函数调用堆栈)机制和中断机制进行概述.文中将为您提供操作系统(内核)如何工作的细节,进一步从宏观概述结合关键点进行微观(CS:EIP.EBP/ESP等的变化)分析. 一.存储程序计算机 首先让我们了解一下,什么是存储程序计算机,并对存储程序计算机的整个运行过程及所需的硬件组件进行简单介绍 上图是程序存储计算机的物理框架…
一.系统时间的设置 在Linux中设置系统时间,可以用date命令: //查看时间 [root@localhost ~]# date 2008年 12月 12日 星期五 :: CST //修改时间 [root@localhost ~]# date --set "1/1/09 00:01" <== (月/日/年时:分:秒) 2009年 01月 01日 星期四 :: CST //date 有几种时间格式可接受,这样也可以设置时间: [root@localhost ~]# date 0…
powerpc e500的内核启动,关于tlb的初始化可以说是重头戏.看懂这段代码后,powerpc的虚实映射基本不在话下. 这段初始化tlb要考虑的,主要是将boot可能初始化过的tlb全清零,然后自己建立一套PAGE_OFFSET的虚实映射,即为0xc打头的地址 建立映射. inux kernel 3.10.7将这段初始化代码,全部放到fsl_booke_entry_mapping.S里,这段代码除了linux初始化会用, 也被kexec使用.下面先直接贴出代码,之后分析核心流程. /* 1…
环境准备阶段--搭建oracle linux 6.5系统 选择9.x版本兼容性 分配6GB内存 再次重启可以进入桌面,提示如下,勾选然后close 配置主机名,网络.hosts [root@ocp-1-1 ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=myocp.com [root@ocp-1-1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=E…
转自:http://blog.csdn.net/erickhuang1989/article/details/8721548 在嵌入式系统中,为了使系统在异常情况下能自动恢复,一般都会引入看门狗电路.看门狗电路其实就是一个计数器.当看门狗启动后,计数器开始自动计数,经过一定时间计数器溢出就会对CPU产生一个复位信号使系统重启.系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零也即喂狗,不让复位信号产生. 当前在带Linux操作系统的嵌入式系统中,由于Linux操作系统加载时间较长(如…
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Windows下面的syslog日志服务器> <Linux下dmesg命令处理故障和收集系统信息的7种用法> 一.syslog简介 syslog是一种工业标准的协议,可用来记录设备的日志.在UNIX系统,路由器.交换机等网络设备中,系统日志(System Log)记录系统中任何时间发生的大小事件.管理者…
在Linux和Windows系统上安装Nginx服务器的教程  1.在CentOS系统上安装Nginx 在 CentOS6 版本的 EPEL 源中,已经加入了 nginx 的 rpm 包,不过此 RPM 包版本较低.如果需要更新版本,可以使用官方制作的 rpm 包,或者使用源码包编译安装. 还可以使用一些二次开发功能增强的 nginx 版本,例如淘宝的 Tengine 和 OpenResty 都是不错的选择.1.1 常用编译参数     --prefix=PATH:指定 nginx 的安装目录 …
本文转载自:http://blog.csdn.net/jscese/article/details/42739197 在前文Linux/Android——Input系统之frameworks层InputManagerService (六)  这里介绍了android层input服务的启动,其中启动了一个读取来自底层event事件的线程. 而在Linux/Android——input系统之 kernel层 与 frameworks层交互 (五)有分析到是通过一个event%d的设备文件交互的,也就…