当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 29 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 给你们瞧瞧传说中的ubuntu的源代码(节选2段简单的)
帖子发表于 : 2007-12-07 23:55 
头像

注册: 2006-05-03 0:39
帖子: 8273
地址: المريخ
送出感谢: 0 次
接收感谢: 1
用apt-get source可以获得源代码。

/usr/bin/yes的源代码:
代码:
/* yes - output a string repeatedly until killed
   Copyright (C) 1991-1997, 1999-2004 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */

/* David MacKenzie <djm@gnu.ai.mit.edu> */

#include <config.h>
#include <stdio.h>
#include <sys/types.h>
#include <getopt.h>

#include "system.h"

#include "error.h"
#include "long-options.h"

/* The official name of this program (e.g., no `g' prefix).  */
#define PROGRAM_NAME "yes"

#define AUTHORS "David MacKenzie"

/* The name this program was run with. */
char *program_name;

void
usage (int status)
{
  if (status != EXIT_SUCCESS)
    fprintf (stderr, _("Try `%s --help' for more information.\n"),
        program_name);
  else
    {
      printf (_("\
Usage: %s [STRING]...\n\
  or:  %s OPTION\n\
"),
         program_name, program_name);

      fputs (_("\
Repeatedly output a line with all specified STRING(s), or `y'.\n\
\n\
"), stdout);
      fputs (HELP_OPTION_DESCRIPTION, stdout);
      fputs (VERSION_OPTION_DESCRIPTION, stdout);
      printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT);
    }
  exit (status);
}

int
main (int argc, char **argv)
{
  initialize_main (&argc, &argv);
  program_name = argv[0];
  setlocale (LC_ALL, "");
  bindtextdomain (PACKAGE, LOCALEDIR);
  textdomain (PACKAGE);

  atexit (close_stdout);

  parse_long_options (argc, argv, PROGRAM_NAME, GNU_PACKAGE, VERSION,
            usage, AUTHORS, (char const *) NULL);
  if (getopt_long (argc, argv, "+", NULL, NULL) != -1)
    usage (EXIT_FAILURE);

  if (argc <= optind)
    {
      optind = argc;
      argv[argc++] = "y";
    }

  for (;;)
    {
      int i;
      for (i = optind; i < argc; i++)
   if (fputs (argv[i], stdout) == EOF
       || putchar (i == argc - 1 ? '\n' : ' ') == EOF)
     {
       error (0, errno, _("standard output"));
       exit (EXIT_FAILURE);
     }
    }
}

/bin/echo的源代码:
代码:
/* echo.c, derived from code echo.c in Bash.
   Copyright (C) 87,89, 1991-1997, 1999-2005 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */

#include <config.h>
#include <stdio.h>
#include <sys/types.h>
#include "system.h"
#include "long-options.h"

/* The official name of this program (e.g., no `g' prefix).  */
#define PROGRAM_NAME "echo"

#define AUTHORS "FIXME unknown"

/* echo [-neE] [arg ...]
Output the ARGs.  If -n is specified, the trailing newline is
suppressed.  If the -e option is given, interpretation of the
following backslash-escaped characters is turned on:
   \a   alert (bell)
   \b   backspace
   \c   suppress trailing newline
   \f   form feed
   \n   new line
   \r   carriage return
   \t   horizontal tab
   \v   vertical tab
   \\   backslash
   \0NNN   the character whose ASCII code is NNN (octal).

You can explicitly turn off the interpretation of the above characters
on System V systems with the -E option.
*/

/* If true, interpret backslash escapes by default.  */
#ifndef DEFAULT_ECHO_TO_XPG
enum { DEFAULT_ECHO_TO_XPG = false };
#endif

/* The name this program was run with. */
char *program_name;

void
usage (int status)
{
  if (status != EXIT_SUCCESS)
    fprintf (stderr, _("Try `%s --help' for more information.\n"),
        program_name);
  else
    {
      printf (_("Usage: %s [OPTION]... [STRING]...\n"), program_name);
      fputs (_("\
Echo the STRING(s) to standard output.\n\
\n\
  -n             do not output the trailing newline\n\
"), stdout);
      fputs (_(DEFAULT_ECHO_TO_XPG
          ? "\
  -e             enable interpretation of backslash escapes (default)\n\
  -E             disable interpretation of backslash escapes\n"
          : "\
  -e             enable interpretation of backslash escapes\n\
  -E             disable interpretation of backslash escapes (default)\n"),
        stdout);
      fputs (HELP_OPTION_DESCRIPTION, stdout);
      fputs (VERSION_OPTION_DESCRIPTION, stdout);
      fputs (_("\
\n\
If -e is in effect, the following sequences are recognized:\n\
\n\
  \\0NNN   the character whose ASCII code is NNN (octal)\n\
  \\\\     backslash\n\
  \\a     alert (BEL)\n\
  \\b     backspace\n\
"), stdout);
      fputs (_("\
  \\c     suppress trailing newline\n\
  \\f     form feed\n\
  \\n     new line\n\
  \\r     carriage return\n\
  \\t     horizontal tab\n\
  \\v     vertical tab\n\
"), stdout);
      printf (USAGE_BUILTIN_WARNING, PROGRAM_NAME);
      printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT);
    }
  exit (status);
}

