Linux系统是全世界最受欢迎的开放源代码操作系统之一,由Linus Torvalds主持开发。 Linux系统的结构要分为两部分:内核軮和程序。内核是一段可在电脑处理器上运行的程序,它提供了系统的大部分功能,包括访问硬件、运行程序、安装文件系统等,以及定义和可用库和工具(如shell)。程序是除内核以外的部分,是众多以用户态运行的应用程序。
Linux系统主要分为两个分支:稳定分支和测试分支。稳定分支通常在最新版本上调整所有错误之后发布,并收到许多长期技术支持和安全更新。而测试分支则是新的特性或修复的新特性发布的地方,因此可能会存在一些未修复的漏洞,但会更加稳定。
配置Linux系统非常简单,你可以使用这样的bash脚本来完成:
#!/bin/bash# let's set up some useful variablesBRANCH="" # Replace with "stable" for the stable branch, "testing" for the testing branch# Download and install the necessary packagessudo apt-get updatesudo apt-get install lsb-release# Determine the distro versionDISTRO_VER=$(lsb_release -rs)# Download the package listwget # Install the necessary packagessudo apt-get install # Set the distro version in /etc/os-releaseecho "VERSION=${DISTRO_VER}" >>/etc/os-release# Setup the correct branchecho "BRANCH=${BRANCH}" >>/etc/os-release
上面就是使用Shell脚本构建和配置Linux系统的一般步骤。 上述步骤将构建一个既安全又稳定的操作系统,其中包括选择正确的稳定状态(stable)和测试状态(testing),并正确配置确定的分支(stable或testing),以形成一个可供长期发展的操作系统。
Linux系统是非常稳定、性能优异的操作系统,在很多方面都有优势,而构建Linux系统和分支探索则是形成完善系统的基础,同时也是操作系统不断发展变化的重要原动力。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

