/*
* File : src\makeimg\makeimg.c
* Purpose : This tools is used to make a runable image on bochs virtual disk
* Date : 2004.8.13
*
*/
#include #include #include void die(char * str) { fprintf(stderr,“%s\n”,str); exit(1); } void usage(void) { die(“Usage: build bootsect setup system [rootdev] [> image]”); } int main(int argc, char ** argv) { unsigned char pBuf[2048]; int i; // Open the bootsect.bin and read them into a buffer FILE * fpsrc = fopen(“bootsect.bin”, “rb”); if (fpsrc == 0) { die(“Can not open bootsect.bin”); } // read file if (fread(pBuf, 512, 1, fpsrc) != 1) { fclose(fpsrc); die(“Can not read the bootsect.bin”); } // close file fclose(fpsrc); // open the image to write FILE * fp = NULL; if (argc == 1) // default floopy { fp = fopen(“..\\emu\\a.img”, “wb”); } else { fp = fopen(“..\\emu\\c.img”, “wb”); } if (fp == 0) { die(“Can not open bootsect.bin”); } // seek first rewind(fp); if (fwrite(pBuf, 512, 1, fp) != 1) { fclose(fp); die(“can not write file”); } // open the setup.bin fpsrc = fopen(“setup.bin”, “rb”); if (fpsrc == 0) { die(“Can not open setup.bin”); } // read file if (fread(pBuf, 2048, 1, fpsrc) != 1) { fclose(fpsrc); die(“Can not read the setup.bin”); } // close file fclose(fpsrc); if (fwrite(pBuf, 2048, 1, fp) != 1) { fclose(fp); die(“can not write file”); } // fit the buffer memset(pBuf, 0, 512); if (argc == 1) // default, write floopy { for (i = 0; i < 2875; i++) { fwrite(pBuf, 512, 1, fp); fflush(fp); } } else // hard drive { for (i = 0; i < 20155; i++) { fwrite(pBuf, 512, 1, fp); fflush(fp); } } fclose(fp); printf(“image created\n”); &nb sp; return 0; } 各位观众不用读,上面的代码没有多大意思。只是为了试一下从网上下载的这个小程序。以前一直就觉得blogcn的日志格式控制太差,好好的排版到了这里就变成了Plain text,那个可视化编辑又非常慢,不稳定,还麻烦,很早就想自己动手写一个小程序,可以把代码格式化成UBB或者HTML,这样发到论坛上也不会丢失格式。 昨天在网上闲逛,发现了一个不错的小工具,“老罗代码着色器”<img src=http://style.blogcn.com/blogcnpage/style/images/images/aurl.gif align=absbottom hspace=2 alt='::URL::' border=0>http://www.luocong.com/myworks/zipped/SCC/SCC.zip作者似乎是个比我大不了几岁的程序员哥哥。程序支持C, C++, asm,对我来说正合适。省了我自己Coding了。 想想自己,其实平时也有不少自认为好的想法和创意,但是被付诸实践的少之又少。实在是精力有限,这就不禁又让我想起了现代的软件工程。 软件产业发展了几十年了,比尔盖茨和保罗艾伦两个人写DOS,丹尼斯里奇和肯汤姆普森两个人开发UNIX的时代已经一去不复返了,软件变得越来越复杂,越来越庞大,单单凭借一个人的力量,越来越难以完成高质量的软件。软件的个人英雄主义时代慢慢的结束了。 或许这会让一些技术崇拜者觉得伤感(我也有点),但是往长远宏观的角度来看,这说明计算机软件作为一个产业正在日趋走向成熟。那第二次工业革命飞机制造做个类比,莱特兄弟当年靠两个人的力量就可以制作出一架简易的飞机,但是现在的空中客车,747等等,岂是一两个公司可以单独制作得出来的,记得小时候在政治书上看到的资料:一架波音需要很多公司协同分工合作。当然,今天的两个机械高手仍然可以合作制作出简单的飞机,但是这种“飞机”不会有任何的市场价值。莱特和盖茨都可以算得上是一个产业的奠基人。以机械制造产业为鉴,我觉得软件产业跟机械制造业走的是同样的一条路线。大胆的猜一下,信息产业真的成熟之后,程序员们就应当而且必然会像机械制造业的流水线装配工人一样,不会也不应该享受今天的高薪。真正有价值的,是那些设计新型飞机的人。 还有一个比较“反动”的想法,阻碍今天的软件产业发展的一个重要因素,今天的程序员们的素质都太高了。本科生和研究生占了这个群体的绝大多数。有太多的人都是有文化有理想有抱负有远见的有志青年。工作之后急着实现自己的远大理想,而现实往往是在公司里面的工作离他们的志向相差很远,这样就导致了一些程序员怨天尤人,导致了这个行业跳槽率居高不下。而我觉得,对产业而言,一个软件工程师,最基本的一点,就是“踏实”二字。随着技术的发展和经验的成熟,软件产业的分工可以得到进一步的完善,这样就有望可以降低软件工程师的知识要求,本科生干的工作能不能让专科生干,没有多少文化的农民工经过一段培训能不能干软件。虽然现在提起来比较可笑,但是与机械制造业的技工相比,不是没有可能。当一个产业的人员比例呈现金子塔状,那么这个产业就可以日趋稳定了。 这样,才可以代码着色,给软件着色,给信息产业着色。