/* Convert C from hexadecimal character to integer.  */
static int
hextobin (unsigned char c)
{
  switch (c)
    {
    default: return c - '0';
    case 'a': case 'A': return 10;
    case 'b': case 'B': return 11;
    case 'c': case 'C': return 12;
    case 'd': case 'D': return 13;
    case 'e': case 'E': return 14;
    case 'f': case 'F': return 15;
    }
}

/* Print the words in LIST to standard output.  If the first word is
   `-n', then don't print a trailing newline.  We also support the
   echo syntax from Version 9 unix systems. */

int
main (int argc, char **argv)
{
  bool display_return = true;
  bool allow_options =
    (! getenv ("POSIXLY_CORRECT")
     || (! DEFAULT_ECHO_TO_XPG && 1 < argc && STREQ (argv[1], "-n")));

  /* System V machines already have a /bin/sh with a v9 behavior.
     Use the identical behavior for these machines so that the
     existing system shell scripts won't barf.  */
  bool do_v9 = DEFAULT_ECHO_TO_XPG;

  initialize_main (&argc, &argv);
  program_name = argv[0];
  setlocale (LC_ALL, "");
  bindtextdomain (PACKAGE, LOCALEDIR);
  textdomain (PACKAGE);

  atexit (close_stdout);

  if (allow_options)
    parse_long_options (argc, argv, PROGRAM_NAME, GNU_PACKAGE, VERSION,
         usage, AUTHORS, (char const *) NULL);

  --argc;
  ++argv;

  if (allow_options)
    while (argc > 0 && *argv[0] == '-')
      {
   char const *temp = argv[0] + 1;
   size_t i;

   /* If it appears that we are handling options, then make sure that
      all of the options specified are actually valid.  Otherwise, the
      string should just be echoed.  */

   for (i = 0; temp[i]; i++)
     switch (temp[i])
       {
       case 'e': case 'E': case 'n':
         break;
       default:
         goto just_echo;
       }

   if (i == 0)
     goto just_echo;

   /* All of the options in TEMP are valid options to ECHO.
      Handle them. */
   while (*temp)
     switch (*temp++)
       {
       case 'e':
         do_v9 = true;
         break;

       case 'E':
         do_v9 = false;
         break;

       case 'n':
         display_return = false;
         break;
       }

   argc--;
   argv++;
      }

just_echo:

  if (do_v9)
    {
      while (argc > 0)
   {
     char const *s = argv[0];
     unsigned char c;

     while ((c = *s++))
       {
         if (c == '\\' && *s)
      {
        switch (c = *s++)
          {
          case 'a': c = '\a'; break;
          case 'b': c = '\b'; break;
          case 'c': exit (EXIT_SUCCESS);
          case 'f': c = '\f'; break;
          case 'n': c = '\n'; break;
          case 'r': c = '\r'; break;
          case 't': c = '\t'; break;
          case 'v': c = '\v'; break;
          case 'x':
            {
         unsigned char ch = *s;
         if (! ISXDIGIT (ch))
           goto not_an_escape;
         s++;
         c = hextobin (ch);
         ch = *s;
         if (ISXDIGIT (ch))
           {
             s++;
             c = c * 16 + hextobin (ch);
           }
            }
            break;
          case '0':
            c = 0;
            if (! ('0' <= *s && *s <= '7'))
         break;
            c = *s++;
            /* Fall through.  */
          case '1': case '2': case '3':
          case '4': case '5': case '6': case '7':
            c -= '0';
            if ('0' <= *s && *s <= '7')
         c = c * 8 + (*s++ - '0');
            if ('0' <= *s && *s <= '7')
         c = c * 8 + (*s++ - '0');
            break;
          case '\\': break;

          not_an_escape:
          default:  putchar ('\\'); break;
          }
      }
         putchar (c);
       }
     argc--;
     argv++;
     if (argc > 0)
       putchar (' ');
   }
    }
  else
    {
      while (argc > 0)
   {
     fputs (argv[0], stdout);
     argc--;
     argv++;
     if (argc > 0)
       putchar (' ');
   }
    }

  if (display_return)
    putchar ('\n');
  exit (EXIT_SUCCESS);
}


