Linux下可以替换运行中的程序么?

今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”。结果朋友发来一个执行结果:(test正在运行中)

# cp test2 test
cp: cannot create regular file `test': Text file busy

看起来是程序被占用,无法覆盖。于是自己又再做了几个实验:

(1)先rm删除正在运行的test,然后cp test2 test就没有错误了。
(2)先mv改名正在运行的test,然后cp test2 test也没有问题。

继续阅读Linux下可以替换运行中的程序么?

Symbian OS v9.5 —— 效率与性能的结合

Symbian OS v9.5,这是一个有违Symbian版本传统的版本。过往的Symbian主版本中,次版本号也最多只发展到2,而Symbian 9却出现了9.0、9.1、9.2、9.3和9.5。就9.5所带来的变化而言,足堪以10.0的版本号,但Symbian似乎对9系列越来越有信心,以至于新版本仍然留念于9。

Symbian 9.5的最大改进是性能。通过引入多种桌面操作系统中流行的性能优化技术,Symbian OS的性能得以大幅度的改善,因而在不久的将来,我们也必将看到越来越多的低端手机开始采用Symbian OS。

  •  按需载入页面(Demand Paging)。想必大家早已对智能手机的系统启动速度和应用程序启动速度深有体会了,“按需载入页面”可以明显改善这一用户体验。在首次启动时仅仅载入必须的代码段,其它部分延后载入直到有页面访问请求。在Linux下,这一技术早已得到广泛的应用,内核通过异常机制捕获到“Page Fault”时再加载相应的页面。
  • 文件缓存(File Server Caching)。在桌面系统中早已司空见惯的一项重要性能优化技术,直到此时才引入Symbian,显然是有其特殊的历史原因。在桌面系统中,内部和外部存储的性能往往有天壤之别,所以“缓存”在很早的阶段便被引入操作系统和应用程序,以提升外部存储的访问性能。但初期的手机系统中,内部存储和外部存储(对手机而言,称为“内部持久存储”更恰当)的性能并没有那么大的差别,所以“缓存”可能并不能带来明显的性能提升,甚至反而浪费了CPU的运算时间。Symbian 9.5所引入的文件缓存技术也仅仅是一个面向应用的可选接口,主要用于“数据存取敏感”型的应用(对它们来说,微小的性能提升也能积少成多)和“存储频繁”的应用(延长Flash的寿命)。
  • 内存碎片整理(RAM Defragmentation)。也许你会很惊讶于Symbian作为一个支持分页的操作系统竟然长久以来都没有提供内存碎片整理功能。得益于Symbian本身优化的内存管理和高度受限的内存使用原则,内存碎片其实并不会对手机系统的性能和内存使用率造成明显的影响,而自动的内存整理反而会浪费宝贵的电池能量。事实上,Symbian确实提供了手动的内存“压缩”功能(可以看作是一个简化版的内存整理),不过只能通过第三方工具软件触发。Symbian 9.5之所以引入“自动”的内存碎片整理,一个重要的促成原因是:目前手机终端所采用的内存容量变得越来越大,内存的能耗已经不容忽视。在新版本中,借助内存碎片整理,连续的空闲物理内存块可以被关闭以节约能耗,当然它也同时提供了其它在主流操作系统中所体现的改进:更高效的内存访问和更大的空闲可用内存。

(待续……)