Tags:
Topics: 

ในช่วงที่ผ่านมา เรื่องราวของ SOPA ดูจะได้รับความสนใจสูงมาก (ข่าวเก่า ) ซึ่ง OSNews ก็เอากรณีที่น่าสนใจเกี่ยวกับลิขสิทธิ์ซอฟต์แวร์มาลงครับ เป็นลิขสิทธิ์ของคำสั่ง /bin/true ในระบบปฏิบัติการ Unix

ใน Unix เวลาเขียน Shell script อาจจะต้องมีการเขียนการทำงานแบบทำซ้ำ (Loop) ที่ทำงานซ้ำไม่สิ้นสุด หรือที่เรียกว่า Infinity Loop ซึ่งโดยทั่วไป จะใช้วิธีการเขียนแบบ while(true) กัน ซึ่งคำสั่งที่ให้ค่าออกมาเป็นจริงเสมอใน Unix คือคำสั่ง /bin/true หรือว่า /usr/bin/true แต่ใน Unix คำสั่งที่เป็น Shell script ใดก็ตาม ที่ทำงานเสร็จสิ้นโดยไม่แจ้งข้อผิดพลาด จะให้ค่าสถานะหยุดการทำงาน (Exit status) เป็น 0 ซึ่งมีค่าเท่ากับ true นั้นเอง (ใครเคยเขียนภาษา C คงจำ return 0; ได้) ดังนั้น การเขียนคำสั่ง /bin/true ที่ง่ายที่สุด ก็คือการสร้างแฟ้มข้อมูลเปล่าขึ้นมา เช่นใช้คำสั่ง touch แล้วก็ตั้งค่า Executable bit เช่นผ่านการใช้คำสั่ง chmod +x ก็จะได้คำสั่ง /bin/true แล้ว

ทีนี้ มันเริ่มสนุกเมื่อ ฝ่ายกฏหมายของ AT&T ซึ่งเป็นเจ้าของลิขสิทธิ์ Unix อยู่ ตัดสินใจว่า มันจะต้องมีการประกาศลิขสิทธิ์ในทุกโปรแกรมที่อยู่ในซอร์สโค้ดของ Unix ตัวซอร์สโค้ดของ /bin/true ก็เลยกลายเป็นแบบนี้

 | 
 | #     Copyright (c) 1984 AT&T
 | #       All Rights Reserved
 | 
 | #     THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
 | #     The copyright notice above does not evidence any
 | #     actual or intended publication of such source code.
 | 
 | #ident        "@(#)cmd/true.sh        50.1"

(ทำซ้ำจากเว็บต้นทาง เครื่องหมาย | ใส่แทรกเข้าไปที่ต้นบรรทัดเพื่อแสดงว่า บรรทัดไหนบ้างที่อยู่ในซอร์สโค้ด)

จากซอร์สโค้ด จะเห็นว่า 7 บรรทัดแรก เป็นคำประกาศสิทธิ์ ส่วนบรรทัดสุดท้าย เป็นข้อมูลสำหรับ revision control และไม่มีส่วนซอร์สโค้ดของโปรแกรมเลย เพราะว่าไม่จำเป็น ซึ่งก็ไม่ใช่เฉพาะ AT&T ที่ทำแบบนี้ เพราะ ในซอร์สโค้ดของ SunOS ที่ออกโดยบริษัทซัน ก็มีโค้ดลักษณะเดียวกันอยู่

แต่อย่างน้อย วิศวกรที่โครงการ FSF ไม่ได้บ้าตามไปกับ AT&T หรือว่าซัน เพราะพวกเขาได้พัฒนาโปรแกรม /bin/true ขึ้นมาใหม่ โดยใช้ภาษา C แล้วใส่คำประกาศสิทธิ์ตามด้านล่าง

 lulu:~$ /bin/true --version
 true (GNU coreutils) 6.10
 Copyright (C) 2008 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.

 Written by Jim Meyering.
 lulu:~$ 

น่าสนใจนะครับว่า โปรแกรมที่ทำงานโดยไม่ทำอะไรเลย ไม่จำเป็นต้องมีซอร์สโค้ดใด ๆ สามารถอ้างสิทธิ์ได้หรือไม่