_________________
PHP是最好的语言!不服来战!


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-12-08 0:12 
头像

注册: 2007-02-02 18:14
帖子: 30702
系统: debian sid
送出感谢: 1
接收感谢: 34
看了这个终于想睡觉了,谢谢mm :D


_________________
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-12-22 1:19 
头像

注册: 2007-12-08 23:33
帖子: 4088
地址: SCUT-guangzhou
送出感谢: 0 次
接收感谢: 0 次
呵呵,不太懂~~


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-12-22 10:14 
头像

注册: 2007-04-03 22:18
帖子: 333
送出感谢: 0 次
接收感谢: 0 次
:oops: 有字天书


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-12-22 10:50 
头像

注册: 2007-11-06 22:58
帖子: 149
地址: 武汉
送出感谢: 0 次
接收感谢: 0 次
希望我有能看懂的一天!!


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-12-22 11:04 
头像

注册: 2006-09-24 22:43
帖子: 710
送出感谢: 0 次
接收感谢: 0 次
Copyright (C) 1991-1997, 1999-2004 Free Software Foundation, Inc.

ubuntu写的代码版权怎么给了fsf?? :D


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-12-23 1:09 
头像

注册: 2006-05-03 0:39
帖子: 8273
地址: المريخ
送出感谢: 0 次
接收感谢: 1
sysnotdown 写道:
Copyright (C) 1991-1997, 1999-2004 Free Software Foundation, Inc.

ubuntu写的代码版权怎么给了fsf?? :D
这是历史问题。


_________________
PHP是最好的语言!不服来战!


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-12-23 1:19 
头像

注册: 2007-10-29 22:12
帖子: 5353
地址: 江苏南京
系统: OSX 10.9 + Ub 1304
送出感谢: 0 次
接收感谢: 5
sysnotdown 写道:
Copyright (C) 1991-1997, 1999-2004 Free Software Foundation, Inc.

ubuntu写的代码版权怎么给了fsf?? :D


这些程序又不是ubuntu写的,是ubuntu拿来源代码编译后分发的,原始版权当然是归属FSF的。


_________________
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-12-23 1:29 
头像

注册: 2006-05-03 0:39
帖子: 8273
地址: المريخ
送出感谢: 0 次
接收感谢: 1
hubert_star 写道:
sysnotdown 写道:
Copyright (C) 1991-1997, 1999-2004 Free Software Foundation, Inc.

ubuntu写的代码版权怎么给了fsf?? :D


这些程序又不是ubuntu写的,是ubuntu拿来源代码编译后分发的,原始版权当然是归属FSF的。
我知道你想说什么,但是你的表述并不正确。另外,我打赌你在说这话的时候并没有经过详细的考证。


_________________
PHP是最好的语言!不服来战!


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-12-23 1:53 
头像

注册: 2007-10-29 22:12
帖子: 5353
地址: 江苏南京
系统: OSX 10.9 + Ub 1304
送出感谢: 0 次
接收感谢: 5
MM是个高手,但是不要犯这种错误哦。

Stallman创立了FSF,GNU计划里面的程序大部分靠捐献,有些时候GNU也聘请专门的程序员写一些程序,但GNU计划里面大部分软件版权规属于FSF这个没有任何疑问。

先来谈谈你的源代码,/bin/echo这个文件是下面的包里面的:
coreutils - GNU 核心工具包

这个包的维护者是GNU,我给你一个连接:http://www.gnu.org/software/coreutils/

ubuntu/debian或者是其他的linux发行版这个包是必不可少的,但是有一点是绝对的:这个发行包的版权可以归属于发行版公司,但是里面的代码版权却绝对归属于FSF,我给你GNU标准里面的echo的代码:

此代码的地址是:http://ftp.gnu.org/gnu/coreutils/coreutils-5.97.tar.bz2中的echo.c

代码:

/* echo.c, derived from code echo.c in Bash.
   Copyright (C) 87,89, 1991-1997, 1999-2005 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */

#include <config.h>
#include <stdio.h>
#include <sys/types.h>
#include "system.h"
#include "long-options.h"

/* The official name of this program (e.g., no `g' prefix).  */
#define PROGRAM_NAME "echo"

#define AUTHORS "FIXME unknown"

