博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

linux kernel

热爱linux kernel 的学习, 才能真正学习到真正的操作系统技术。 还要配合学习 系统结构和 微机原理才行啊 欢迎访问我的旧blog; zhanglinbao.blogchina.com 里面的GDB的东西值得一看. 本人的blog 多半都是自己学习记录和文档, 如有转载,请指明出处,并mail bob_zhang2004@163.com 告知转载地址 。
kernelChina.cublog.cn


求职:Linux kernel/文件系统 开发职位
求职:BSP开发(linux kernel/文件系统/u-boot开发)
要求工作地点:北京
目前居住地:北京
目前工作单位性质:外企
英语:熟练口语,熟练阅读
 
求职单位特点:必须是研发中心,研发实力强。嵌入式开发,linux kernel/driver 方面的。
联系mail: bob.zhang2004@gmail.com  (注明看到我的blog了)
 
 
离职原因:我觉得我更适合到大的研发中心(以前就是在研发中心),我觉得这对于程序员的发展很重要。
 

发表于: 2006-08-07 ,修改于: 2008-09-02 00:35,已浏览3807次,有评论30条 推荐 投诉


网友评论
内容:
由于工作的需要,我们的NAS 产品,需要支持用户插入的的USB harddisk , 目前支持的分区是 ext2/ext3 , XFS , VFAT 和NTFS 。 但是由于目前kernel里面的ntfs driver 只是支持读, 对于写操作是很危险的。 我们目前也是购买的 Paragon 的ntfs driver 来支持ntfs 分区 ,但是由于是商业版本,没有源码,所以需要我在open source的基础修改和debug 。我们决定放弃Paragon ntfs driver 。 

目前发现 一个open source :ntfs-3g (www.ntfs-3g.org) 可以很好的支持 read/write 的功能。  由于ntfs-3g 是实现在用户空间的,而不像大多数的文件系统是实现在kernel空间的。 所以一旦ntfs 出现了什么问题, 最多就是ntfs-3g 的进程被杀死, 不会引起整个系统hang掉。 


目前ntfs-3g 还是Beta版(最新是20061030发布的) ,尽管如此, ntfs-3g性能还是非常好的。 

但是由于作者没有考虑到ARM上的应用。 所以 如果你直接从网站上下载 ,是不能在ARM上进行工作的。这也正是我目前做的工作,port到ARM 。 目前我已经被加入到 ntfs-3g 的 credits里面去了。 

目前我已经提交了 endian fixed的patch ,已经在我的IXP425上跑起来,没有任何问题。 

