Skip to content

ybkim453/osproject

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Operating System Project_Team 1

본 레포지토리는 C 언어를 통해서 리눅스 시스템의 구현하기 위한 코드를 제공한다.

프로젝트 개요

  • 목표: Mini Operating System 구현
  • 전략: C언어를 이용하여 리눅스 환경에서 자주 사용되는 몇 가지 명령어를 구현하여, 가상 OS 환경에서 테스트

⚙️ 환경 세팅 & 실행 방법

1. 사전 준비

git clone https://github.com/wonpark1/osproject.git

2. 실험 실행 (터미널에서)

docker login
docker build -t mini-os .
docker run -it mini-os 

3. 실험 가능 명령어 목록

  • mkdir: 새로운 디렉토리를 생성

    • mkdir -p: 상위 디렉토리가 존재하지 않을 경우 자동으로 함께 생성
    • mkdir -m: 생성할 디렉토리의 권한을 지정
  • ls: 현재 디렉토리의 파일 및 디렉토리 목록을 출력

    • ls -l: 현재 파일 목록을 파일크기 및 파일 편집시간과 함께 상세히 출력력
    • ls -a: 현재 파일 목록 숨김파일까지 출력
    • ls -al, ls -la: 'ls -l'과 'ls -a' 기능 동시에 수행행
  • cd: 현재 작업 디렉토리를 변경

    • rm -r: 재귀적 삭제, 디렉토리/파일을 삭제할 때 사용 안의 내용도 같이 삭제
    • rm -f: 삭제권한이 없거나 삭제 불가능해도 오류메시지를 출력하지 않게 삭제
    • rm -v: 삭제되는 파일이나 디렉터리의 이름을 출력해서 사용자에게 처리 상황을 알림
    • rm -rfv: 'rm -r', 'rm -f', 'rm -v' 기능 동시에 수행
  • cat: 파일의 내용을 출력하거나 파일을 연결

    • cat >: 새파일 만들면서 내용 수정
    • cat -n: 만들어진 파일 내용을 행 넘버과 함께 출력
  • pwd: 현재 작업 중인 디렉토리의 전체 경로를 출력

  • chown: 파일이나 디렉토리의 소유자 및 그룹을 변경

    • chown -R: 지정한 디렉토리뿐 아니라 하위의 모든 파일 및 디렉토리에 대해 소유자/그룹을 재귀적으로 변경
  • grep: 파일에서 특정 문자열을 검색

    • grep -n: 파일에 찾는 단어를 일치하는 줄의 번호와 함께 출력
    • grep -i: 대소문자를 구분하지 않고 검색을 수행
    • grep -v: 검색어와 일치하지 않는 줄만 출력
    • grep -o: 검색어와 정확히 일치하는 단어만 출력
  • find: 파일 시스템에서 조건에 맞는 파일이나 디렉토리를 검색

    • find [경로]: 하위 모든 파일 및 디렉토리 출력
    • find [경로] -type d: 하위 디렉토리만 출력
    • find [경로] -type f: 하위 파일만 출력
    • find [경로] -name "이름": 해당 이름과 일치하는 파일/디렉토리 출력
    • find [경로] -name "*.확장자": 특정 확장자 파일 출력 (ex. *.txt)
  • rm: 파일이나 디렉토리를 삭제

    • cd: 루트로 이동
    • cd: 루트로 이동
    • cd: 루트로 이동
    • cd: 루트로 이동
  • cp: 파일이나 디렉토리를 복사

  • alias: 명령어에 별칭을 지정

    • unalias: 별칭 삭제
  • diff: 두 파일의 차이점을 비교하여 출력

  • useradd: 새로운 유저 생성

  • userdel: 유저 삭제

  • userlist: 유저 목록 출력

폴더 구조

📁 2025_OS_01_1/
├── include/                  # 헤더 파일들이 위치한 폴더
│			├── command.h     # 명령어 함수들의 선언과 관련 구조체 정의
│			├── osproject.h   # 프로젝트 전반에 사용되는 상수와 기본 구조체 정의
│			├── parser.h      # 명령어 파싱 관련 함수 선언
│			├── stack.h       # 경로 추적을 위한 스택 구조체와 함수 선언
│			└── system.h      # 시스템 초기화와 관리 함수 선언
└── src/                      # 소스 코드 파일들이 위치한 폴더
			├── alias.c       # alias, unalias 명령어 구현
			├── cat.c         # cat 명령어 구현 (파일 읽기/쓰기)
			├── cd.c          # cd 명령어 구현 (디렉토리 이동)
			├── chown.c       # chown 명령어 구현 (소유자/그룹 변경)
			├── command.c     # 공통으로 사용되는 명령어 유틸리티 함수 구현
			├── cp.c          # cp 명령어 구현 (파일 복사)
			├── diff.c        # diff 명령어 구현 (파일 비교)
			├── find.c        # find 명령어 구현 (파일/디렉토리 검색)
			├── grep.c        # grep 명령어 구현 (파일 내용 검색)
			├── ls.c          # ls 명령어 구현 (디렉토리 내용 출력)
			├── main.c        # 프로그램의 메인 함수와 초기화 로직
			├── mkdir.c       # mkdir 명령어 구현 (디렉토리 생성)
			├── parser.c      # 사용자 입력 명령어 파싱 및 실행
			├── pwd.c         # pwd 명령어 구현 (현재 작업 경로 출력)
			├── rm.c          # rm 명령어 구현 (파일/디렉토리 삭제)
			├── stack.c       # 경로 추적용 스택 구조체 구현
			├── system.c      # 파일 시스템 초기화와 관리 기능 구현
			└── user.c        # 사용자 관리 관련 기능 구현

About

yongbin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published