/* echo [-neE] [arg ...]
Output the ARGs.  If -n is specified, the trailing newline is
suppressed.  If the -e option is given, interpretation of the
following backslash-escaped characters is turned on:
   \a   alert (bell)
   \b   backspace
   \c   suppress trailing newline
   \f   form feed
   \n   new line
   \r   carriage return
   \t   horizontal tab
   \v   vertical tab
   \\   backslash
   \0NNN   the character whose ASCII code is NNN (octal).

You can explicitly turn off the interpretation of the above characters
on System V systems with the -E option.
*/

/* If true, interpret backslash escapes by default.  */
#ifndef DEFAULT_ECHO_TO_XPG
enum { DEFAULT_ECHO_TO_XPG = false };
#endif

/* The name this program was run with. */
char *program_name;

void
usage (int status)
{
  if (status != EXIT_SUCCESS)
    fprintf (stderr, _("Try `%s --help' for more information.\n"),
        program_name);
  else
    {
      printf (_("Usage: %s [OPTION]... [STRING]...\n"), program_name);
      fputs (_("\
Echo the STRING(s) to standard output.\n\
\n\
  -n             do not output the trailing newline\n\
"), stdout);
      fputs (_(DEFAULT_ECHO_TO_XPG
          ? "\
  -e             enable interpretation of backslash escapes (default)\n\
  -E             disable interpretation of backslash escapes\n"
          : "\
  -e             enable interpretation of backslash escapes\n\
  -E             disable interpretation of backslash escapes (default)\n"),
        stdout);
      fputs (HELP_OPTION_DESCRIPTION, stdout);
      fputs (VERSION_OPTION_DESCRIPTION, stdout);
      fputs (_("\
\n\
If -e is in effect, the following sequences are recognized:\n\
\n\
  \\0NNN   the character whose ASCII code is NNN (octal)\n\
  \\\\     backslash\n\
  \\a     alert (BEL)\n\
  \\b     backspace\n\
"), stdout);
      fputs (_("\
  \\c     suppress trailing newline\n\
  \\f     form feed\n\
  \\n     new line\n\
  \\r     carriage return\n\
  \\t     horizontal tab\n\
  \\v     vertical tab\n\
"), stdout);
      printf (USAGE_BUILTIN_WARNING, PROGRAM_NAME);
      printf (_("\nReport bugs to <%s>.\n"), PACKAGE_BUGREPORT);
    }
  exit (status);
}

/* Convert C from hexadecimal character to integer.  */
static int
hextobin (unsigned char c)
{
  switch (c)
    {
    default: return c - '0';
    case 'a': case 'A': return 10;
    case 'b': case 'B': return 11;
    case 'c': case 'C': return 12;
    case 'd': case 'D': return 13;
    case 'e': case 'E': return 14;
    case 'f': case 'F': return 15;
    }
}

/* Print the words in LIST to standard output.  If the first word is
   `-n', then don't print a trailing newline.  We also support the
   echo syntax from Version 9 unix systems. */

