对于理解服务器和网络来说,「协议」是不可缺少的概念. 「协议(protocol)」有「规则,规定」的意思. 实际上「协议」的函数很广,在通信领域,「协议」规定了「在通信时,什么样的情况下,以什么样的顺序,什么样的方式交互什么样的数据」. 抽象的去理解「协议」可能会比较困难,下面来举个例子. 通过Web以HTML方式交互时使用的协议是「HTTP」(Hyper Text Transfer Protocol).这个协议最重要的就是规定了服务器和客户端之间以HTML方式交互的规则. 比如,客户端连接上服…
这次聊聊「邮件服务器」. 邮件服务器上通常会运行2个服务端软件,「SMTP服务器」和「POP服务器或者IMAP服务器」. 这2个东西,也许使用邮件客户端的人立马就明白了.因为设置邮件客户端的时候,需要指定「发信服务器」和「收信服务器」. 这2个服务器是同一个的情况虽然也不少,但是一般指定「发信服务器」或者「收信服务器」的时候,都是指「发送邮件的服务端软件」和「接收邮件的服务端软件」. 发送邮件时,发送邮件的路线简单表示如下: 即,发邮件的客户端使用SMTP(Simple Mail Transfe…
这次聊聊桌面环境. 上次聊了 X Window System 相关的内容,虽然令人意外,但X Window System 和桌面环境不是一回事.请大家稍微考虑一下. X Window System 是指提供GUI环境的软件或者协议.与之相对,「桌面环境」是指工具栏,图标,窗口管理器,桌面管理器等等各式各样软件组合起来的GUI软件包. 换句话说,就是「使用桌面所必需的软件的集合」. 有名的桌面环境有「GNOME」和「KDE」.最近,很多Linux的发行版并不关心使用的桌面环境是「GNOME」还是「…
上次说了「协议」相关的话题,这次专门说说「TCP/IP」协议. 这里的主题是「TCP/IP」到底是什么?但并不是要说明「TCP/IP」是什么东西,重点是「TCP/IP」究竟有什么意义,在哪里使用「TCP/IP」.这正是之前没有提到的内容. TCP或IP,根据上次的介绍,都是协议,也就是通信时的规则.但是,「TCP/IP」很容易被误解,因为TCP/IP并不是单独的一个协议,而是一系列协议的集合,目前是作为互联网的标准被使用的. 上次也说了,单独一个协议是没法完成通信的.只有多个协议一起使用,才能完…
这次,谈谈关于「环境变量」的话题. 所谓变量,就是在程序中设置的,相当于在内存中准备的「一个用来存放数据的小箱子」. 即,程序通过变量来保存值,通过变量保存的内容来进行各式各样的计算处理. 「环境变量」也是变量的一种.那它和普通的变量有什么区别呢?普通变量只对定义它的程序有效,而环境变量是所有程序共享的变量. 对于 Linux Shell而言,不仅Shell本身能够使用,被Shell产生的子进程也能使用的变量就是环境变量. 环境变量的名称通常用大写字母来定义.实际上用小写字母来定义环境变量也不会…
这次说说「Shell 脚本」. 根据上回的介绍,Shell就是「作为联系Linux和用户的接口而存在的软件」.在Linux环境中,通过Shell来操作系统很普遍. 这里,考虑到有时候可能想要「多次的进行反复的类似操作」,比如定时的系统监视等等. 在这种场合下,需要在Shell中多次的输入同样的命令.非常浪费时间. 上述的场合,可以事前将一系列的操作(准备执行的命令等等)以程序的形式记录在文件中,同时让这个文件可执行.这个文件就是「Shell Script」. 「Script」就是「脚本」的意思.…
上次,从「计算机的内部构造」的角度解释了架构这个术语.这次,介绍下架构中经常提到的「i386架构」及之后的「i486」,「i586」. 安装Linux的时候,很多人即使不了解但也会经常听到i386架构这个词.因此,会误认为「自己的PC的架构是i386架构的」.现在用i386的人是非常少的. i386的 i 就是「Intel」的首字母.i386是1985年发布的架构,那么如今还在用i386电脑的人... ...将近20年没有换过电脑了.(这篇文章应该是作者2005年左右写的) 实际上i386的CP…
上次说了端口号相关的内容,这次聊聊「端口限制」的事. 经常看到关于安全的书籍上会说「不要开放多余的端口」,那么,如何限制端口才好呢? 实际,端口限制的方法大体上分的话有2种. 其一,「通过应用程序来处理」.试着一下考虑「打开端口」本来是怎么一回事.比如,启动Apache之类的Web服务程序的时候,(如果没有特别的设置)会打开Well known ports中的80号端口, 然后通过80号端口开始等待通信. 所以,如果关闭了服务端应用程序的话,端口也会自动被关闭.「不要开放多余的端口」也就是「不要…
这次聊聊路径的使用,这里的路径是「命令搜索路径」的简称. 在Linux上执行命令的时候,本来是需要命令的所在位置的绝对路径的,就像「/usr/bin/passwd」这样. 但是,对于经常使用的命令,如果每次都要输入绝对路径的话就非常麻烦了. 在Linux的Shell中,执行某个命令时,用户不用输入命令的完整路径,直接输入命令后,系统会在特定的目录中查找这个命令,找到后执行. 这时,设置Shell在哪些目录中搜索命令的步骤就被称为「路径设置」,正确的应该是「命令搜索路径的设置」 为了设置路径,需要…
这次聊聊「动态DNS」. DNS上周已经介绍过了,就是提供主机名和IP地址对应关系的结构.「动态DNS」是对主机名和IP地址的对应关系提供动态管理的结构. 以前的DNS没有考虑IP地址变化的情况.但是,在使用DHCP来分配IP地址的网络中,IP地址经常发生变化.因此,相同的主机名每次都会指向不同的主机. 使用刚才提到的「动态DNS」,即使IP地址发生变化,主机名和变化了的IP地址也会自动对应起来. 动态DNS经常被用在个人的服务器中.大多数的宽带线路中,面向个人的都是从供应商处动态分配的IP地址…
这次聊聊「DNS服务器」. DNS(Domain Name System)服务器,也被称为域名服务器. 因为使用互联网的时候,必须要指定DNS服务器,所以你一定听过DNS这个名字吧. 那么,这个DNS服务器是干啥用的呢? 通过互联网连接其他主机的时候,用户一般会输入类似「www.lpi.or.jp」这样的主机域名. 这种域名对用户来说很好理解.但是计算机是通过「202.218.212.222」这样的IP地址来识别网络的主机的. DNS服务器的任务就是建立这种域名和IP地址的对应关系. 粗略来说,…
这次聊聊「虚拟化技术」. 虚拟化技术,有时简称为「虚拟化」,最近经常听人说它.但是却不太清楚它的意思.到底虚拟了什么东西?本来是用来干什么的? 有名的虚拟化软件要数 VMware 和 VirtualBox了.这些软件简单来说的话,就是在已有的OS上虚拟一个计算机出来,然后在这台虚拟计算机上安装别的OS. 即,在一台计算机上可以运行多个OS. 虚拟化技术可以提供上述的功能,但是虚拟化技术并不仅仅是「一台计算机上运行多个OS」.也能够「多台计算机上运行一个OS」. 即,通过虚拟化技术,「计算机的台数…
这周聊聊「NTP」. 上次,聊了「时区」,也就是时间相关的话题. NTP是「Network Time Protocol」的简称,是为了将网络中计算机的时钟同步到正确时间的协议. PC内部的时钟是相当不准确的,运行一个月左右就会产生几秒的误差.网络上的服务器,经常由于时钟的误差导致电子邮件的发送接收记录等出现异常. 因此,接入统一网络的主机的时钟有必要互相同步时钟.NTP就是用来解决这个问题的. NTP是以「服务端·客户端」的方式提供的.「NTP服务器」使用原子时钟之类东西时钟保持正确的时间,然后…
这次聊聊「LDAP」. LDAP是「Lightweight Directory Access Protocol」的所有,从名字上可以看出是协议的一种. LDAP是访问数据库(层次型数据库)的组件.管理的数据主要是用户名,密码等「账户信息」,以及其它用户信息. LDAP用于「统一管理多台计算机的用户相关信息」.比如,对于教育机关或者企业等,有很多机器,也有很多用户的场合,LDAP就非常有帮助. 如果没有LDAP这种统一管理的组件,每台机器的用户信息都必须要一个一个进行登录.当然,用户信息发生变化的…
新年的开始,聊聊「怎么做才能成为Linux内核开发者」. Linux内核的开发都是由志愿开发者们完成的.他们并不属于某些特定的企业. 因此,你也有参加Linux内核开发的资格.不用说,卓越的编码技术以及对所开发功能的相关知识有确实的掌握是必要的. 但是,除了技术和知识之外,如果还有很好的交流能力的话,那么你写的代码会有更大的机会被Linux内核所采用. 本来Linux内核的来源就是,Linus Torvalds在互联网上公开内核的最初代码,随着这个代码在开发人员中的广泛流传,很多的开发人员参与到…
这次说说「cron」. 「cron」就是「定期自动执行任务的工具」(相当于windows中的计划任务).读做「库隆」.使用「cron」,可以预先指定任务在某个时间执行. 时间的指定并不只是「一小时一次」这种简单的指定方法,还可以指定只有某天的某时才执行任务,或者指定8点-22点每小时执行一次等等. 还可以指定到具体的时间(可以具体到分钟).使用起来有些规则,但不是很难. 「cron」被称为运用Linux所不可缺少的工具.可用来定期的管理获取日志的软件,定期的检查系统状态. 甚至可用来监视进程或者…
这次介绍下新闻上提到的「小型移动式PC」.(这个当时日本新闻上的内容) 最近,经常在日本的大卖场中看到一种小型的移动式PC.不仅是小巧方便携带,而且价格也便宜.而且,省电功能的加入,使电池能工作更长的时间. 但是,由于这种PC比较小,可能也不太适合长时间的使用. 根据新闻的说法,这种小型的移动PC在国外有很多都是安装的Linux操作系统的.原因之一是「消减成本」. 这种被成为「NETBOOK」(上网本)的PC,是由美国的一个被称为 OLPC 的 NPO 率先发起的项目,这个项目的目的是为了给发展…
上次介绍了Linus Torvalds, 这次介绍他开发的「内核」. 经常听人提到「Linux kernel」,但如果被问到「kernel究竟是什么?」的话,会出乎意料的觉得难以回答. 那么,kernel到底是什么呢?「kernel」翻译过来就是「核心」的意思,简单来说,「Linux的核心程序就是Linux kernel」. 其实严格来说,「Linux」就是指「Linux kernel」.(最近,「Linux发行版」简称为「Linux」的情况越来越多) 将Linux kernel解释成「系统核心…
说起module(模块),有的像「可热插拔的零部件」的意思. 在讨论Linux时提到的模块一般是指可以组装到内核中的模块. 模块这个概念是在硬件和程序设计领域中广泛使用的概念.我们这次说的模块特指Linux内核中的模块. 内核模块简单来说就是「作为内核程序主体的一个小配件来使用的程序」,也就是说,只有模块是什么也做不了的.安装到内核中才能起作用. 比如有一个新的设备或者一个新的功能想要追加到内核中时,就可以用模块的方式来实现.(设备驱动最好考虑用内核模块的方式来提供) 此时,如果把相应的模块直接…
这次想说说「SCP和SFTP」. 不管SCP还是SFTP,都是SSH的功能之一.都是使用SSH协议来传输文件的. 不用说文件内容,就是登录时的用户信息都是经过SSH加密后才传输的,所以说SCP和SFTP实现了安全的文件传输. SCP和CP命令相似,SFTP和FTP的使用方法也类似.SCP和SFTP的共同之处在于「使用SSH将文件加密才传输的」 使用「WinSCP」或者「FileZilla」之类的客户端,还可以和Windows之间进行文件传输. SCP和SFTP的不同之处,首先就是之前提到的,SC…
这次,继续聊聊「虚拟化技术」. 根据上回的介绍,虚拟化技术可以使「计算机的台数和运行的OS的个数的比例不再是1:1」.这回介绍一下如何使用这个技术. 使用方法之一,「一台计算机上运行多个OS」.从个人用户的观点来看,这是最贴近个人用户的使用方法. 在已有的OS上通过虚拟化机安装Linux,然后在虚拟机上学习Linux的人有很多. 还有一种使用方法,实际上这种使用方法一直受到极大的关注,这种使用方法就是「将多台计算机构成一个系统」. 这种方法将多台计算机的计算能力汇集到一个系统中,可以大大提供系统…
这次说说关于Shell的东西. 「Shell」是看不见实体的,所以理解起来可能会有些困难. 最近的Linux发行版默认都是用X Window System来操作的(也就是图形化操作),所以很少见到有人会多余的去问「Shell是什么?」 UNIX系的OS的Shell是指「连结OS内核和用户的命令行接口」,命令行接口就是不使用鼠标,通过键盘输入字母文字等来和系统进行交互的接口. 即,Shell就是内核和用户之间通过文字交互的程序. X Window System启动后,同时按下 Ctrl+Alt+F…
X Window System是给Unix系的OS提供的一套窗口管理软件或者说是组件.X Window System已经成为了在Linux上使用GUI环境的不可或缺的东西了. X Window System诞生于马萨诸塞州(美国州名)工科大学的研究组,现在主要由  X.Org Foundation 这个组织来负责开发.目前的版本是「X11」(version 11). 上面所说的内容可能很多人都知道,但 X Window System 的架构「采用了服务端·客户端模式」这点就不那么广为人知了.正因…
作为新年的第一次,这次想简单介绍下Linus这个人.(这篇文章是作者新年初写的,所以有这么句话) Linux之父,同时也是现在linux内核开发最终决定的人物就是「Linus Torvalds」.「Linux」这个名字也是从「Linus」的名字中来的. Linus Torvalds,1969年12月出生于芬兰的程序员.他在赫尔辛基大学读书时,开发了Linux系统的最初版本. 当时,Linus感到有必要开发一个能在当时PC中处于主流地位的Intel i386电脑上运行的兼容UNIX的OS. 说是开…
实际上,「别名」被用在多种场合下.比如「命令的别名」,「邮件地址的别名」等等. 所以,单独说「别名」的时候,根据不用的场合,代表的意思也不一样. 一般来说,「别名」是指意思差不多的东西. 「别名」的英文是「alias」,日语就是「别名」. 说「邮件地址的别名」的时候,也可以看出别名的含义. 比如将「foo@example.com」设为「bar@example.com」,以「bar@example.com」为接收方的邮件就会发给「foo@example.com」. Linux中经常使用的除了邮件地…
这次聊聊「单CD Linux」. 所谓「单CD Linux」,就是不用安装,从CD-ROM启动后就可以使用的Linux. 有名的KNOPPIX就是「单CD Linux」,此外还有Puppy Linux.最近,Fedora和Gentoo也以「Live CD版」或者「Live DVD版」的方式发布了不用安装也能使用的Linux了. 那么,「单CD Linux」或者「Live CD」的方式有什么优势呢? 优势之一,因为不用安装,直接从CD-ROM启动后就能使用,所以最适合评价一个Linux发行版.即,…
这次,聊聊关于「命令行提示符」的相关内容. bash之类的Shell程序是操作Linux所不可缺少的东西.其中bash的提示符也有承担了很重要的作用. 「命令行提示符」的英文是「command prompt」,其中「prompt」有促使,推动的意思,根据这个意思,Shell中的「命令行提示符」就有促使,推动用户输入的意思. (下面的说明以bash为例,bash是Shell程序的一种) 目前的Linux发行版中,提示符一般都像下面这样: [user@host001 /etc]$ 上面这个提示符中包…
安装Linux的时候,需要对硬盘进行分区.那么「分区」到底是什么呢? 「分区」在日语中有区分,分割的意思.计算机术语中有时会说「对一个磁盘进行分区」,整个意思就是指定如何分割磁盘的意思. 「对磁盘进行分区」中的「分区」,现在多是用来表示磁盘分割后的一个一个独立的空间. 把磁盘分区之后,1个物理磁盘可以当成多个磁盘那样来使用了. Windows在安装的时候经常不对磁盘进行分区,而linux安装时几乎都会对磁盘进行分区.那么,分区的目的是什么呢? 对磁盘进行分区的目的有很多.最容易理解的就是,假如一…
最近术语「RAID」变得比较有名.「RAID」是指将多个HDD组合起来使用,从而提高存储可靠性的一种技术. 那么,关于 RAID 中的 「RAID 0」「RAID 1」「RAID 5」等各种「RAID」都有了解吗? RAID中最容易理解的应该是「RAID 1」(镜像)吧.所谓镜像(「RAID」),就是将同样的内容写入多台设备中,即使一台设备故障了,但只要还有一台设备是好的,就不用担心数据丢失. RAID 从「RAID 0」开始,到「RAID 6」为止,总共分为7类. 除了之前说的「RAID 1」…
经常有人会问「Linux和Unix有什么区别?」,「Linux就是Unix吗?」. 回答一般都是「Linux是仿照Unix而开发的OS」,「Linux和Unix相似但不是一种OS」之类的. 关于「Linux和Unix」,这其中还有些故事. 首先,「Unix」是1970年左右由美国AT&T公司的贝尔实验室开发,并将开发推进下去而形成的OS. 现在,「Unix」这个商标由The Open Group所拥有,因此可以说「Linux不是Unix」. 另一方面,还有一个「Linux不是Unix」的理由.1…