無標題文檔

截图有时候能勾起些回忆

今天周末,我把我的移动硬盘带到公司来打算整理下我的文件。无意间当整理我的图片目录的时候发现「尘封」已久的一些系统截图。

这些可以说都是我使用计算机的见证。由于截图众多,我精选了其中的几张有趣的,和大家分享一下。

https://friable.rocks/_/2007_11_10/1194688388.gif

首先是控制台。谁说 Linux 的控制台是黑底白字非常死板的?有了 Bootsplash ,在控制台上可以任意的加上彩色的背景。

https://friable.rocks/_/2007_11_10/1194688347.gif

看来上面的这张图相信大家知道我为什么取名叫 feelinglucky -「手气不错」了吧。是的,当时我运气不错,因为我的老机(MMX 166)由于硬件老旧,所以内核一下子就找到了。我记得当时同寝室的哥们被我气得半死,呵呵。

https://friable.rocks/_/2007_11_10/1194688414.gif

Linux 下我还是喜欢使用 VIM 编写程序,这已经成为我的信仰了(请允许我这样说)。可能你会看见控制台的字体非常奇怪。在 Slackware Linux 下,编辑 /etc/rc.d/rc.fonts 就可以在 Framebuffer 控制台下显示自己想要的字体了。

https://friable.rocks/_/2007_11_10/1194688426.gif

对于中文的支持内核级别的当然是使用 UNICON 了,这个是 TurboLinux 的一个项目。已经很久没有关注这个项目来,自工作了以后我发现我很少「折腾」 Linux 了。我还依稀的记得为了同时打上 UNICON 和 Bootsplash 补丁我 Hack 了不少的时间(当时的 Linux 版本号我记得是 2.4.22)。

https://friable.rocks/_/2007_11_10/1194688442.gif

相信大家还是喜欢 GUI 界面吧,上面这张是 Fvwm 窗口管理器 的截图。我开了一个 xclock 用来显示当前时间,还有一个系统监视工具(名字我一时给忘记了)。界面虽然简单,但是我绑定了很多的快捷键,所以非常好用。

https://friable.rocks/_/2007_11_10/1194688459.gif

工作和娱乐是两不误的。 XMMS 可以说就是我 Linux 下的 Winamp。至于 VIM,它走到哪里都可以用,哪怕是在火星。这图中还有一个叫 MRXVT 的控制台终端,看得出它的亮点就是多标签页吧。

https://friable.rocks/_/2007_11_10/1194688476.gif

除了 FVWM 以外,我偶尔也会使用一下 WindowMaker ,不过这仅仅是换换胃口。截图上显示除了该死的 VIM 外还有几个 DockApp ,开启了一个终端用 MUTT 收信。还有一个 GIMP ,不过版本比较老了,这个是 GTK+ 版本的(起码是两年前的了)。

https://friable.rocks/_/2007_11_10/1194688494.gif

*ix 下可以用 Wine 模拟 Windows 应用程序,也可以用 VMWare 模拟一个虚拟机装一个 Windows 系统。上面的这张就比较有意思了,我是用了一个 DOSBox 模拟 TurboC 2.0 (相信学 C 语言的同学都不陌生)。

https://friable.rocks/_/2007_11_10/1194688508.jpg

生命有时候就在于「折腾」。我很庆幸大学四年的时光能学到很多的东西,在这里我要感谢那台早已淘汰的 MMX 166 笔记本。详细信息兄弟们可以 到这里看看

选择 PostgreSQL, MySQL, Oracle 数据库我之见

最近公司的项目选择了一个全新的数据库系统作为开发平台,我也正在努力的适应在此数据库下的开发是使用。对于很多用户(包括我们程序员)都对于选择何种数据库往往一头雾水。而我以前也经历过此阶段,下面我想谈谈我的看法。

由于本人只是使用过 PostgreSQL, MySQL, Oracle 这三种数据库。这三种数据库也非常有代表性,下面的讨论我只针对这三种数据库而言。有关其他的数据库请大家自行推敲。

版权问题

MySQL 和 PostgreSQL 都是开放的数据库系统。MySQL 的使用协议比较的复杂,从简单的方面看,它是基于 GPL 协议的(为 MySQL 的用户可以得到 MySQLAB 的支持,并使用 MySQL 协议)。PostgreSQL 系统是完全基于 BSD 协议的,这这一点它比 MySQL 更加的「自由」。

GPL 协议要求用户必须公开你修改以后的代码。而 BSD 协议则可以自由的用在商业用途上,无需任何的限制。

