ในช่วงที่ผ่านมา เรื่องราวของ 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

Hiring! บริษัทที่น่าสนใจ

Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation

อีกหน่อยนะ คงต้องแบบนี้ มันถึงถูกต้องตาม 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;

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

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

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

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

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

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

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

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

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

อยากบอกว่ามีเวอร์ชั่น 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

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

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

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

tirakarn Wed, 02/01/2012 - 00:18

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

Apple
public://topics-images/apple_webp.png
SCB10X
public://topics-images/347823389_774095087711602_515970870797767330_n_webp.png
Windows 11
public://topics-images/hero-bloom-logo.jpg
Doom
public://topics-images/doom_logo.png
Huawei
public://topics-images/huawei_standard_logo.svg_.png
Threads
public://topics-images/threads-app-logo.svg_.png
Google Keep
public://topics-images/google_keep_2020_logo.svg_.png
Fortnite
public://topics-images/fortnitelogo.svg_.png
Instagram
public://topics-images/instagram_logo_2022.svg_.png
SCB
public://topics-images/9crhwyxv_400x400.jpg
Microsoft
public://topics-images/microsoft_logo.svg_.png
Basecamp
public://topics-images/bwpepdi0_400x400.jpg
Tinder
public://topics-images/hwizi8ny_400x400.jpg
FTC
public://topics-images/seal_of_the_united_states_federal_trade_commission.svg_.png
Pinterest
public://topics-images/pinterest.png
Palantir
public://topics-images/-nzsuc6w_400x400.png
Gemini
public://topics-images/google_gemini_logo.svg__0.png
AIS Business
public://topics-images/logo-business-2021-1.png
PostgreSQL
public://topics-images/images.png
JetBrains
public://topics-images/icx8y2ta_400x400.png
Krungthai
public://topics-images/aam1jxs6_400x400.jpg
Palworld
public://topics-images/mccyhcqf_400x400.jpg
Bill Gates
public://topics-images/bill_gates-september_2024.jpg
VMware
public://topics-images/1nj4i1gp_400x400.jpg
Take-Two Interactive
public://topics-images/0khle7nh_400x400.jpg
OpenAI
public://topics-images/ztsar0jw_400x400.jpg
Thailand
public://topics-images/flag_of_thailand.svg_.png
NVIDIA
public://topics-images/srvczsfq_400x400.jpg
ServiceNow
public://topics-images/ytnrfphe_400x400.png
PS5
public://topics-images/playstation_5_logo_and_wordmark.svg_.png
Klarna
public://topics-images/urcllpjp_400x400.png
Google Play
public://topics-images/play.png
Drupal
public://topics-images/drupal.png
Virtua Fighter
public://topics-images/virtua_figther_2024_logo.png
Paradox Interactive
public://topics-images/paradox_interactive_logo.svg_.png
Europa Universalis
public://topics-images/europa-icon.png
Nintendo Switch 2
public://topics-images/mainvisual.png
Cloudflare
public://topics-images/cloudflare_logo.svg_.png
Samsung
public://topics-images/samsung.png
Google
public://topics-images/google_2015_logo.svg_.png
Uber
public://topics-images/uber.png
Microsoft 365
public://topics-images/m365.png
USA
public://topics-images/flag_of_the_united_states.svg_.png
GM
public://topics-images/0pe0po-z_400x400.jpg
Perplexity
public://topics-images/perplex.jpg