关于我的贡献,可以查看:  ntfs-3g 的cvs 中的 libntfs 的提交者zhanglinbao ,就是在下了。 
bob_zhang2004评论于:2006-11-11 16:06:45 (211.103.58.★)
内容:
问题的根源在于 NTFS 文件系统在磁盘上存储是Little endian , 而X86 也是little endian 的, 所以ntfs-3g 的作者在x86上测试一点问题没有(与作者mail时, 才知道作者时业余时间搞ntfs-3g的,根本没有ARM板子, 所以也就没有在ARM上测试过)。在ARM上平台上运行, 必须进行endian的转换, 否则 就会出现一些莫名其妙的问题: 
1>一开始的时候不能mount , 这个bug时由于 ntfs-3g 要用到FUSE这个open source (实现在kernel里面,里面的cache操作有个bug )
2>不能创建目录 。 (因为有一处endian转换没有作, 所以无法在 ntfs 根目录下面创建目录和文件, 但是可以在已经存在的目录下面创建目录和文件 。 

3>可以在根目录下面创建文件了。  但是无法copy 超过36个文件的目录。 
这个问题不是偶然的,因为NTFS本身对于多个文件或者时目录, 多的部分时放在index allocation里面的。 所以才会有36的问题。 问题时在index allocation相关的代码里面没有作endian转换。 才产生了这个问题。  

4>问题同上面类似, 就是一旦上面出错以后, 你就无法在这个目录下面继续创建文件和目录, 会有operation not supported的错误。 这个也是由于endian没有转换的错误,导致 B+树有没有,深度超过了32 ,

目前ntfs-3g 在ARM上已经OK 。 经过的测试:
1》Bonnie++ -s0  
2>可以在某个目录下面创建40000个file 或者目录。 
3>tar xvf  linux-2.6.17.8.tar 完全没有问题。 
4> 可以和samba 配合,但是目前有中文名的问题。 
5>目前还是无法通过Benchmark和wintrhax的测试(利用samba把ntfs的挂装点共享出来,mount到windows上的一个盘,进行反复文件copy的测试) 


 现在我已经加入到mailing list中去, 和作者保持了联系。 我就负责ARM上的debug和调试。 

我的patch已经上传 , 只要你从CVS上 checkout 出来最新版的, 应该可以在ixp425上正常运行(当然需要修改一行 fuse的代码) 。 
bob_zhang2004评论于:2006-11-11 16:23:07 (211.103.58.★)
内容:
对了 ,忘记了说的我的板子配置:

Xscale( ixp425)
Memory  32M  很好吧 
CPU : 266

在这样的条件下, 对于ntfs-3g也是考验, 如果直接在命令行下 执行 
显示一个包含了 40000个file的目录, 还是需要2分钟的。但是如果要通过samba 现实, 时间更长。 
目前我正在积极的debug ,希望可以enhance ntfs-3g的算法, 可以提高ntfs-3g 的速度。 

更多的信息, 可以 查阅www.ntfs-3g.org  和  www.linux-ntfs.org 和相关的mailing list 信息。 

希望有更多的人可以加入进来。 
bob_zhang评论于:2006-11-11 16:29:11 (211.103.58.★)
内容:
现在板子上的内存实在太少了, 才32M , 所以不能mount太多的NTFS分区,只mount一个分区的时候,狠稳定, 但是超过2个, 就不稳定,kernel会杀死另外几个ntfs-3g进程, 只会留一个ntfs-3g进程。 

所以现在正在看 如何让ntfs-3g少占点内存, 以及看内存管理子系统的部分。 搞清楚kernel的部分再说吧。 
bob_zhang2004 评论于:2006-12-14 09:47:02 (222.92.90.★)
内容:
ntfs-3g 终于过了Beta版本了, 现在已经是1.0版本了, 真是为它高兴, 毕竟自己也尽了一点绵薄之力。 

希望大家可以继续关注ntfs-3g 
bob_zhang2004 评论于:2007-02-27 11:44:15 (222.92.90.★)
内容:
有需要把ntfs-3g porting到ARM平台上来的朋友, 可以联系我 , 也许我可以帮助你,少走一点弯路, 当然是免费的了。 
我也好久没有参与这个项目了, 但是希望更多的人参与进去, 真的不错的项目, 代码写的好 ,对于理解文件系统的实质和一些实际经验的培养非常有好处的。 当然你要有耐心才行啊。 
bob_zhang2004 评论于:2007-04-22 15:39:03 (211.103.59.★)
内容:
如果你已经在这里看到了我的简历 , 请不要盲目的要给电话面试 , 我请求您仔细的看看我的blog , 因为它很能反映我的工作经验,您就可以确定我是否是您需要的人才,然后再根我联络 , 所以务必仔细阅读我的blog 。 
bob_zhang2004 评论于:2007-04-23 23:26:05 (211.103.59.★)
内容:
下面是我的关于用libiconv 替换locale的patch , mailing list上面不知道为什么都乱掉了, 我从我自己电脑的outlook上面找出来的, 供我未来的东家参考, 

Hello Szaka, 

 

    I found that ntfs-3g support i18n very well by using Locale ,it is good on PC ,because on general PC, our locale can works normal for linux distribution, for example ,Redhat.xx 

 

    But for embeded development , general board has limited resources ,such as memory ,CPU speed . 

 

And I tried to build my locale enviroment on my ARM board , I find that that is a complex thing and so hard to finish . So I supply a easy method to support simple i18n need .

 

Maybe ,this will give other arm developers some helps 

If it can run on your ARM , I will be very happy .

 

I modified libntfs/unistr.c  ==> ntfs_mbstoucs() and ntfs_ucstombs() 

Note :I retain the interface not changed , I only changed its implementation 

 

I tested it OK on my ARM , it should work on PC(I not tested)
 

prerequisite :

you should download libiconv library from GNU source , I used the version of 1.8 , Now its version changed to 1.11 

you only need to coross compile it and copy libiconv.so.0.0 into your /lib/  on your ARM board . 

 

/* Author is Bob Zhang 
 * Written time : 20061117
 * You can copy it anywhere if you like 
 * I think ,it should be of part of ntfs-3g 
 */

#if defined(HAVE_USE_ICONV)
#include <wchar.h>
#include <iconv.h>
#define SIMPLE_CN  "CP936"     //Chinsese Simple , if you are of others language , you can modify it 

                                //you can query it by using command "iconv --list |grep "your language"
#define UTF_CHARSET  "WCHAR_T"  //I found that WCHAR_T is OK , I can't converted into "UTF-8" ,I don't know reason 
#endif


 
 
#if defined(HAVE_USE_ICONV)
 
int ntfs_mbstoucs(const char *ins, ntfschar **outs, int outs_len)
{
 //defined two varibles :unicode_wchar 和 unicode_ntfschar
 
 ntfschar *unicode_ntfschar = NULL;
 wchar_t *unicode_wchar = NULL; //later will malloc 
 char *iconv_char = NULL;
 int insize = strlen(ins);
 int ucs_len =0;  //should = outs_len
 int ins_len = 0;
 int ucs_bytes_len = 0;
 iconv_t cd;
 int i=0;
 int nconv = 0;
 int written_unicode = 0;
 char *tt_char = NULL;
 mbstate_t mbstate;
 const char *s = ins;
 ucs_len = outs_len;
 unicode_ntfschar = *outs;
 ucs_bytes_len = outs_len ;
 
 printf("insize=%d\n",insize);
 
 //ins_len = ((insize + 4) & ~3) /4 + 1; 
 
 ins_len = insize;
 printf("ins_len = %d\n",ins_len);
 
 /* only test the length of unicode 
 memset(&mbstate, 0, sizeof(mbstate));
 setlocale(LC_ALL,"zh_CN.GB2312");
 ins_len = mbsrtowcs(NULL, (const char **)&ins, 0, &mbstate);//
 */
 
 printf("ins_len = %d\n",ins_len);
 
 ins_len++;  

 if( ! unicode_ntfschar)
 {
  ucs_len = ins_len;  
  
  unicode_ntfschar = (ntfschar *)malloc(ucs_len * sizeof(ntfschar));
  if(unicode_ntfschar == NULL)
   return -1;  
  *outs = unicode_ntfschar ; 
  ucs_bytes_len = ucs_len * sizeof(wchar_t); 
 }
 
 printf("sizeof(wchar_t) = %d\n",sizeof(wchar_t));
 unicode_wchar = (wchar_t *)malloc(ucs_len * sizeof(wchar_t));
 if(unicode_wchar == NULL)
 {
  printf("Can't malloc wchar \n");
  return -1;
 }
 
 iconv_char = (char *)unicode_wchar ; 
 tt_char = iconv_char ;
 
 
   cd = libiconv_open(UTF_CHARSET,SIMPLE_CN);  //Chinse to unicode
   if (cd == (iconv_t) -1) {
  /* Something went wrong.  */
  if (errno == EINVAL)
   printf ("conversion from '%s' to '%s' not available",SIMPLE_CN,UTF_CHARSET);
  else
   perror ("iconv_open");
 
  /* Terminate the output string.  */
  *(*outs) = cpu_to_le16(L'\0');
  return -1;
 }
 
 printf("before iconv_char address =%p\n",iconv_char);
 nconv = libiconv(cd, (char **)&ins, &insize, &iconv_char, &ucs_bytes_len); //cd (conversion descriptor )
 
 if (nconv == (size_t) -1) {
          if (errno == EINVAL) {
            perror("mbstoucs: iconv error");
            return -1;
          }else {
            perror("mbstoucs: iconv error not EINVAL  ");
            return -1;
          }
      }
      printf("after iconv() ,  iconv_char address =%p\n",iconv_char);
      printf("tt_char =%ls\n",(wchar_t *)tt_char);
      /* Terminate the output string.  */
      *((wchar_t *) iconv_char) = cpu_to_le16(L'\0');
      printf("chinese:%ls\n",unicode_wchar);
      
  written_unicode = (wchar_t *)iconv_char - unicode_wchar ;
   
  for(i=0;i<written_unicode;i++)
  {
  //assign and endian conversion 
   unicode_ntfschar[i] = cpu_to_le16(unicode_wchar[i]);
 }
  unicode_ntfschar[i] = cpu_to_le16(L'\0');
  
 if (libiconv_close (cd) != 0)
  perror ("iconv_close");
   
 return written_unicode;  //don't include '\0'
}
 
    
#endif
 
------------------------------------------
 
 
 
#if defined(HAVE_USE_ICONV)
 
int ntfs_ucstombs(const ntfschar *ins, const int ins_len, char **outs,
  int outs_len)
{
 
 wchar_t *unicode_wchar = NULL; //later will malloc 
 char *mbs = *outs; //
 char *mbs_start = NULL;
 int mbs_len ;
 char *iconv_char = NULL;
 iconv_t cd;
 
 int i=0;
 int nconv = 0;
 int written_mbs = 0; 
 int ucs_len = 0;
 int ins_bytes_len = 0;
 
 ucs_len  = ins_len+1;  //ucs_len is used for malloc wchar data
 mbs_len = outs_len;
 
 printf("ucs_len = %d\n",ucs_len);
 
 ins_bytes_len = ins_len*sizeof(wchar_t);
 if ( mbs==NULL )
 {
  mbs_len = (ins_len+1) * sizeof(wchar_t);
  mbs=(char *)malloc(mbs_len*sizeof(char));
  if(!mbs)
  {
   return -1;
  }
  *outs = mbs;
 } 
 
 unicode_wchar = (wchar_t *)malloc(ucs_len * sizeof(wchar_t));
 if(unicode_wchar == NULL )
 {
  printf("can't malloc unicode_wchar \n");
  *(*outs) = '\0';
  return -1;
 }
 
 for(i=0;i<ins_len;i++)
 {
    unicode_wchar[i] = (wchar_t)le16_to_cpu(ins[i]); 
 }
 //bob
 unicode_wchar[i] = (wchar_t)(L'\0');  //
 
 cd = libiconv_open(SIMPLE_CN,UTF_CHARSET);  //Chinse to unicode
   if (cd == (iconv_t) -1) {
  /* Something went wrong.  */
  if (errno == EINVAL)
   printf ("conversion from '%s' to '%s'  not available",UTF_CHARSET,SIMPLE_CN);
  else
   perror ("libiconv_open");
 
  /* Terminate the output string.  */
  *(*outs) = '\0';
  return -1;
 }
 
 mbs_start = mbs;  
 
 nconv = libiconv(cd, (char **)&unicode_wchar, &ins_bytes_len , &mbs, &mbs_len); //cd (conversion descriptor )
 
 if (nconv == (size_t) -1) {
          if (errno == EINVAL) {
            perror("ucstombs :iconv error");
            
          }else{
            perror("ucstombs :iconv error not EINVAL  "); 
          }
          *(*outs) = '\0';
          return -1;
      }
      
      *mbs = '\0';
      if (libiconv_close (cd) != 0)
            perror ("iconv_close");
 
      return mbs - mbs_start;   //
      
}
 
#endif
 
bob_zhang2004 评论于:2007-04-24 10:40:35 (222.92.90.★)
内容:
有需要这个patch的朋友, 可以mail to me :bob_zhang2004@163.com 
免费。 

如果需要ntfs支持的公司也可找我, 提供有偿服务。 或者干脆雇佣我那就更好了, 这样开发的结果始终会属于opensource ,而且对公司又有力。 
bob_zhang2004 评论于:2007-04-24 10:43:57 (222.92.90.★)
内容:
向你学习啊
看样子我还有好长的路要走!!
本站网友评论于:2007-05-18 21:04:03 (124.17.17.★)
内容:
羡慕中,啥时候我也能牛一把
cnjnlx 评论于:2007-08-21 10:47:28 (60.216.2.★)
内容:
非常赞同你的说法,我觉得要把一样东西弄懂的确要花出很多的时间,尤其是要忍受很多人看来的孤独。

我对技术算是有些痴迷的,最近看NetBSD的代码,呵呵,本身也是做嵌入式开发的,底层软件和驱动,所以比较能理解一些话。

希望你能找到满意的工作,呵呵。
abutter 评论于:2007-09-09 20:19:40 (123.253.144.★)
内容:
to abutter,
终于找到知己了,好像找到了组织一样,呵呵 。 
做程序员确实是辛苦的, 而且是孤独的, 你既要忍受生活上的孤独, 又要忍受没有同道好友的孤独 , 有些东西要是一群人研究是比较快乐的,所以我喜欢opensource 的开发模式, 怀念加入ntfs-3g的日子, 大家相互鼓励,一起探讨, 即使大家来自世界各地 , 都不认识。 

再次感谢
bob_zhang2004 评论于:2007-09-10 09:46:07 (58.211.114.★)
内容:
我觉得是这样的,能力强的人多少都会很自信,稍微不注意就可能变成了自傲,有些脾气,听不进去别人的话,但是在自己没有成为头之前,还是低调一点好,自己的能力让别人去说。

所以,我觉得你可以考虑一下自己的情况,多想想自己的缺点,其实技术也只是若干能力中的一个,同时,在中国似乎没有什么公司需要特别强技术的,可悲啊。
abutter 评论于:2007-09-14 13:15:50 (202.96.192.★)
内容:
围棋还真的不会下, 有机找人学学。 
bob_zhang2004 评论于:2007-09-14 22:41:55 (211.103.75.★)
内容:
其实并不是待遇要的高的问题,上海的好机会多的是,而是你的态度似乎需要谦恭一点。

我觉得你对很自信,我也相信你的实力,但是你要让别人感觉舒服,尤其是HR和猎头,保持一点低调是需要的。

其他人的评论你可以根据自己的判断加以取舍,多思考再回答,希望你能找到满意的职位。

Blog作者的回复:
超级感谢了。 呵呵。 

我是很低调的人啊, 不知道我哪里表达的有问题 。

也总有一些无聊的人对我攻击, 不过他们的攻击我是不会删除的, 我都会予以驳回!

正所谓“君子坦荡荡,小人常戚戚”

abutter 评论于:2007-09-30 08:51:54 (202.96.192.★)
内容:
最近正在搞开发, porting 在即, 也正是我感兴趣的, 也许换工作就得等下一轮了。 毕竟我的终极目标就是要找我感兴趣的工作。 

如果您觉得我适合您的口味和公司的需要,就联系我。 
bob_zhang2004 评论于:2007-11-19 12:51:43 (58.211.114.★)
内容:
博主的确挺有才的,这点相信大家有目共睹

建议心宽一点、低调一点,效果可能会更好:)
本站网友评论于:2007-11-19 16:34:25 (219.134.255.★)
内容:
高手 , 满有个性的一个高手 , 羡慕您拥有的学识 , 也更喜欢您拥有的个性 。
鄙人也是07的 , 呵呵 , 看上您了 , 要是跟您后面学点东西 , 那我就......
coolias 评论于:2007-11-21 14:15:48 (218.3.188.★)
内容:
我也不是什么高人, 现在汇编正困扰着我呢。  。。。。
bob_zhang2004 评论于:2007-11-22 12:55:37 (58.211.114.★)
内容:
今天是感恩节, 感谢所有帮助过我的人! 

