250x250
Notice
Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[오픈소스SW개발방법및도구] Lecture 01. Introduction to Opensource and Linux 본문

3학년 2학기 전공/오픈소스SW개발방법및도구

[오픈소스SW개발방법및도구] Lecture 01. Introduction to Opensource and Linux

시데브 2024. 9. 18. 15:32
728x90
경희대학교 이성원 교수님의 오픈소스 SW 개발 방법 및 도구 수업을 기반으로 정리한 글입니다.

 

Goal 

  • Understanding of 
    • Opensource
    • Latest Software Development Process, Philosophy and Tools
    • Opensources in Software Development Process and Tools
  • Experience of Linux as your
    • Main Computer(instead of Windows or MacOS)
    • Main Programming Environments
    • Main Data Analytics Environments
    • Main Gaming Platform
    • Main Hobby Environments
    • and etc.

 

Topics

  • Intro to Opensource and Linux
  • Problem Definition
  • Selecting Right Language
  • Selecting Right OS
  • Design (&Development) Process
  • Design by Figures
  • Programmers in Korea
  • Software Maintenance
  • Test and Enhancement
  • Design Pattern
  • Online Co-work and Education
  • Open Source License
  • Project Management

 

Open Source 

1. Definition of Open Source Software

- Open Source Software

  • Open source software(OSS): source code를 공개해 누구나 특별한 제한 없이, 그 코드를 보고 사용할 수 있는 open source license를 만족하는 software

- Free Software

  • Free Software: 복사와 사용, 연구, 수정, 배포 등의 제한이 없는 software 혹은 그 통칭
  • 1990년대 후반에는 free software 대신, open source software라는 용어가 많이 쓰이기 시작 
  • from GNU: not free beer -> free speech
  • open source를 수정하여 재배포 -> contribute 

- Free Software Foundation

  • Free Software Foundation(FSF): free software movenment를 돕기 위해 설립된 비영리 단체
  • software가 copyleft를 만족하며 배포되도록 함 -> GNU General Public License
  • GNU Project: Richard Stallman의 주도하에 시작된 공개 소프트웨어 프로젝트 -> 누구나 자유롭게 실행, 복사, 수정, 배포할 수 있고, 누구도 그런 권리를 제한하면 안 된다는 사용 허가권(License) 아래 소프트웨어를 배포
copyleft(저좌권): 파생 저작물에 동일한 자유를 적용해야 한다는 조건 
- 창작물의 자유로운 수정, 복제, 공유, 재배포를 허용하는 법적 기술
GNU General Public License(GNU GPL): 자유 소프트웨어 재단에서 만든 자유 소프트웨어 라이센스로, 소프트웨어의 실행, 연구, 공유, 수정의 자유를 최종 사용자에게 보장
- 가장 널리 알려진 copyleft

 

- GNU OS

  • GNU: 하나의 os이자, computer software의 모음집
  • GNU는 온전히 free software로만 이루어져 있으며, 그 중 대부분이 GNU project의 GPL로 라이센스된다.
  • GNU: GNU is Not Unix -> 디자인이 unix 계열이지만, free software인 점과 unix code를 포함하지 않는다는 점에서 차별점

 

2. Open Source Hardware 

- Arduino

  • 아두이노 hardware products는 CC BY-SA license에 의해 규정됨 <-> software는 보통 GNU Lesser General Public License(LGPL) or GNU General Public License(GPL)

 

3. Open Source Processor

- RISC-V

  • 프로세서를 만드는 설계 및 각종 소프트웨어를 만들어서 공유 

 

4. Open Source Datacenter

- Open Compute Project(initiated by Facebook)

  • Open Compute Project: 사용자가 원하는 인프라를 공급자가 만들어 제공하도록 하는 프로젝트
  • server, stroage, ...

- OCP TIP(Telecom Infra Project)

  • opensource hardware와 software 사이에 통신

 

Linux

1. Why Linux?

  • Linux Dominates
    • Smartphones and IoT - android
    • Physical Computing - Raspberry Pi, ..
  • Single OS for Super Computers
    • 현재의 서버 운영체제는 대부분 Linux
  • Liux over Windows Desktop

Reference: https://www.thomasmaurer.ch/2019/06/install-wsl-2-on-windows-10/

  • Linux over Robot
    • ROS
  • Linux over Game
    • Retropie
    • Stream OS
  • Linux over Data Science

 

2. 협의& 광의의 Linux

 

- narrow Linux

  • Linus Torvalds가 개발한, linux kernel software(OS)
  • Linux Foundation(LF): Linux의 발전을 제고하기 위해 설립된 비영리 연합체

- 광의의 Linux

  • linux foundation 산하 900개의 projects

-> Linux라고 할 때, linux os와 linux 기반의 거대한 ecosystem을 구분

 

3. Linux Desktop

  • Ubuntu Linux -> for server, cloud & IoT
  • Intel's Clear Linux Project
  • KALI -> Linux for Hackers 

참고자료

 

Open-source software - Wikipedia

From Wikipedia, the free encyclopedia Software licensed to ensure source code usage rights A screenshot of Manjaro running the Cinnamon desktop environment, Firefox accessing Wikipedia which uses MediaWiki, LibreOffice Writer, Vim, GNOME Calculator, VLC an

en.wikipedia.org

 

자유 소프트웨어 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 자유 소프트웨어(영어: free software)는 복사와 사용, 연구, 수정, 배포 등의 제한이 없는 소프트웨어 혹은 그 통칭이다. 소프트웨어의 수정 및 수정본의 재배포는

ko.wikipedia.org

 

카피레프트 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 카피레프트의 상징은 ©를 뒤집어서 표현한다. 카피레프트(영어: copyleft) 또는 저좌권(著佐權)은 저작권(영어: copyright 카피라이트[*])에 반대되는 개념으로, 파생

ko.wikipedia.org

 

Free Software Foundation - Wikipedia

From Wikipedia, the free encyclopedia Organization supporting the free software movement The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman[6] on October 4, 1985, to support the free software movement, wit

en.wikipedia.org

 

GNU - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. GNU개발자GNU 프로젝트 (커뮤니티 형성)프로그래밍 언어C, 어셈블리어OS 계열유닉스 계열소스 형태자유 소프트웨어마케팅 대상개인용 컴퓨터, 모바일 장치, 내장

ko.wikipedia.org

 

Arduino - Wikipedia

From Wikipedia, the free encyclopedia Italian open-source hardware and software company Arduino () is an Italian open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcon

en.wikipedia.org

 

12.Facebook서버와 OCP기술 보기

OCP (Open Compute Project)는? Facebook이 주도하여, 사용자가 원하는 인프라를 공급자가 만들어 제공하도록 하는 프로젝트이다. 보기 위해 미국 실리콘 벨리로 날아갔다~~~~~ <1> Open이라는 용어처럼 소스

brunch.co.kr

 

Telecom Infra Project - Wikipedia

From Wikipedia, the free encyclopedia Organization that shares telecom technologies and best practices Telecom Infra ProjectFormationFebruary 2016Type501(c)(6) non-profit81-1395224PurposeCollaborative telecom technologies community for design, build and im

en.wikipedia.org

 

리눅스 재단 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

728x90