오픈소스 소프트웨어의 종류
1. 개발 언어
1-1. Python
for offline - https://www.python.org/downloads/source/
Python은 1991년에 발표된 프로그래밍 언어이다. 몇몇 예외를 제외하면 대부분의 라이브러리를 오픈 소스로 지원한다. 다른 언어에 비하면 배우기 쉽고, 빠른 생산성과 다양한 라이브러리와 같은 장점에 주목하여 최근 많은 프로그램이 Python을 사용한다. 대표적으로 인스타그램이나 유튜브는 Python으로 구현되어 있다.
1-2. Ruby
for offline - https://www.ruby-lang.org/ko/downloads/
Ruby는 일본의 마츠모토 유키히로라는 사람이 개발한 프로그래밍 언어이다. Ruby는 완전한 객체지향 언어이며, 문법이 쉽다는 장점이 있어 초보자도 쉽게 다룰 수 있다. 트위터나 미투데이가 Ruby로 개발된 대표적인 예시이며, GitHub도 Ruby를 사용한다.
1-3. HTML
HTML은 Hyper Text Mark-up Language의 약자이며, 이름에서 보듯이 대표적인 마크업 언어이다. HTML의 소스는 인터넷에서 우클릭 후 소스 보기를 하면 볼 수 있다. 인터넷에서 쉽게 볼 수 있는 htm이나 html문서는 이 언어를 이용하여 작성되었다. 현재는 표준으로 HTML5가 나와서 웹 표준으로 사용되고 있다.
1-7. C
for offline - https://opensource.microsoft.com/?keyword=C%23
C#은 2000년도에 Microsoft가 개발한 객체 지향 프로그래밍 언어이다. C#은 .NET Framework를 필요로 하기에, Windows외에서 사용하려면 Xamarin이라는 프레임워크와 Mono라는 개발 툴이 필요하다. 현재 C#은 상당히 높은 점유율을 보유하고 있으며, 언어의 완성도가 높고, UI의 작업이 편리하다는 장점을 가지고 있다. 최근에 Microsoft의 친 오픈소스 정책이후 오픈소스로 전환된 언어이다.
이 외에도 PHP,R,Swift 등도 오픈소스 언어이다.
2. 텍스트 에디터,IDE,컴파일러,git
2-1. Eclipse
for offline - https://www.eclipse.org/downloads/
for offline - https://git.eclipse.org/c/
Eclipse는 자바를 기반으로 2001년 부터 제작되기 시작한 IDE(통합 개발 환경)이다. 초기에는 IBM의 소프트웨어 개발 툴이 될 예정이었으나, 제작 도중 오픈소스로 전환하였다. Eclipse는 운영 체제의 제한 없이 사용가능 한 프로그램이며, 기본적으로는 Java 개발 툴이나, 플러그인을 사용하면 C/C++을 비롯하여 수많은 언어의 개발을 담당할 수 있다.
2-2. Git
for offline - https://git-scm.com/downloads
for offline - https://github.com/git/git
Git은 리누스 토발즈가 개발한 분산형 버전 관리 프로그램이다. 토발즈가 리눅스 커널 관리를 위하여 제작하였으며, 속도가 매우 빠르다. 또한 소스 코드를 수정하다가 잘못될 수 있기 때문에 오픈 소스 시대에 최적화된 저장소라고 평가되고 있다. Git은 Microsoft나 Mozilla 재단, 트위터 등 수많은 프로그램이 사용하고 있으며, Git을 호스팅해주는 GitHub는 현재 오픈소스의 중심지로서 자리잡고 있다.
2-3. vi(vim)
for offline - https://vim.sourceforge.io/download.php
for offline - https://github.com/vim/vim
vi(vim)은 UNIX계열부터 사용되는 텍스트 에디터의 한 종류이다. Linux 기반 운영체제에서는 기본적으로 설치되어 있는 텍스트 에디터이기도하다. vi(vim)은 초보자가 사용하기 힘든 인터페이스를 가지고 있으나, 숙달되면 vi(vim)은 손동작 횟수가 줄어들기 때문에 다른 에디터에 비해서 빠른 속도로 작업할 수 있다는 장점을 가지고 있다. 또한 커스터마이징이 쉽고 오랫동안 사용된 에디터이기에 유용한 플러그인이 많이 존재한다.
2-4. gcc
for offline - https://gcc.gnu.org/install/
for offline - https://github.com/gcc-mirror/gcc
gcc는 GNU Compiler Collection의 약자이다. 이름대로 GNU 프로젝트에서 제작한 컴파일러이며, Linux등 오픈소스 플랫폼에서의 일반적인 컴파일러이다. gcc는 처음에는 C 컴파일러만을 지원했으나, 기능이 추가되며 다른 언어를 지원하게 되었다. 현재 지원하는 언어는 C,C++,Objective-C,Fortran,Java,Ada,Go 등이 있다.
이 외에도 Emacs vscode등과 같은 오픈소스 텍스트 에디터가 있다.
3. 웹브라우저(엔진)
3-1. Gecko
for offline - https://github.com/mozilla/gecko
Gecko는 Mozilla 재단에서 개발한 웹브라우저 엔진이다. 당시 넷스케이프를 갈아엎고 새로 엔진을 짜는 마일스톤 과정을 거쳤고, 그 이후에 모질라 애플리케이션 스위트라는 웹브라우저와 메일 클라이언트가 혼합된 버전이 탄생한다. 그러나 기능은 강력했지만 무겁다는 단점이 있었고, 여기서 웹브라우저 기능만 분리시킨 파이어폭스를 만들게 된다. 파이어폭스는 상당히 가볍고, 메모리 사용량이 다른 브라우저에 비해 상당히 낮기 때문에 탭을 100개 이상 사용해도 안정적으로 돌아가는 편이라는 장점이 있다.
3-2. Chromium
for offline - https://www.chromium.org/developers/how-tos/get-the-code
Chromium은 구글 크롬의 오픈 소스이다. 상표 등록 등의 문제로 별도의 소스 코드로 공개를 한다. 엔진 자체는 블링크 렌더링 엔진을 사용한다. 구글 크롬이 가진 속도나 기능등의 강점을 이유로 Chromium기반 웹브라우저는 상당히 많은 개수가 있다. 상단의 Opera 브라우저를 시작으로 해서 세계적으로 많은 브라우저가 있다.
3-3. ChakraCore
for offline - https://github.com/Microsoft/ChakraCore
ChakraCore는 Microsoft Edge의 웹 브라우저 엔진이다. 현재 이 엔진은 오직 Edge에만 사용되고 있다. 2015년 12월 5일에 오픈 소스로 전환하였으며, 현재는 우분투에 ChakraCore를 옮기는작업을 시행중이다. ChakraCore를 기반으로 한 Edge는 웹표준인 HTML5를 가장 잘 준수하는 웹브라우저이고, IE에 비해 빠른 속도와 다양한 편의 기능의 추가가 장점으로 부각되고 있다.
4. 운영체제
4-1. Android
for offline - https://source.android.com/
Android는 Linux 커널을 기반으로 제작된 모바일 플랫폼의 운영체제이다. 안드로이드는 라이선스를 아파치와 GPL 둘을 적용하고 있다. 현재 안드로이드는 세계에서 가장 많은 사람이 사용하고 있는 운영체제이며, 대표적인 오픈소스 소프트웨어의 하나이다. 안드로이드는 커널부터 SDK(소프트웨어 개발 툴)까지 전부 지원하고 있으며, 커널은 C로, 일부 라이브러리는 C++로, UI와 소프트웨어는 Java로 구성되어있다.
4-3. FreeBSD
for offline - https://www.freebsd.org/
for offline - https://github.com/freebsd/freebsd
FreeBSD는 UNIX 계열 OS이다. BSD계열 중 macOS와 iOS다음으로 많이 쓰인다. FreeBSD는 BSD라이선스를 따르는데 이는 GPL과는 다르게 소스를 수정해서 공개를 안해고 상업적으로 이용해도 원저작자만 표기하면 문제가 없는 라이선스이다. 현재 FreeBSD는 데스크탑이나 서버 뿐만 아니라 플레이스테이션과 닌텐도 스위치의 OS로도 채택되어 사용되고 있다.
이 외에도 Ubuntu를 비롯한 여러 Linux기반 OS가 오픈소스 소프트웨어이다.
5. 기타
5-1. GIMP
for offline - https://www.gimp.org/
for offline - https://github.com/GNOME/gimp
GIMP는 GNU Image Manipulation Program의 약자이다. Linux에 최적화 되어있으나 다른 OS에서도 사용 가능하다. 일반적으로 전문가 수준이 아니라면 포토샵의 비슷한 수준의 기능을 가지고 있다. 다만 최적화 문제나 인터페이스 등의 문제로 포토샵보다는 퍼포먼스가 떨어진다.
5-2. Facebook
for offline - https://github.com/facebook
Facebook 또한 오픈소스 소프트웨어이다. 2004년부터 서비스를 시작하여 지금까지 이어오고 있다. Facebook은 Hack이라는 언어를 개발해서 사용하고 있으며, 현 시점에서도 빠르게 성장하여 미국의 상장기업 중 시가총액 5위에 해당하는 기업이 되었다.
5-3. MediaWiki
for offline - https://github.com/wikimedia/mediawiki
우리가 자주 쓰는 wikipedia 또한 MediaWiki라는 오픈 소스를 기반으로 생성되었다. 위키 엔진 중에서는 기능이 많고 검색 또한 용이하기 때문에 일부 위키를 제외하면 우리가 보는 위키는 대부분 이 미디어위키를 기반으로 하는 위키이다.