ที่มา The /bin/true Command and Copyright ผ่านทาง OSNews

Get latest news from Blognone

Comments

By: kimminwoo
AndroidRed HatUbuntuWindows
on 31 January 2012 - 13:00 #378620

เล่นงี้เลยเหรอ = ="

By: thegodth
AndroidRed HatUbuntuWindows
on 31 January 2012 - 15:15 #378715 Reply to:378620

อีกหน่อยนะ คงต้องแบบนี้ มันถึงถูกต้องตาม copyright

apt-get update --copyright=ubuntu

if $copyright != ubuntu return 'illegal license please check' else return true;

yum update -y --copyright=redhat

if $copyright != redhat return 'illegal license please check' else return true;

(เพิ่งรู้ว่า ใส่ ชาร์ป ไว้ข้างหน้า มันจะเป็นตัวใหญ่)

By: icez
ContributoriPhoneAndroidRed Hat
on 31 January 2012 - 13:01 #378622

เพราะพวกเขาได้พัฒนาโปรแกรม /bin/sh ขึ้นมาใหม่

หมายถึง /bin/true รึเปล่าครับ?

By: pruet
WriterAndroidRed HatUbuntu
on 31 January 2012 - 13:39 #378639 Reply to:378622
pruet's picture

แก้ไขแล้วครับ เมามันไปนิด

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 31 January 2012 - 13:09 #378625
PaPaSEK's picture

เดี๋ยวมีโอกาสจะกลับไปบ่นอาจารย์ผู้สอน C ให้กับผม

เค้าบอกว่าผมเขียนอะไรอ่านไม่รู้เรื่อง ตอนนี้มีหลักฐานแล้วว่าระดับโลกก็ใช้ while(true)

By: dangsystem
iPhoneAndroidBlackberryWindows
on 31 January 2012 - 13:34 #378636 Reply to:378625
dangsystem's picture

+555

By: deaw on 31 January 2012 - 13:24 #378630
deaw's picture

true มี 2 อันใช่มั้ยครับ อันแรก built-in มากับ shell อีกอันก็ /bin/true

By: saimon_xcite
iPhoneAndroidBlackberryWindows
on 31 January 2012 - 14:07 #378667 Reply to:378630

ใช่ครับ ทรูมี 2 อัน คือ truemove กับ truemove-h

By: deaw on 31 January 2012 - 14:52 #378704 Reply to:378667
deaw's picture

truevision ล่ะ

By: obtheair on 31 January 2012 - 15:03 #378713 Reply to:378704

true online ด้วย

By: toooooooon
iPhoneWindows PhoneAndroidBlackberry
on 31 January 2012 - 16:41 #378741 Reply to:378704

true money นำเด้อ

By: iStyle
ContributoriPhoneAndroidSymbian
on 1 February 2012 - 01:33 #378917 Reply to:378741
iStyle's picture

true piece

/เผ่น


May the Force Close be with you. || @nuttyi

By: deaw on 31 January 2012 - 15:05 #378714 Reply to:378630
deaw's picture

http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/true.c

ไปดู src มา true กะ false ก็คือๆ กัน

By: kamthorn
ContributorAndroidUbuntu
on 31 January 2012 - 17:33 #378758 Reply to:378630

ถูกครับ มี built-in และ /bin/true ปกติเราใช้ true ก็ใช้ built-in ถ้าระบุ /bin/true ถึงจะใช้ตัวที่มากับ coreutils (ใน Linux)


-- blog

By: toooooooon
iPhoneWindows PhoneAndroidBlackberry
on 31 January 2012 - 13:45 #378647

งงครับ

By: Be1con
ContributorWindows PhoneWindowsIn Love
on 31 January 2012 - 13:52 #378658 Reply to:378647
Be1con's picture

+1 ผมเป็นแค่ Semi-Geek หละมั้ง


Coder | Designer | Thinker | Blogger

By: McKay
ContributorAndroidWindowsIn Love
on 31 January 2012 - 14:16 #378679 Reply to:378658
McKay's picture

