1. 리눅스의 역사
1.1 리눅스의 기원
- 1987년: 네덜란드 암스테르담 자유대학교 앤드루 스튜어트 타넨바움이 운영체제 교육용으로 미닉스(Minix) 개발
- 1991년: 핀란드 헬싱키 대학 대학원생 리누스 토발즈가 미닉스를 접하고 새로운 운영체제 개발 시작
- POSIX 호환 커널 개발 목표
- 1991년 9월 17일: 리눅스 0.01 버전 공개
- 1991년 10월: 리눅스 0.02 공식 버전 발표
1.2 리눅스 연혁
- 1992년: 리눅스 0.95 버전, x86 칩 지원 및 GUI 추가
- 1994년: 리눅스 1.0 발표, 네트워킹 기능 추가
- 1995년: 리눅스가 학습용 OS를 넘어, 다양한 프로세서(인텔, 디지털, 썬 스팍 등) 지원
- 1996년: 리눅스 2.0 발표, 멀티프로세서 지원
- 1999년: SMP(대칭 멀티프로세싱) 공식 지원, 16개 CPU 사용 가능
- 2003년 이후: IBM, SUN 등의 지원으로 Unix 및 Windows와 경쟁
2. GNU와 오픈소스
2.1 GNU 프로젝트
- GNU(GNU's Not Unix): "GNU는 유닉스가 아니다"의 약자
- 리처드 스톨먼이 1983년 시작
- 주요 목표: 자유 소프트웨어 제공
- GNU 프로젝트의 핵심 구성 요소:
- GCC(GNU C Compiler)
- Emacs(문서 편집기)
- GNOME(X 윈도 데스크톱 환경)
- GNU tar 등
3. 리눅스 배포판 종류
3.1 주요 리눅스 배포판
배포판 특징
슬랙웨어(Slackware) | 1993년 최초의 배포판, 안정성과 단순성이 특징. GUI 기반 설치 미지원 |
데비안(Debian) | 1993년 GNU 기반, 자유 소프트웨어 중심. 다양한 플랫폼 지원 |
레드햇(Red Hat) | 1993년 출시, RPM 패키지 사용, GUI 설치 지원 |
수세(SUSE) | 1992년 독일에서 시작, YaST 설정 툴 제공 |
우분투(Ubuntu) | 2004년 출시, 사용자 친화적인 GUI 제공 |
센트OS(CentOS) | Red Hat Enterprise Linux 기반, 기업 환경에 최적화 |
4. 리눅스 커널 개요
4.1 리눅스 커널 디렉터리 구조
디렉터리 설명
kernel/ | 커널의 핵심 기능 포함 |
arch/ | CPU 아키텍처 관련 코드 |
fs/ | 파일 시스템 관련 코드 |
mm/ | 메모리 관리 |
drivers/ | 하드웨어 드라이버 코드 |
net/ | 네트워크 관련 코드 |
ipc/ | 프로세스 간 통신 |
init/ | 부팅 시 초기화 과정 |
include/ | 헤더 파일 저장 |
others/ | 기타 보조 기능 |
....
1. 가상머신 개요
- 가상머신(Virtual Machine, VM): 물리적 컴퓨터에서 여러 개의 운영체제를 실행할 수 있도록 하는 소프트웨어 기술
- 하드웨어 가상화를 통해 여러 운영체제가 완전히 분리된 환경에서 실행 가능
- 가상화를 제공하는 소프트웨어를 가상 머신 모니터(VMM) 또는 하이퍼바이저(Hypervisor)라고 함
- 게스트 운영체제(Guest OS): 가상 머신 안에서 실행되는 운영체제
2. 가상머신의 종류
2.1 VirtualBox
- innotek에서 개발, 현재 오라클(Oracle)이 인수
- 오픈 소스 무료 소프트웨어
- 주요 특징:
- Windows, macOS, Linux, Solaris 등 다양한 운영체제 지원
- 원격 데스크톱 프로토콜(RDP), iSCSI, USB 원격 장치 지원
- VMWare와 MS Virtual PC에 비해 기능이 다소 적음
2.2 Parallels
- Mac 전용 가상머신 소프트웨어
- Mac에서 Windows와 macOS를 동시에 실행 가능
- 주요 특징:
- Windows 앱(Excel, Word, Visual Studio 등) 실행 가능
- Windows와 Mac 간 파일 공유 가능
- 성능 저하 없이 실행 가능
- Windows 10, 8.1, 7, Linux, macOS 지원
2.3 VMware
- *VMWare Inc.**에서 개발한 가상화 소프트웨어
- 클라우드 컴퓨팅 및 가상화 솔루션 제공
- 주요 제품:
- VMware Workstation (데스크탑 가상화)
- VMware ESXi (서버 가상화, OS 없이 직접 실행 가능)
- VMware Player (무료 가상화 소프트웨어)
- 2020년 기준 세계 1위 클라우드 관리 소프트웨어 기업
3. VMware를 활용한 Ubuntu 설치
3.1 VMware 다운로드
- 다운로드 링크: VMware Workstation Player
3.2 Ubuntu ISO 파일 다운로드
- 다운로드 링크: Ubuntu 공식 사이트
3.3 Ubuntu 설치 과정
- VMware 실행 → 새 가상 머신 생성
- Ubuntu ISO 선택 후 설치 진행
- 가상 머신 설정 (CPU, RAM, 저장공간 등 조정)
- 설치 완료 후 Ubuntu 실행
4. Ubuntu 기본 명령어 및 설정
4.1 터미널 기본 명령어
명령어 설명
sudo apt update | 패키지 목록 업데이트 |
ls -l | 파일 목록 보기 |
pwd | 현재 디렉토리 확인 |
mkdir [폴더명] | 새 폴더 생성 |
cd [폴더명] | 해당 폴더로 이동 |
4.2 기본 프로그램 설치
- Midnight Commander (파일 관리자)
- sudo apt install mc -y mc
- Python3 설치 및 실행
- sudo apt install python3 -y python3 print("Hello Linux!")
4.3 C언어 컴파일러 설치 및 실행
- nano를 이용한 C 파일 생성
- 코드 입력:
- #include <stdio.h> int main() { printf("Hello, World!\\n"); return 0; }
- Ctrl + X → Y → Enter 로 저장 후 종료
- nano test.c
- GCC 설치 및 컴파일
- sudo apt install gcc -y gcc -o test test.c
- 실행
- ./test
4.4 캘린더 확인
ncal
cal 2023
cal 03 2023
5. Python 활용 예제
5.1 기본 파일 리스트 출력
import os
os.system("ls -l")
5.2 반복문을 활용한 출력
for i in range(100):
print(i)
5.3 구구단 출력 함수
def gugudan(m):
for n in range(1, 10):
print(f'{m} * {n} = {m * n}')
gugudan(5)
5.4 nano로 Python 파일 작성 후 실행
- 파일 작성
- 코드 입력:
- def gugudan(m): for n in range(1, 10): print(f'{m} * {n} = {m * n}') num = int(input("구구단 출력: ")) gugudan(num)
- Ctrl + X → Y → Enter 로 저장 후 종료
- nano gugudan.py
- Python 파일 실행
- python3 gugudan.py