而 Oracle 是完全一个商业的系统。它的使用完全是需要付费的,并且不能修改、拷贝其代码和程序甚至文档。

成本

成本相对版权而言。按照上述三种的数据库系统,如果按照费用的计算来讲。Oracle 的支出是最高的,MySQL 相对来说所付的费用稍微少一点。PostgreSQL 则是完全免费的。

支持

对于数据库的后期技术支持是非常重要的。Oracle 数据库有由于是商业产品,所以他的支持自然非常的周到。按照国内的情况,MySQL 和 PostgreSQL 的支持基本上是依靠网络和社区。

吞吐性能

从技术的角度上将,由于三种数据库的应用对象不一样,所体现的性能并不相同。Oracle 适合中大型的系统开发和维护,性能适合海量数据的存储。而 MySQL 则是适合中小型的系统快速的开发和维护,PostgreSQL 则标榜自己是「功能最全的开源数据库系统」,性能自然不俗。

而我从我个人的使用经验来说,打一个形象的比方:Oracle 好比卡车、MySQL 好比皮卡、而 PostgreSQL 好比是客车。

稳定性

对于稳定性能来说,这三种数据库都可以适应 7×24 小时的考验。相对性能来说,我的个人经验是 Oracle 的稳定性是最好的,MySQL 其次,而 PostgreSQL 次之(相对而言,这三种数据库的稳定性都是很优秀的)。

总结

说道这里,你可能对于这三种数据库还是难以抉择。我的个人意见就是,按照实际的项目的需求、规模和成本考虑出发。

Oracle 是大中型项目的首选,而它的支出比较高。相对经济的替换方案是 PostgreSQL(但它需要更多的人工支出)。

对于中小型的项目,MySQL 则完全是可以胜任的。Lamp 系统在开源界的性能是有目共睹的。

而对于程序的开发来说,Oracle 常和 Java(JSP)搭配,MySQL 则一般和 PHP 搭配,PostgreSQL 则可以和多种程序链接。

附:

一家之言,仅作参考之用。下面我摘一下来自 searchoracle.com 的一则经典的回答

PostgreSQL, MySQL, Oracle or other? ===

> QUESTION POSED ON: 26 April 2002

Which should I choose: PostgreSQL, MySQL, Oracle or other? The application is not Web-based, and the database contains 50 tables with the biggest table containing 18 million rows (6GB total). The engine should have:

good backup/restore to/from file service # ability to lock at row level # fast inserting, updating posts

> EXPERT RESPONSE

Which database version do you select? That's a tough one. It all depends on a lot of different factors. You've listed a few factors, but not all of them. The biggest one is price. How much can you afford? Oracle will cost much more. And MySQL is free as long as you follow the GPL. You state that you want the ability to lock at the row level. Oracle is one of the best at this, but MySQL with InnoDB is making progress. You also stat that you want fast inserts and updates. For that, I'd go with Oracle. A properly configured Oracle database will run really nicely.

Other factors to consider are the expected number of concurrent users, the expected data growth, and that application. Like I said, there are lots of factors to consider. In these cases, it's not a bad idea to hire a consultant to help in your determination so that your company doesn't waste time and money.

我该选择 PostgreSQL, MySQL, Oracle 还是其他?(注:时间为 2002 年 4 月 26 日)

我的项目不是一个 Web 项目,数据库大概有 50 个表最大的可能包含了一千八百万条数据(大概有 6G 的数据)。我该选择什么数据库呢? PostgreSQL、MySQL、Oracle 还是其他?所需的要求必须包含:

良好的备份/恢复系统 # 具有行锁定功能(lock at row level) # 具有良好的性能

专家回答:

到底您该选择哪个系统?这个问题非常的难以回答。这是居于不同的需求而定的。您只是列出了一小部分的要求,并没有全部列出您到底需要什么。最大的问题可能是成本的问题。您的预计支出是多少呢?Oracle 可能需要您更多支出。MySQL 是基于 GPL 协议的,所以它的支出相对少些。您需要有行级锁定功能(lock at row level),我想 Oracle 是最好的权责,但是 MySQL 包含了 InnoDB 以后也具有此良好的性能(译注:自 MySQL 3.2 以后已经具有此功能了)。再次,您需要有良好的性能。老实说,我更倾向于 Oracle。具有良好配置以后的 Oracle 性能会让人非常的满意。