อธิบายง่ายๆคือ มันเป็นไฟล์ script ที่ไม่มีคำสั่งใดๆทั้งสิ้น(แม้แต่คำสั่งเดียว) แต่ดันมีข้อความประกาศลิขสิทธิ์ไว้ครับ

By: toooooooon
iPhoneWindows PhoneAndroidBlackberry
on 31 January 2012 - 16:42 #378742 Reply to:378679

หา...

ไฟล์ที่ไม่มีคำสั่ง ..แล้วจะมีไฟลืไว้ทำไมหว่า -,,-

By: geumatee
ContributoriPhoneAndroidWindows
on 31 January 2012 - 17:21 #378752 Reply to:378742

เพื่ออ้างอิงว่าไฟล์ไม่มีคำสั่งเป็นแบบนี้นะ เป็นอันรู้กันว่าเวลาจะใช้ไอค่า 0 มาเจออันนี้เลย

By: EThaiZone
ContributorAndroidUbuntuWindows
on 31 January 2012 - 18:47 #378776 Reply to:378742
EThaiZone's picture

ประเด็นที่น่าสนใจคือไฟล์ที่ไม่มีคำสั่งมันก็ไม่น่าจะเป็นโปรแกรม แต่พี่แกก็ประกาศลิขสิทธิ์ไว้ให้ดูว่ามันเป็นโปรแกรม

ของที่เขียนโดย Jim Meyering ยังดูดีกว่าครับตรงที่อย่างน้อยมันก็ยังดูเป็นโปรแกรม มีเรียก --version มี --help ไม่เหมือนของ AT&T ที่มีไฟล์คำสั่งเปล่ากับคำประกาศลิขสิทธิ์ให้ดูขำๆ เหมือนจะอ้างลิขสิทธิ์ส่วนนี้แบบไม่ลงทุน

แต่ในอีกแง่หนึ่ง โปรแกรมที่เขียนโดย Jim Meyering จัดว่าเป็นโปรแกรมที่ทำงานได้จริงๆ ที่มันไม่มีอะไรเลย ชวนให้นึกถึงพวก Machine Useless ที่มีสวิตซ์เปิดให้ทำงานเพื่อปิดตัวมันเอง - -*

http://www.youtube.com/watch?v=Z86V_ICUCD4


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: Aphorist
AndroidUbuntuWindows
on 31 January 2012 - 20:16 #378798 Reply to:378776
Aphorist's picture

อันนี้ ฮากว่า
http://www.youtube.com/watch?feature=fvwp&v=UkgoSOSGrx4

By: EThaiZone
ContributorAndroidUbuntuWindows
on 31 January 2012 - 20:55 #378811 Reply to:378798
EThaiZone's picture

มีแบบของญี่ปุ่นครับ ฮาเหมือนกัน แต่ต้องดูให้จบด้วยนะ

http://www.youtube.com/watch?v=UmQ5LsNMXZ4


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: Eka-X
ContributoriPhoneAndroidIn Love
on 31 January 2012 - 14:15 #378678 Reply to:378647

พลังเรายังไม่แก่กล้าพอที่จะเข้าใจ

By: akira on 31 January 2012 - 14:34 #378693

Code ล่องหน

By: EThaiZone
ContributorAndroidUbuntuWindows
on 31 January 2012 - 14:37 #378694
EThaiZone's picture

อยากบอกว่ามีเวอร์ชั่น 1.6 ด้วยล่ะ ตอนแรกก็งง มีไว้ทำไม ก็อ่าน History เอาละกัน

1.1 bump copyright notice (dont forget it next years, as we did last year)

  • -# Copyright (c) 1984 AT&T
  • +# Copyright (c) 1984, 1986 AT&T

1.2 bump copyright notice

  • -# Copyright (c) 1984, 1986 AT&T
  • +# Copyright (c) 1984, 1986, 1987 AT&T

1.3 bump copyright notice

  • -# Copyright (c) 1984, 1986, 1987 AT&T
  • +# Copyright (c) 1984, 1986, 1987, 1988 AT&T

1.4 bump copyright notice

  • -# Copyright (c) 1984, 1986, 1987,1988 AT&T
  • +# Copyright (c) 1984, 1986, 1987, 1988,1989 AT&T