Linux由哪几部分组成?
一、Linux shellShell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。 它接收用户输入的命令并把它送入内核去执行。 实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。 不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。 Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。 Linux提供了像Microsoft Windows那样的可视的命令输入界面--X Window的图形用户界面(GUI)。 它提供了很多窗口管理器,其操作就象Windows一样,有窗口、图标和菜单,所有的管理都是通过鼠标控制。 现在比较流行的窗口管理器是KDE和GNOME。 每个Linux系统的用户可以拥有他自己的用户界面或Shell,用以满足他们自己专门的Shell需要。 同 Linux本身一样,Shell也有多种不同的版本。 目前主要有下列版本的Shell: Bourne Shell:是贝尔实验室开发的。 BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。 Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。 C Shell:是SUN公司Shell的BSD版本。 二、Linux 实用工具标准的Linux系统都有一套叫做实用工具的程序,它们是专门的程序,例如编辑器、执行标准的计算操作等。 用户也可以产生自己的工具。 实用工具可分三类:编辑器:用于编辑文件。 过滤器:用于接收数据并过滤数据。 交互程序:允许用户发送信息或接收来自其他用户的信息。 Linux的编辑器主要有:Ed、Ex、Vi和Emacs。 Ed和Ex是行编辑器,Vi和Emacs是全屏幕编辑器。 Linux的过滤器(Filter)读取从用户文件或其他地方的输入,检查和处理数据,然后输出结果。 从这个意义上说,它们过滤了经过它们的数据。 Linux有不同类型的过滤器,一些过滤器用行编辑命令输出一个被编辑的文件。 另外一些过滤器是按模式寻找文件并以这种模式输出部分数据。 还有一些执行字处理操作,检测一个文件中的格式,输出一个格式化的文件。 过滤器的输入可以是一个文件,也可以是用户从键盘键入的数据,还可以是另一个过滤器的输出。 过滤器可以相互连接,因此,一个过滤器的输出可能是另一个过滤器的输入。 在有些情况下,用户可以编写自己的过滤器程序。 交互程序是用户与机器的信息接口。 Linux是一个多用户系统,它必须和所有用户保持联系。 信息可以由系统上的不同用户发送或接收。 信息的发送有两种方式,一种方式是与其他用户一对一地链接进行对话,另一种是一个用户对多个用户同时链接进行通讯,即所谓广播式通讯。 三、Linux 文件系统文件结构是文件存放在磁盘等存储设备上的组织方法。 一个文件系统的好坏主要体现在对文件和目录的组织上。 目录提供了管理文件的一个方便而有效的途径。 我们能够从一个目录切换到另一个目录,而且可以设置目录和文件的权限,设置文件的共享程度。 使用Linux,用户可以设置目录和文件的权限,以便允许或拒绝其他人对其进行访问。 Linux目录采用多级树形结构,用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。 文件结构的相互关联性使共享数据变得容易,几个用户可以访问同一个文件。 Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。 内核,Shell和文件结构一起形成了基本的操作系统结构。 它们使得用户可以运行程序,管理文件以及使用系统。 此外,Linux操作系统还有许多被称为实用工具的程序,辅助用户完成一些特定的任务。 四、Linux内核内核、Shell、文件系统这三个部分构成了linux系统;Linux内核内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。 它从用户那里接受命令并把命令送给内核去执行。 在dos系统下:内核 在windows操作系统中:NT核心 在linux操作系统中:kernel
如何在linux下构建强大的build系统
大致目录构建如下:├── : 用来生成配置环境信息的可执行程序├── : 用来生成配置环境信息的文件├── : 用来产生spec文件├── : build工具├── conf : 配置文件目录├── : 一些编译过程中的配置信息├── configure : 配置工具├── : 形成build以及配置工具的文件├──# Names of this _names=.1.0.0 .1 # The name of the static _library=libcpthread.a# Libraries tHat this one depends _libs= -ldl /usr/lib64/libconfig++ /usr/lib64/ /usr/lib64/ /usr/local/lib64/ -lz /usr/local/lib64/ -lpthread -lalog# Version information for =1age=0revision=0# Is this an already installed library?installed=no# Should we warn about portability when linking against -modules?shouldnotlink=no# FILEs to dlopen/dlpreopendlopen=dlpreopen=# Directory that this library needs to be installed in:libdir=/usr/lib看到了吧?里面指定了关于静态库和动态库的依赖等一系列的信息,具体还可以参考项目框架设计模式中库公约的部分。 静态文件和动态文件都会在当前目录的下,当然开发者也不需要关注库文件本身,了解在这个路径下即可。 可执行文件如何编译呢?bin_PROGRAMS = threadpoolthreadpool_SourceS = 此处的bin_PROGRAMS会将程序安装到${prefix}路径下,如果不想安装,可以采用:noinst_PROGRAMS = testthreadpoolthreadpool_SOURCES = 同理,如果有多个cpp文件生成一个库文件,则全部添加;如果有多个文件或者可执行文件需要生成,只需要用空格隔开.a文件,相应的源文件对应到.a文件即可,如下所示:lib_LTLIBRARIES = _PROGRAMS = testthreadpool1 testthreadpool2 testthreadpool3如果库文件或者二进制文件有头文件的申明依赖或追加一些编译选项,则可以使用CFLAGS或CPPFLAGS,如下所示:threadpool_CPPFLAGS = -I$(top_srcdir)/include/example.h如果是java源文件,只需要遵循普通makefile写法即可,如:all: : clean : @ant jarclean:ant clean当然,ant需要配置好哟!如何连接库连接库的的时候,同样也会有区分,工程外部的连接需使用LDFLAGS,如下所示:libcpthread_la_LDFLAGS = -pthread如果是内部库,我们就直接使用文件,这样在选择静态连接或者动态连接的时候,就给开发者很大的空间。 值得注意的是,库文件和二进制的内部库连接宏并不相同,表现如下:libcpthread_la_LIBADD = $(top_srcdir)/src/util/_LDADD = 现在编译和连接是否都了解了呢?非编译的一些开发当创建一个脚本或配置文件的时候:make dist则形成一个的压缩包,但刚才创建的脚本或配置文件并没有加入,于是:EXTRA_DIST = conf//即可将脚本或配置文件放入到压缩包中;若在多层目录上的时候,还可以使用宏SUBDIRS指定内部编译的顺序(包括当前目录),比如:SUBDIRS = util /thread /. /log/common 在编译系统make的时候,会严格按照顺序进行。 提供外部开发如果工程完成了,别人想使用上面的库文件进行二次开发,该如何做呢?libcpthreadincludedir = $(includedir)/@PACKAGE_NAME@/util/threadlibcpthreadinclude_HEADERS= thread.h这样在编译系统make install的时候,会将头文件安装到上面指定的目录下,别人依照上面的build系统继续下面的build了。
Linux系统管理 第一章 Linux系统简介及安装
在安装Linux之前,先确定你的计算机的硬件是否能被Linux所支持。 首先,Linux目前支持几乎所有的处理器(CPU)。 其次,早期的Linux只支持数量很少的显卡、声卡,而如今,如果要安装Linux,已经不需要再为硬件是否能被Linux支持担心了。 经过十多年的发展,Linux内核不断完善,已经能够支持大部分的主流硬件,同时各大硬件厂商也意识到了Linux操作系统对其产品线的重要性,纷纷针对Linux推出了驱动程序和补丁,使得Linux在硬件驱动上获得了更广泛的支持。 另外,如果你的声卡、显卡是非常新的型号,Linux内核暂时无法支持,那也不要紧,RedHat会自动把无法准确识别的硬件模拟成标准硬件来使用,让硬件一样可以在Linux发挥作用。 由于设计Linux时的初衷之一就是用较低的系统配置提供高效率的系统服务,所以安装Linux并没有严格的系统配置要求,只要Pentium以上的CPU、64MB以上的内存、1GB左右的硬盘空间,就能安装基本的Linux系统并且能运行各种系统服务。 但是如果要顺畅地运行X-Window,就需要有足够的内存,建议128MB以上。 现在,你可以打消Linux对计算机硬件是否支持的顾虑,放心大胆地安装了吧。
发表评论