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