1.5 bump copyright notice

  • -# Copyright (c) 1984, 1986, 1987,1988, 1989 AT&T
  • +# Copyright (c) 1984, 1986, 1987, 1988,1989, 1990 AT&T

1.6 damn, we forgot that we dont have the copyright anymore

  • -# Copyright (c) 1984, 1986, 1987, 1988, 1989, 1990 AT&T
  • +# Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T

Credit: http://forums.thedailywtf.com/forums/t/3779.aspx


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: PiKO
ContributorAndroid
on 31 January 2012 - 15:24 #378718 Reply to:378694

5555+


:: DigiKin8 ::

By: geumatee
ContributoriPhoneAndroidWindows
on 31 January 2012 - 15:36 #378721 Reply to:378694

โปรแกรมระดับโลก เปลี่ยนเวอชั่นทุกปีเลยนะ จ้างผมไปเขียนไม๊ 555

By: neizod
ContributorTraineeIn Love
on 31 January 2012 - 15:57 #378730 Reply to:378694
neizod's picture

ฮาสุดละ

By: hisoft
ContributorWindows PhoneWindows
on 31 January 2012 - 20:34 #378802 Reply to:378694
hisoft's picture

ข้อ 1.6 ฮาาาาาา

By: soginal
AndroidIn Love
on 31 January 2012 - 14:38 #378696
soginal's picture

โปรแกรมไร้บั๊กสินะ

"Nothing" Change the World!!

By: lazywahwah
Android
on 31 January 2012 - 14:50 #378702

ยังงี้ พวก flashdrive จีน ที่ข้างในกลวง ก็จด patent ได้สินะ

By: EThaiZone
ContributorAndroidUbuntuWindows
on 31 January 2012 - 18:51 #378781 Reply to:378702
EThaiZone's picture

คงหมายถึงแบบนี้ สุดยอดนวัตกรรมเลยทีเดียว

http://www.geekologie.com/2007/06/20/usb-china.jpg


มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB

By: jack8855
iPhoneAndroidRed HatSymbian
on 31 January 2012 - 15:49 #378726
jack8855's picture

แค่เนี๊ย! หากินได้เลยนะนี่ 0.0

By: ultimateohm
ContributorAndroidRed HatWindows
on 31 January 2012 - 17:01 #378747
ultimateohm's picture

สิทธิบัตรมันควรเป็นอะไรที่ได้มาจากแรงงานสมองพลังความคิดประดิษฐ์สร้างสรรค์มากกว่านี้นะ

ลองใช้ sh -c exit 0 แทนไหม

while ( sh -c exit 0 ) do
echo freetrue
done

aka ohmohm

By: kamthorn
ContributorAndroidUbuntu
on 31 January 2012 - 17:23 #378753 Reply to:378747

ไม่ใช้เพราะ 1) เปลือง memory, cpu 2) โค้ดไม่สวย อ่านเข้าใจยากกว่า while true; do ... done


-- blog

By: kengz.com
iPhone
on 31 January 2012 - 19:59 #378794 Reply to:378747

ลิขสิทธิ์ไม่ใช่สิทธิบัตรมั้งครับ

By: mr_tawan
ContributoriPhoneAndroidWindows
on 31 January 2012 - 17:24 #378754
mr_tawan's picture

เป็นการประกาศสิทธิของเอกสารเปล่าครับ (ตลกดีนะ)


  • 9tawan.net บล็อกส่วนตัวฮับ
By: tirakarn
AndroidUbuntuWindows
on 1 February 2012 - 00:18 #378879

คำว่า "Hello World" ที่นิยมใช้ยกตัวอย่างเวลาเขียนโปรแกรมนี่มีใครจดลิขสิทธิ์มั๊ยครับ

By: Floating Rotten Dog
iPhoneWindows PhoneAndroidWindows
on 1 February 2012 - 04:47 #378963
Floating Rotten Dog's picture

Infinite Loop ครับ ไม่ใช่ Infinity Loop

By: ascii.z
AndroidUbuntu
on 1 February 2012 - 14:27 #379131

while (0) do

something

done