再告诉大家一个好消息, 我老婆通过司法考试了, 可以作律师了, 呵呵。 让大家和我一起分享这个惊天喜讯 , 考了三年了 ,真难考! 终于功夫不负有心人!。 哈哈。 

所以汇编也如此, 努力! 还好 ,才看了5天。 接着看! 
bob_zhang2004 评论于:2007-11-23 00:01:00 (211.103.74.★)
内容:
还是回北京比较好,  在南方呆的太久了, 还是北方好,  我想家里的暖气真暖或啊,  苏州的冬天和夏天是在是不好过, 太冷和太热了,不是天堂。 
bob_zhang2004 评论于:2007-12-15 13:06:08 (211.103.73.★)
内容:
祝你早日找到满意的工作。

PS:看得出bob兄是个性情中人 :)

Blog作者的回复:
谢谢了。 呵呵, 你找到了吗? 我现在想去北京发展了。 已经在 linuxforum.net 上发帖了。

daemeon 评论于:2007-12-15 16:57:43 (220.167.46.★)
内容:
眼界决定个人的不断进步。像bob兄的一些经历,我也曾经有过,在这里和大家交流。技术上的进步,是一个台阶到一个台阶,但是这种台阶的上升,对于我们普通人来说,需要机遇或者环境的改变和影响。弄懂一个东西,突然觉得欣欣然,似乎眼前一片开阔,碰到新的问题,去解决更高层次的问题,发现自己还是懂得很少。这其中道理需要每个人慢慢体会,不可言。我研二的时候,也曾经porting过一个全新的ARM CPU,类似bob兄做的工作,CPU级porting非板级,花了很多时间解决问题,还做了ARM的模拟器去调试kernel,当时也觉得很有成就感,觉得ARM和内核不过如此。但是后来工作到了一个大的外企,发现自己做的这些确实不值得一提,做一个全新体系结构的linux移植,去分析C library, 编译器及CPU内部可能的bug,决定哪些bug应该fix,那些bug应该workaround,决定这些bug是在内核,编译器,还是C library中解决,觉得自己到了一个新的眼界,需要学习的东西还是很多。而后来fix更多的bug,实现更多的功能,考虑的是如何fix这个bug才有利于软件的维护,什么样的架构可以避免bug的产生。在代码注释中很多要写,"FIXME later" ,有时候workaround这个bug比fix它更有利。以前更多的时间是发现一个bug的root cause。 现在的更多时间是考虑如何更好的fix一个bug。而后来,自己去设计一些软件,感觉眼界又上了一个台阶,通过考虑到以前fix的一些非常复杂的bug,去深入的考虑软件架构的设计,来避免bug,提供一种可维护性,更多的参杂了一些软件工程方面的思考。 总而言之,我理解bob兄在目前的公司大概技术上已经很难进步,或者眼界很难再提高一步,毕竟我们都是普通人。需要一个新的环境。这里我有些建议,bob兄不要见怪。如果你能再增强一些体系结构,编译器和调试器,算法及软件工程方面的理解,可能会有新的眼界。去一个外企有时也是需要碰运气的,另外也需要友好的心态,给自己定位。呵呵,做技术的很多人有些文人相轻的臭习惯,这也是可以理解的。

