TESA Developer Space
  • 👏Welcome
  • 📺TESA Podcast
  • ⭐Getting Started
    • Who we are?
    • What we do?
    • Who's our Networking?
  • 🏫TESA University Program
    • RT-Thread IoT OS
      • University Program
        • RT-Thread Architecture
          • Hardware supported
          • RT-Thread Layers
          • RT-Thread x Renesas
        • Edge AI Workshop
          • Installation & First Coding
          • External IRQ via Button
          • Enable Ulog for FinSH
          • Enable WiFi for FinSH
          • IoT Connectivity using MQTT
          • OpenMV IDE
          • MicroPython Programming
          • TFLite in OpenMV
          • AI Model Training via Edge Impulse
      • RT-Thread on RISC-V
    • FPGA Edge AI
      • Professional Courses
    • Problem-based Learning
      • STM32 Development Toolchain
  • 📚TESA Technical Contents
    • Linux OS
      • Zero to Linux Hero
        • Computer OS Architecture
        • Anatomy of Linux System
          • Busybox
          • Linux Environment for Developer
        • Anatomy of Linux Kernel
          • UNIX/Linux History
          • GNU Project
          • Linux OS Architecture
        • Anatomy of Linux Kernel
          • Linux Kernel Principles
    • Karel Robot
  • 🤘RECOMMENDED by TESA
    • Embedded Systems Roadmap
Powered by GitBook
On this page
  • โครงการ GNU (GNU Project)
  • กำเนิด Linux
  1. TESA Technical Contents
  2. Linux OS
  3. Zero to Linux Hero
  4. Anatomy of Linux Kernel

GNU Project

โครงการ GNU (GNU Project)

ได้ถูกริเริ่มจากนักวิจัยจาก M.I.T ชื่อนาย Richard Matthew Stallman ซึ่งถูกเรียกขานว่า RMS เนื่องจากระบบปฏิบัติการ UNIX ไม่ได้ฟรีอีกต่อไปแล้ว โครงการ GNU นี้จึงได้เริ่มต้นขึ้นตั้งแต่เดือนกันยายน ปี ค.ศ. 1984 โดยวัตถุประสงค์หลักของโครงการนี้คือการพยายามเริ่มต้นสร้างแกนหลักของระบบปฏิบัติการ (Core OS) หรือเคอร์เนล (Kernel) โดยเรียกกันว่า HURD รวมถึงการสร้างกลุ่มโปรแกรมเครื่องมือต่างๆ เช่น C compiler (gcc), make (GNU make), Emacs, C library (glibc), และ coreutils (เช่นคำสั่ง ls, cp เป็นต้น) ใหม่ทั้งหมดเพื่อให้ทุกคนสามารถนำไปใช้ได้ฟรีเพื่อทดแทนระบบปฏิบัติการ UNIX แต่อย่างไรก็ตามการพัฒนาตัว HURD ก็ยังไม่เป็นไปตามแผนจำเป็นต้องหยุดกลางคัน นอกจากนั้น Stallman ได้ก่อตั้งองค์กรซอฟท์แวร์เสรี (Free Software Foundation) ซึ่งเป็นองค์กรที่ทำหน้าที่ให้การสนับสนุนการพัฒนาซอฟท์แวร์เสรี ที่มีบทบาทมากในปัจจุบันนี้

ระบบปฏิบัติการที่มีบทบาทในการกระตุ้นวงการพัฒนา ซึ่งได้รับอิทธิพลมาจากโครงการ GNU คือระบบปฏิบัติการ MINIX ย่อมาจาก “Minimal UNIX” ภายใต้พื้นฐานสถาปัตยกรรม Microkernel ซึ่งถูกพัฒนาโดยนาย Andrew S. Tanenbaum ในปี ค.ศ. 1987 และเขาเองก็ได้เขียนหนังสือชื่อว่า “Operating Systems: Design and Implementation” ร่วมกับนาย Albert Woodhull เพื่อต้องการที่จะเผยแพร่แนวทางการออกแบบและพัฒนาระบบปฏิบัติการให้กับวงการด้านนี้

The GNU Core Utilities

กำเนิด Linux

