2025-소프트웨어과 2학년/리눅스(Linux)

Linux(리눅스)-01, 02

simless786-it 2025. 3. 14. 11:49

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 원격 장치 지원
    • VMWareMS 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 다운로드

3.2 Ubuntu ISO 파일 다운로드

3.3 Ubuntu 설치 과정

  1. VMware 실행 → 새 가상 머신 생성
  2. Ubuntu ISO 선택 후 설치 진행
  3. 가상 머신 설정 (CPU, RAM, 저장공간 등 조정)
  4. 설치 완료 후 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언어 컴파일러 설치 및 실행

  1. nano를 이용한 C 파일 생성
    • 코드 입력:
    • #include <stdio.h> int main() { printf("Hello, World!\\n"); return 0; }
    • Ctrl + X → Y → Enter 로 저장 후 종료
  2. nano test.c
  3. GCC 설치 및 컴파일
  4. sudo apt install gcc -y gcc -o test test.c
  5. 실행
  6. ./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 파일 작성 후 실행

  1. 파일 작성
    • 코드 입력:
    • def gugudan(m): for n in range(1, 10): print(f'{m} * {n} = {m * n}') num = int(input("구구단 출력: ")) gugudan(num)
    • Ctrl + X → Y → Enter 로 저장 후 종료
  2. nano gugudan.py
  3. Python 파일 실행
  4. python3 gugudan.py