int
main (int argc, char **argv)
{
  bool display_return = true;
  bool allow_options =
    (! getenv ("POSIXLY_CORRECT")
     || (! DEFAULT_ECHO_TO_XPG && 1 < argc && STREQ (argv[1], "-n")));

  /* System V machines already have a /bin/sh with a v9 behavior.
     Use the identical behavior for these machines so that the
     existing system shell scripts won't barf.  */
  bool do_v9 = DEFAULT_ECHO_TO_XPG;

  initialize_main (&argc, &argv);
  program_name = argv[0];
  setlocale (LC_ALL, "");
  bindtextdomain (PACKAGE, LOCALEDIR);
  textdomain (PACKAGE);

  atexit (close_stdout);

  if (allow_options)
    parse_long_options (argc, argv, PROGRAM_NAME, GNU_PACKAGE, VERSION,
         usage, AUTHORS, (char const *) NULL);

  --argc;
  ++argv;

  if (allow_options)
    while (argc > 0 && *argv[0] == '-')
      {
   char const *temp = argv[0] + 1;
   size_t i;

   /* If it appears that we are handling options, then make sure that
      all of the options specified are actually valid.  Otherwise, the
      string should just be echoed.  */

   for (i = 0; temp[i]; i++)
     switch (temp[i])
       {
       case 'e': case 'E': case 'n':
         break;
       default:
         goto just_echo;
       }

   if (i == 0)
     goto just_echo;

   /* All of the options in TEMP are valid options to ECHO.
      Handle them. */
   while (*temp)
     switch (*temp++)
       {
       case 'e':
         do_v9 = true;
         break;

       case 'E':
         do_v9 = false;
         break;

       case 'n':
         display_return = false;
         break;
       }

   argc--;
   argv++;
      }

just_echo:

  if (do_v9)
    {
      while (argc > 0)
   {
     char const *s = argv[0];
     unsigned char c;

     while ((c = *s++))
       {
         if (c == '\\' && *s)
      {
        switch (c = *s++)
          {
          case 'a': c = '\a'; break;
          case 'b': c = '\b'; break;
          case 'c': exit (EXIT_SUCCESS);
          case 'f': c = '\f'; break;
          case 'n': c = '\n'; break;
          case 'r': c = '\r'; break;
          case 't': c = '\t'; break;
          case 'v': c = '\v'; break;
          case 'x':
            {
         unsigned char ch = *s;
         if (! ISXDIGIT (ch))
           goto not_an_escape;
         s++;
         c = hextobin (ch);
         ch = *s;
         if (ISXDIGIT (ch))
           {
             s++;
             c = c * 16 + hextobin (ch);
           }
            }
            break;
          case '0':
            c = 0;
            if (! ('0' <= *s && *s <= '7'))
         break;
            c = *s++;
            /* Fall through.  */
          case '1': case '2': case '3':
          case '4': case '5': case '6': case '7':
            c -= '0';
            if ('0' <= *s && *s <= '7')
         c = c * 8 + (*s++ - '0');
            if ('0' <= *s && *s <= '7')
         c = c * 8 + (*s++ - '0');
            break;
          case '\\': break;

          not_an_escape:
          default:  putchar ('\\'); break;
          }
      }
         putchar (c);
       }
     argc--;
     argv++;
     if (argc > 0)
       putchar (' ');
   }
    }
  else
    {
      while (argc > 0)
   {
     fputs (argv[0], stdout);
     argc--;
     argv++;
     if (argc > 0)
       putchar (' ');
   }
    }

  if (display_return)
    putchar ('\n');
  exit (EXIT_SUCCESS);
}



你觉得和你发的代码有什么不同吗?这是Ubuntu写的源代码吗?


_________________
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me


最后由 hubert_star 编辑于 2007-12-23 6:39,总共编辑了 2 次

页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-12-23 1:59 
头像

注册: 2007-12-02 14:09
帖子: 705
送出感谢: 0 次
接收感谢: 0 次
代码不重要 有开发文档 啊~~没文档看起来恼火 ~~
不喜欢c风格的命名习惯


_________________
悟以往之不鉴,知来者之可追
识迷途其未远 觉今是而昨非


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-12-23 2:47 
头像

注册: 2007-10-29 22:12
帖子: 5353
地址: 江苏南京
系统: OSX 10.9 + Ub 1304
送出感谢: 0 次
接收感谢: 5
哦,忘记了,GNU计划里东东的版权还要提醒一下,GNU里面的东西是类Unix而不是Unix,所以跟原始的Unix版权也没有关系,更没有历史原因,有的仅仅是FSF旗下GNU计划重写的类Unix的程序代码。


_________________
佛经说,人有八苦: 生、老、病、死、求不得、怨憎、爱别离、五阴盛 故我苦!
圣经说,人有七罪: 饕餮、贪婪、懒惰、淫欲、傲慢、嫉妒和暴怒  故我有罪!

我这篇帖子里面没有任何攻击我们伟大的中华人民共和国政府和任劳任怨的人民公仆(和本论坛高素质的版主)的文字和含义;

特此声明!

有些事,我们明知道是错的,也要去坚持,因为不甘心;有些人,我们明知道是爱的,也要去放弃,因为没结局;有时候,我们明知道没路了,却还在前行,因为习惯了。

欢迎来我的新浪微博@me


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-12-23 9:37 
头像

注册: 2007-05-08 16:26
帖子: 2058
地址: 火星内核某分子内某原子核内
系统: arch
送出感谢: 20
接收感谢: 6
想不到YES的代码这么简单啊!


_________________
笔记本 :
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-12-25 15:31 

注册: 2007-11-08 18:19
帖子: 221
送出感谢: 0 次
接收感谢: 1
内核更复杂


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-12-25 15:34 
头像

注册: 2007-04-28 21:38
帖子: 1026
送出感谢: 0 次
接收感谢: 0 次
90%的代码用来处理各种异常和错误。。。。。
真正干活的代码很少。。。。。。


_________________
thinkpad x61 2G DDR no cdrom
--------------------------------------------
ABS学习中
sed学习中
awk学习中
perl学习中
新手描述不清,老手猜测不到,胡乱指挥一通,后果难以预料


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 29 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译