จนกระทั่งปี ค.ศ. 1991 นักศึกษาสาขาวิทยาการคอมพิวเตอร์ มหาวิทยาลัย Helsinki ประเทศฟินแลนด์ ชื่อนาย Linus Torvalds ได้ซื้อเครื่องคอมพิวเตอร์ชนิดตั้งโต๊ะของบริษัท IBM รุ่น Intel 80386 เพื่อใช้เป็นเครื่องฯสำหรับการล๊อกอินเพื่อเข้าไปใช้งานะรบบในห้องแล๊ปของมหาวิทยาลัย ซึ่งในขณะนั้นระบบปฏิบัติการ MS-DOS และ MINIX จะเป็นระบบปฏิบัติการหลักในเครื่องคอมพิวเตอร์ทั่วไป เขาจึงได้มีแนวคิดที่จะสร้างระบบปฏิบัติการแบบเปิดและฟรี โดยมีพื้นฐานคล้ายระบบปฏิบัติการ UNIX (UNIX-like) ในช่วงแรกของการพัฒนาเขาได้พยายามพัฒนาเทอร์มินัล (Terminal Emulator) บนตัวระบบปฏิบัติการ MINIX แต่ก็ติดปัญหาทางด้านเทคนิคอยู่หลายอย่าง เขาจึงได้ตัดสินใจพัฒนาขึ้นเองใหม่ โดยได้ใช้เครื่องมือจากโครงการ GNU ทั้งหมด ไม่ว่าจะเป็น C library, gcc, binutils, fileutils, make, emacs เป็นต้น รวมทั้งการพัฒนา Kernel โดยพยายามพัฒนาโปรแกรมทั้งหมดตามมาตราฐาน POSIX เช่นเดียวกันระบบปฏิบัติการ UNIX จนในที่สุดก็สามารถออกมาได้สำเร็จในชื่อที่ตั้งขึ้นมาว่า “Freax” ซึ่งเป็นการผสมคำจากคำทั้งสามคำคือ Free, Freak และ X และได้เปลี่ยนมาเป็น “Linux” ตามชื่อตัวเขาเอง ทาง Linus Torvalds ก็ได้เปิดเผยโค้ดโปรแกรมของระบบปฏิบัติการทั้งหมดสู่สาธารณะ เพื่อให้นักพัฒนาทั่วโลกช่วยกันปรับปรุงแก้ไข โดยได้ทำการส่งข้อความผ่านกลุ่มผู้ใช้ใน MINIX ด้วยข้อความดังนี้ “I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.”

โดยรุ่นของระบบปฏิบัติการลีนุกซ์ ในเลข Linux 0.01 ยังค่อนข้างมีข้อจำกัดอยู่มาก คือจะสามารถถูกใช้ได้กับเครื่อง Intel 80386 เท่านั้น โดยภายในไฟล์ที่ได้เผยแพร่ออกไปจะประกอบไปด้วย 4 ไฟล์ที่ระบุรายละเอียดดังนี้

  1. linux-0.01.tar.Z - sources to the kernel

  2. bash.Z - compressed bash binary if you want to test it

  3. update.Z - compressed update binary

  4. RELNOTES-0.01

ในที่สุดการเผยแพร่ในครั้งนี้ก็ได้เกิดการปฏิวัติโดยไม่คาดฝันเพราะมีนักพัฒนาจากทั่วทุกสารทิศจำนวนไม่น้อยที่ได้นำระบบปฏิบัติการนี้ไปพัฒนาจนเกิดความพยายามร่วมกันในการพัฒนาระบบปฏิบัติการลีนุกซ์อย่างจริงจังเป็นประวัติการณ์ แม้ว่าตัวนาย Linus Torvalds เองได้ถูกนาย Andrew Tanenbaum ผู้สร้าง MINIX ดูถูกไว้ว่าระบบปฏิบัติการลีนุกซ์จะล้าสมัยและจบลงก่อนปี ค.ศ. 1992 แต่ในที่สุดก็ได้พิสูจน์ว่าระบบปฏิบัติการลีนุกซ์ของเขานั้นสามารถยืนหยัดมาได้จนถึงวันนี้ ด้วยจุดแข็งของ Linux Kernel ของนาย Linus Torvalds และ GNU applications ของนาย Richard Stallman จนนิยมเรียกว่า GNU/Linux (อ่านว่า กะ-นู-สแลส-ลีนุกซ์) ซึ่งนาย Linus Torvalds ก็ยังคงเป็นผู้ควบคุมจัดการ (Supervisor) การพัฒนา Linux Kernel และดูแลองค์กร Linux Foundation ต่อไป

PreviousUNIX/Linux HistoryNextLinux OS Architecture

📚
http://www.kernel.org/pub/linux/kernel/Historic/old-versions/RELNOTES-0.01
arch
base64
basename
cat
chcon
chgrp
chmod
chown
chroot
cksum
comm
cp
csplit
cut
date
dd
df
dir
dircolors
dirname
du
echo
env
expand
expr
factor
false
fmt
fold
groups
head
hostid
hostname
id
install
join
kill
link
ln
logname
ls
md5sum
mkdir
mkfifo
mknod
mktemp
mv
nice
nl
nohup
nproc
numfmt
od
paste
pathchk
pinky
pr
printenv
printf
ptx
pwd
readlink
realpath
rm
rmdir
runcon
seq
shred
shuf
sleep
sort
split
stat
stdbuf
stty
sum
tac
tail
tee
test
timeout
touch
tr
true
truncate
tsort
tty
uname
unexpand
uniq
unlink
uptime
users
vdir
wc
who
whoami
yes