Blog作者的回复:
真的非常感谢您的留言, 看到您的经历,仿佛看到了自己的未来 , 对于porting kernel和u-boot对于我自己来说是一个非常好的机会和锻炼, 但是对于目前的公司来说, 软件部规模实在太小, 而且管理也很不完善 , 很难有太大的发展(连台湾的技术支持都没有) , 
谢谢了, 我一定会继续努力的, 

下一个努力的方向其实还是回归kernel 搞一些真正的开发, 比如原来修改的 ntfs-3g 就非常有意义 , 这才是真正的os的一部分 。  对于 porting u-boot 来说, 其实是对硬件要求很高的。 

当然现在想想, 如果能在硬件上能有很大的进步也是很不错的。 当然慢慢对arm也就越来越了解了。 

眼界决定未来啊, 
进步与否, 也取决于身边的人啊, 如果身边有一个搞kernel ,10年的人, 自己的进步也是很快的, 现在觉得自己在kernel有瓶颈 , 需要一个专业高kernel的机会和 好的开发环境, 比如Intel的OTC就很不错, 是我最向往的了。 

还得继续努力才能去Intel OTC啊

本站网友评论于:2007-12-19 11:36:24 (58.240.170.★)
内容:
大师,你好。
     我是山东的一名大三学生,我是学电子的。搞单片机已经有一年多的时间,其中有一半多是在做arm的东西。当然搞arm也离不开搞linux。自己曾在大二的时候认真分析了linux 0.01内核,收获颇多。最近在porting u-boot。当然这些东西都是自己自学的,不过博主的文章让我受益无穷。非常喜欢博主的文章,我挺喜欢苏州的(虽然没去过)。能和博主交个朋友么?