还有其他的需求就是有多少的用户使用您的数据库,数据库的增长幅度,还有就是其上的应用。想我上面所说的,需要考虑的因素有很多。我并不能完全决定您到底使用哪个数据库,我想您或许需要一个顾问评审您具体的应用了以后才可能最终决定下来,这并不需要很多的时间和投入。

这三种数据库近年的趋势图

https://friable.rocks/_/2007_10_29/1193654980.png

Slackware 的 INIT

这些天我一直在整理我以前翻译好的一些文档,并计划将其全部重新排版转换成 PDF 文档以便于保存。

这篇《Slackware 的 INIT》我翻译的时间比较早(当时我还真的是一个学生,呵呵)的一篇,它详细讨论了 Slackware 的运行级别以及启动的流程,推荐给大家看看。

下载地址(格式是 PDF 文档): https://friable.rocks/_/2007_11_12/1194862747.pdf

https://friable.rocks/_/2007_11_04/1194173036.pdf (旧版)

使用 Bootchart 分析 Linux 启动过程

LinuxSir 潜水的时候发现有一名叫 Bootchart 的程序可以分析系统启动的时间并生成图表。本人使用本机子做了一个测试,有很多的发现。

有关 Bootchart 的安装在这里不作复述。如需,请查看代码包中的 INSTALL 和 README 文件。

测试环境

本次的测试环境使用本人的 笔记本电脑(型号是 DELL L400) 。具体的硬件参数如下:

CPU 具体信息:

processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 8
model name    : Pentium III (Coppermine)
stepping    : 10
cpu MHz        : 696.982
cache size    : 256 KB
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 2
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse
bogomips    : 1389.36

内存以及启动好了以后的占用量:

             total       used       free     shared    buffers     cached
Mem:        126360     104708      21652          0      11812      55560
-/+ buffers/cache:      37336      89024
Swap:       393584          0     393584

主板等相关的配置信息:

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:08.0 Multimedia audio controller: Cirrus Logic Crystal CS4281 PCI Audio (rev 01)
00:0a.0 CardBus bridge: Texas Instruments PCI1410 PC card Cardbus Controller (rev 01)
00:0d.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 78)
00:10.0 Communication controller: Agere Systems WinModem 56k (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64)

由于本次测试主要的目的是检查启动过程中是什么程序运行最慢,并如何的解决。所以此次的内核我采用 Slackware 11.0 原版的 bare.i 内核,并加载硬件必要的驱动。

第一部分测试

首先我启动日常所需要用到的所有程序和服务。更具如下图所示,总体从开机(引导内核)到控制台的时间刚好为一分钟(time: 1:00):

https://friable.rocks/_/2007_10_27/1193416091.gif

点击保存大图

仔细分析了下相关的服务,发现系统启动运行期间有两个位置 CPU 的负载非常的大。我看了下,主要是检测 usb.agent 程序和 fsck 程序在运行,并且磁盘的 IO 也比较的频繁。根据图示,此段的时间持续了 10s (时间点是在 10s - 18s 之间)。

第二个高峰是在 42s 上下,是系统正在启动服务器阶段。此时 httpd(Apache)和 MySQL 正在启动运行。

第二部分测试

第二部分的测试我关闭了 Apache 和 MySQL 等服务的运行,发现系统的启动时间只用了 46s。主要的系统滞留时间主要还是第一项测试的 fsck 阶段和 ldconfig 程序。

https://friable.rocks/_/2007_10_27/1193416058.gif

点击保存大图

总结

Bootchart 可以非常直观的分析出系统启动过程的状态。在本机中,可以看出系统的主要瓶颈是磁盘的 IO 和 CPU 的性能。Linux 内核本身对内存的要求并不高,而相应的应用服务却需要一定的硬件资源。建议根据相应的服务「对症下药」。

同时这也是可以优化的。比如内核是没有经过重新编译的、 fsck 也可以在每次开机的过程中设置成关闭,以提高启动速度。

最后,启动速度的快慢并不代表启动以后的运行速度的快慢。Linux 安装于服务器上时,对于系统启动的速度并不是一个非常严格的量,毕竟服务器是应用为主。过份的优化可能会导致不必要的麻烦。

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 其实无所谓叫什么名字,作为码农知道取名是件很难的事情。最后想到的这个名字,其实都没啥特别的含义,系统默认的文件名而已。

作为八零后,自认为还仅存点傲娇式的幽默感,以及对平淡生活的追求和向往。 为了免得对号入座和不必要的麻烦,声明本站点所持观点仅代表个人意见,不代表自己所服务公司的立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQGdyYWNlY29kZS5jb20K | base64 -d`

文章

项目