本站网友评论于:2008-01-03 13:26:59 (124.133.157.★)
内容:
从linuxforum跟到这来,既然都看到这里了就说两句吧。前面有个abutter兄说的,我觉得对,如果你要去欧美企业,你就必须更谦虚,因为他们更看重团队。你觉得够低调,我觉得你能公开求职写明薪水,什么北京不去,非欧美免谈,先仔细看blog再联系,这些都很高调啊。对07届的小兄弟可以鼓励,他要4年超过你,那很好啊,你要告诉他怎么做才有可能超过你,你不是爱帮助人吗?对一个小你4年的小兄弟,新手,要拿出当大哥的气度来嘛。他年轻气盛看不惯你,你就宽容他引导他。尊重和谦虚是对技术的态度,更是对人的态度。最后,总结一句话,戒骄戒躁,与人为善,积累人脉,你求职就说求职,别说那些用不着的东西,比如那些什么30岁之后云云,你有野心要藏起来,藏锋。你不用回,看到里面有用的呢你就沉默心领,否则呢你就当是垃圾删掉,我是即兴而写,以后也不会再回来看。

Blog作者的回复:
接连听到网友说我高调, 一开始不觉得, 但是说的人多了, 自己开始也开始怀疑自己是不是高调了呢? 
讲清楚工资很重要, 我的意思是上海低于·13k 你就别找我了, 找我我也不去, 那不是浪费时间吗, 大家的时间都很宝贵。 

通过只去欧美, 不要台资 , 这就过滤了很多企业啊, 因为我不是找不到工作啊, 只是要找自己喜欢的适合自己的企业而已。 总不见的, 我要求职, 谁都来问吧, 

积累人脉很重要 , 这没错啊,之所以写清楚, 就是希望一些朋友可以帮我介绍一下 对应的欧美企业而已。 台资的自然就不会推荐了, 提高效率而已。 因为这些都得谈吧, 还不如早说, 痛快点。 

至于那个小兄弟, 我跟他根本不认识, 他这么不尊敬前辈, 难道不应该教训一下吗? 这么没规矩就是缺乏家教的表现,不懂得尊重别人, 至少不要攻击别人。 

我是喜欢帮助人,但是帮助人是由限度的, 过度的热情也许要招人反感的。 
我不是佛祖, 我也没有能力普渡众生, 我为什么要引导他呢? 甚至还要引导他怎么超过我, 我觉得太可笑了, 帮助人是有限度的, 如果他是我的弟弟, 也许我会耐心的教他两句。如果是旁人那就要看我有没有时间了。 

看得出来, 您的心胸很宽广, 我猜您也许是40岁的人, 心态应该比较平稳的。 当然这是我要努力的方向, 毕竟我也很年轻,也才28岁而已, 确实是有点年轻气盛吧。 

现在也在努力放平自己的心态 , 锻炼内心吧, 哈哈哈。 

另外, 我的心得也是, 坦白自己,真诚最重要,做一个有特色的人。 我不觉得外企不喜欢我 , 事实上已经有一个著名外企给了我橄榄枝,总之, 一个人要坚持自己的风格吧, 一个没有风格的人能做什么呢?  马云不就是个例子, 事实上, 能做事情,总是有点毛病的, 就看你的领导欣赏你的哪一点了。 诸葛亮碰到刘备才能才能发挥, 在曹操那里能行吗?纵观三国, 适合诸葛亮的外企估计只有刘玄德一人尔 。  (我不是诸葛亮 , 顶多算是个张飞而已,武夫而已)

本站网友评论于:2008-01-26 12:39:01 (99.248.57.★)
内容:
楼上的,你能介绍一下你的经历 和项目经验么,给大家分享一下 

已经三月份了,请问楼主近况如何,祝福楼主找到中意的工作

Blog作者的回复:
谢谢你的关心, 我3月份中旬就要到北京一家外企工作了,一家半导体公司。 待遇我非常满意,养家糊口是没有问题了。工作也很有挑战, 谢谢大家的关心。 

本站网友评论于:2008-03-10 09:38:35 (61.135.152.★)
内容:
祝博主工作顺利 小弟还是挺佩服您的 至于他人的评论, 就象上面说的"看到里面有用的呢你就沉默心领,否则呢你就当是垃圾删掉" 呵呵
lubo1720评论于:2008-03-13 10:15:27 (222.190.117.★)
内容:
你好。现在我面临两个选择。
1、硬件开发,工资稍高,但是自己不是很喜欢。
2、驱动开发,工资低点,但自己有比较扎实的硬件知识和底层软件经验。
你觉得哪个比较好?
从兴趣来说,可能底层软件我会喜欢些。
sep 评论于:2008-03-14 23:29:51 (121.32.51.★)
内容:
而且要我做硬件的那家比较大,也比较正规。
驱动开发的那家目前起步不久,不过管理已经比较规范了,只是研发人还不多。带我的是8年的驱动开发经验的人。
sep 评论于:2008-03-14 23:32:56 (121.32.51.★)

发表评论