유닠스 계열

From Hidden Wiki
(Redirected from 유닉스 계열)
Jump to navigation Jump to search
필독 사항 유닠스 계열 저작물, 성인물, 도박 웹 써버 보안 프로그래밍 그래핔 파싱
필독 사항 고스트BSD 표면 웹 싸이트 제작 리눅스 마스터 파이썬 트킨터 뷰티펄 숲
수학 아이투피 마약, 아청물, 해킹 웹 싸이트 보안 웹 프로그래밍 데이터 분석 게임 제작
통계학 뮤와이어 다크넽 싸이트 제작 정보 보안 기사 쟁고우 팬더즈 파이게임

개요

운영 체제 (operating system, OS)에는 유닠스 계열 (Unix-like), 윈도우즈 계열, 그리고 기타가 있다. 기타에는 MS-도스 (MS-DOS), 고전 Mac OS (classic Mac OS, 맼 OS. Mac OS 9까지.) 등이 있다. 맼OS (macOS, Mac OS X)는 유닠스 계열이다.


UNIX (AT&T) -> BSD -> 386BSD -> FreeBSD, NetBSD


최초에 AT&T에서 만든 유닠스(UNIX)가 있었다. 그리고 거기서 포크(fork)되어 비에스디(BSD)가 나왔다. BSD에서 나온 게 386비에스디(386BSD)이며, 386BSD에서 나온 게 프리BSD(FreeBSD)와 넽BSD(NetBSD)이다. 넽BSD에서 파생된 게 오픈BSD(OpenBSD)이다.


현재 FreeBSD, NetBSD, OpenBSD는 다른 배포판을 수정해서 재배포하지 않고, 직접 만드는 독립된 배포판(independent distribution)이다. 즉, 수정 없이는 소프트웨어 등이 서로 호환이 되지 않는다.


FreeBSD에서 나온 배포판으로는 드래건플라이 BSD (DragonFly BSD), 트루OS (TrueOS), 고스트BSD (GhostBSD), 넼스트스텦 (NeXTSTEP) 등이 있다. 넼스트스텦에서 나온 게 맼OS (macOS)와 아이OS (iOS)이다.


유닠스 계열 (Unix-like) 운영 체제리넠스 (Linux)도 있다. Linux에는 데비안 (Debian) 계열인 우분투 (Ubuntu), 리넠스 민트 (Linux Mint), 칼리 리넠스 (Kali Linux)와, 레드 햍 (Red Hat) 계열인 쎈트OS (CentOS), 앤드러이드 (Android) 계열, 기타 계열이 있다.


유닠스 유사, 유닉스 유사, 유닠스 계열, 유닉스 계열, 유닠스 호환, 유닉스 호환, 유닠스 계통, 유닉스 계통 등으로도 부른다.


마이크로소프트에서는 예전엔 핫메일(Hotmail) 서버로 프리BSD(FreeBSD) 쓰다가 윈도우즈 2000 서버로 넘어갔다.[1] [2]


BSD와는 다른 유닠스 계열로는 쏠라리스(Solaris)가 있다. Solaris에서 파생된 게 오픈쏠라리스(OpenSolaris)이고, 오픈쏠라리스에서 파생된 게 일루모스(illumos)이다. OpenSolaris와 illumos에서 파생된 운영 체제로는 오픈인디애나(OpenIndiana)와 스마트OS(SmartOS)가 있다.

분류

유닉스를 본래 제작한 사람들 가운데 한 명인 데니스 리치리눅스와 같은 유닉스 계열 시스템이 사실상(de facto)의 유닉스 시스템이라고 의견을 냈다.[3] 에릭 레이먼드와 랍 랭글리(Rob Langley)는 유닉스 계열 시스템에 세 가지 종류가 있다고 언급하였다.[4]

유전적 유닉스

유전적 유닉스(genetic UNIX)는 AT&T의 코드베이스(codebase)에 역사적 연관을 가진 운영 체제이다. 즉, 진짜 유닠스이다.

BSD는 현재는 AT&T의 소스 코드가 없지만, 원래 AT&T의 소스 코드에서 포크했으므로 이 분류에 들어간다.

FreeBSD의 소스 코드를 사용하는 macOS도 이 분류에 들어간다.

상당수의 상표 유닉스 시스템이 이 분류에도 동시에 들어간다.

상표 유닉스

상표 유닉스(trademark or branded UNIX)는 오픈 그룹이 만든 단일 유닉스 규격을 충족하여 UNIX라는 명칭을 사용할 수 있도록 인증받은 시스템이다. 돈 내고 Unix 마크를 달 권리를 사온 애들이다. 이름만 유닠스이다. 겉 껍데기는 유닠스인데 속 알맹이는 전혀 다른 무언가이다. 어쨌든 유닠스 분류에는 들어간다.


단일 유닠스 규격을 만족하고, Unix 명칭을 사용 가능하다. 그러나 반드시 AT&T UNIX의 후손일 필요는 없다.


단일 유닉스 규격 사양을 만족하기 위해 AT&T의 유닉스 소스 코드를 사용하지 않아도 된다는 점에 주의해야 한다. 실제의 예로, IBMz/OS (OS/390)의 소스 코드는 완전히 독자적으로 만들어졌으나, 'UNIX'란 이름을 사용하도록 허용받고 있다.

z/OS 등 극히 소수의 예외적인 운영 체제가 없었다면 상표 유닉스라는 분류도 필요 없다.


유전적 유닉스의 상당수가 이 분류에도 동시에 들어간다.

기능적 유닉스

기능적 유닉스(functional UNIX)는 단일 유닉스 규격에 거의 상응하는 방식으로 동작하는 유닉스 계열 시스템이다. 즉, 유닠스가 아니며, 짝퉁 유닠스이다.


유닠스 파일시스템 (Unix filesystem)과 유사한 파일시스템(filesystem. /home, /boot 등.)을 갖고 있으며, 퍼짘스(POSIX) 규격을 대부분 따르고, 유닠스와 거의 동일한 명령어(command. ls, cp, mv, rm 등.)를 사용한다.


리눅스미닉스가 있다.


유전적 유닉스와는 달리 AT&T에서 만든 Unix소스 코드와 아무 연관도 없이 독자적으로 만들어진 운영 체제들이며, 상표 유닉스와 달리 Unix 명칭을 사용하도록 인증을 받은 것도 아니다. 하지만 유닉스처럼 생겼고, 유닉스처럼 작동한다. 위키백과:오리 실험의 “만약 어떤 생물이 오리처럼 생겼고, 오리처럼 헤엄치고, 오리처럼 꽥꽥거린다면 그 생물은 오리일 것입니다”와 유사한 생각으로 만들어진 분류이다.


BSD

FreeBSD, NetBSD, OpenBSD, DragonFly BSD는 CLI 화면으로 설치하는데 1998년도도 아니고, 2018년도에 CLI로 설치하는 운영 체제도태되는 게 당연하다. 트루OS, 고스트BSDGUI로 설치한다.


2018년 10월 2일 기준으로 FreeBSD는 2016년에 나온 Intel Kaby Lake까지 지원[5]하고, DragonFly BSD는 2017년에 나온 Intel Coffee Lake까지 지원[6] [7]한다. 리넠스(Linux)는 최신 하드웨어도 나오자마자 지원하고, 어떨 때는 윈도우즈보다 빨리 지원하는데, BSD는 나온지 2년 된 하드웨어도 지원한다고 장담 못 한다. 사실 베라크맆트(VeraCrypt) 설치 지원도 DragonFly BSD가 FreeBSD보다 빨랐다.


예를 들어, 윈도우즈에서도 자동 설치가 안 되어 별도로 설치 파일을 다운로드 받아 설치해야 했던 무선 랜(wireless LAN) 드라이버(driver)를 리눅스에서는 자동으로 설치를 지원해주는 경우가 있다. 물론 BSD에서는 한참 있어야 지원 하드웨어 목록에 올라간다.


2018년 10월 2일 기준으로 TrueOS는 2017년에 나온 Intel Coffee Lake CPU(그래핔 칲셑 포함)에 설치 가능하나, GhostBSD는 그래핔 드라이버가 지원 안 되는지 부팅은 되는데 CLI 로그인 화면만 뜨고 GUI가 안 떠서 설치가 안 된다. login: 자리에 ghostbsd를 치면 비번 없이 로그인은 되지만 startx나 installer를 쳐도 GUI가 안 뜬다. 앞에 sudo를 붙여도 안 된다. TrueOS도 그래핔 카드(그래핔 칲셑) 드라이버를 제대로 못 잡는 건 똑같지만, 그래도 GUI는 띄워준다.


대신 고스트BSD는 UFS에서는 파티션을 만들고 삭제하는 게 가능한 것 같다. 사실 원본인 프리BSD에도 UFS용 파티션 설정 기능이 있고, ZFS에서는 파티션 설정이 안 되고 전체 설치만 되는데 고스트BSD도 동일하다. 하지만 트루OS는 ZFS만 지원함으로써 아예 파티션 변경을 지원하는 기능이 없다는 황당한 결과가 나온다.

그런데 고스트BSD프리BSD에서는 아예 그래픽 드라이버를 못 잡아 CLI만 뜨던 Inter Coffee Lake CPU의 내장 그래픽도, 트루OS에서는 일단 GUI로 사용 가능할 정도로 대체 드라이버로 잡아준다. 그리고 프리BSD와 리눅스에서는 연결 못 하던 외장 HDD도 트루OS에서는 연결해준다. 프리BSD도 일반적인 USB 메모리 정도는 자동으로 연결해주고, 사운드 칲셑 드라이버도 자동으로 잡아준다.


지금 BSD를 쓰는 느낌은 1990년대나 2000년대에 리눅스를 쓰는 느낌과 비슷하다. 최신 하드웨어 드라이버도 못 잡고, 디자인도 후지고. 하지만 지금 리눅스윈도우즈맼OS랑도 별 차이 없다.


윈도우즈에서는 인식 되고, 리눅스에서는 인식이 안 되던 외장 HDD를 TrueOS에서 인식하는 경우도 있다.


BSD 계열의 사용자 숫자 순위는 https://distrowatch.com/search.php?ostype=BSD 에서 볼 수 있다. 데비안(Debian)은 리넠스 커널도 쓰고, BSD 커널도 쓸 수 있다. 또한 저 순위에는 macOS와 iOS는 빠져있다.


BSD 설치시에는 SSDHDD에 15 GB 정도의 공간을 배정하면 된다.[8]


UEFI + GPT

"Legacy BIOSMBR 조합"이 아닌 "UEFIGPT 조합"으로 설치하는 방법은 프리BSD 문서 참조.

BSD 설치용 USB 드라이브 만들기

윈도우즈리넠스(Linux) 설치용 USB 드라이브를 만들 때 많이 쓰는 Rufus는 BSD 설치용 USB 드라이브 제작에서는 인식할 수 없는 iso 이미지라는 오류 메시지가 뜨면서 작동하지 않는다.


하지만 Etcher ( https://etcher.io/ )나 Win32 Disk Imager ( https://sourceforge.net/projects/win32diskimager/ )로 만들 수 있다. img 파일이나 iso 파일을 다운로드 받아서 USB 메모리에 구우면 된다.


부팅용 USB 메모리를 만든 후 윈도우즈에서 "F: 드라이브의 디스크를 사용하기 전에 포맷해야 합니다. 형식을 지정하시겠습니까?"라고 뜨는데 당연히 "디스크 포맷"이 아니라 "취소"를 눌러야 한다. BSD의 파일 시스템 형식을 윈도우즈에서 이해하지 못 해서 포맷하려고 하는 것이기 때문이다.


해당 파티션을 삭제하고 싶으면 윈도우즈 10(Windows 10)에서 윈도우즈(Windows)에 내장된 디스크 관리(Disk Management)를 검색해서 그 파티션을 삭제하면 된다. 하지만 BSD 부팅용 USB는 골 때리게 파티션 삭제가 안 되는 경우가 많다. 그럴 때는, 윈도우즈에서 cmd를 입력하여 명령 프롬프트를 실행시키고, diskpart를 입력하여 diskpart.exe를 실행한다. 그리고 list disk로 USB 메모리를 찾는다. 디스크의 크기를 보면 쉽게 찾을 수 있다. 그리고 만약 디스크 1이면 select disk 1을 입력한다. 그리고 list partition을 입력하여 disk 1의 파티션 목록을 본다. 아마 파티션 1에서 3까지 나올 것이다. 모두 지워주면 된다.

select partition 1

delete partition override

select partition 2

delete partition override

select partition 3

delete partition override

위와 같이 하면 모두 지워진다.[9] [10] [11]

exit을 입력하여 종료하면 된다.


Disk Management에서 파티션을 지우려고 하는데 The request is not supported.라고 뜨면서 안 지워지거나 cmd로 실행한 diskpart에서 select partition 1을 했는데 There is no partition selected.라고 뜨면서 안 되면 diskpart에서 select disk 1 (숫자는 디스크마다 다름.)을 입력한 후 아래와 같이 입력한다.

clean

그러면 해당 디스크의 파티션을 모두 지운다. 만약 이걸로도 해결 안 되면

clean all

을 한다. clean all은 시간이 꽤 많이 걸리니 clean이 안 먹힐 때만 실행한다.


  • DiskPart: There Is No Partition Selected Error | Why & How-to Fix?

September 25, 2018

https://www.disk-partition.com/diskpart/there-is-no-partition-selected-3889.html


BSD는 설치용 USB 메모리만 병신으로 만드는 게 아니라 BSD를 전체 설치할 경우, 설치한 SSDHDD도 병신으로 만든다. 전체 설치로 트루OS를 설치했다가 지우고 리눅스 민트를 설치하려고 하면 오류가 나서 설치가 되지 않는다. 그럴 경우에는 그냥 윈도우를 설치해서 BSD가 만든 찌꺼기를 깨끗하게 밀어버리고, 리눅스를 설치하면 된다.


  • TrueOS Installer corrupts the GPT partition table (versions 17.12 and 18.03) #1541

22 Mar 2018

https://github.com/trueos/trueos-core/issues/1541


UEFI 메인보드는 Security 탭의 Secure Boot 항목을 Enabled에서 Disabled로 바꿔준다. 안 그러면 BSD 설치 USB로 부팅했을 때 아래와 같은 에러 메시지가 뜬다.

Secure Boot Violation

Invalid signature detected. Check Secure Boot Policy in Setup


메인보드에 CSM (compatibility support module) 설정이 있으면 이것도 꺼줘야 한다.

BSD 설치

일단 UEFI 메인보드에도 TrueOS는 설치 자체는 된다. 그런데 전체 설치를 해야 rEFInd boot manager가 제대로 설치되어 부팅이 되고, 윈도우즈리넠스(Linux)를 먼저 깔면 부팅시 보이지 않는다. 즉, 윈도우즈나 리넠스로만 부팅할 수 있다. 전체 설치를 하고, 리눅스로 부팅해서 보면 맨 앞에 0 MB의 남는 공간이 있고, 그 뒤에 순서대로 /dev/sda1 efi가 104 MB, /dev/sda2 zfs가 235,641 MB, /dev/sda3가 4,294 MB, 남는 공간이 16 MB가 있다. 즉, 3개의 파티션과 그 앞뒤로 2개의 빈 공간이 있다. 하지만 그냥 빈 공간에 설치하면 zfs 하나와 swap 하나가 생성된다. 아마도 별도의 EFI 파티션이 있어야 부팅이 가능한 것 같다.

리눅스도 설치시, 전체 암호화해서 설치하면 별도로 파티션을 만들어서 /boot 에 할당해줘야 부팅이 되는 것과 비슷한 상황인 것 같다.

윈도우즈도 처음에 설치하면 자동으로 '파티션 1: 복구' 499.0 MB, '파티션 2 시스템' 100.0 MB, '파티션 3 MSR(예약)' 16.0 MB를 만들고, 이것들을 안 만들려고 하면 C: 드라이브 생성도 안 되는 것과 비슷한 것 같다. "모든 Windows 기능이 올바르게 작동하도록 시스템 파일에 대해 추가 파티션을 만들 수 있습니다."라고 뜨는데 "취소"를 누르면 C: 드라이브가 안 만들어진다. 반드시 "확인"을 눌러야 C: 드라이브 생성이 가능하다.

리눅스 설치 화면에서는 위 파티션들이, /dev/sda1 ntfs 523 MB, /dev/sda2 efi 104 MB, /dev/sda3 16 MB로 뜨고, C: 드라이브는 /dev/sda4 ntfs로 뜬다. 즉, 윈도우즈도 파티션 하나를 EFI 부팅용으로 쓴다.

트루OS 설치 화면에서는 위 파티션들이 ada0p1: 499MB (ms-recovery), ada0p2: 100MB (efi), ada0p3: 16MB (ms-reserved), ada0p4: (ms-basic-data)로 뜬다.


설치시 swap partition은 안 만드는 게 낫다. GELI가 정확히 어떻게 작동하는지는 모르겠지만, 리눅스에서의 상황을 봤을 때 swap 파티션도 별도로 암호화해주지 않으면 다 노출된다. 그래서 swap partition을 쓰지 않고, swap file을 암호화된 파티션 안에 따로 만들어서 쓰는 게 안전하다.

디스크 전체 설치로 설치해서 GELI로 암호화했을 경우 부팅시 "GELI Passphrase for disk0p2:"와 같이 뜨는 것을 보면, GELI로 암호화해도 disk 0의 partition 2만 암호화된 것을 볼 수 있다. 즉, 리눅스처럼 하나의 파티션만 암호화된다는 것을 알 수 있다.


트루OSZFS만 지원하지만, 고스트BSDUFSZFS를 모두 지원한다. UFS나 ZFS는 윈도우즈의 FAT, NTFS, 리눅스의 ext4처럼 파일 시스템(file system)의 일종이다. UFS는 Unix File System의 머릿글자(acronym)이다. 트루OS 설치시에는 이미 만들어진 파티션을 사용하거나, 비어있는 공간 전체를 사용하거나, 디스크 전체 설치만 가능하다. 직접 파티션을 만들거나 삭제하는 게 불가능하다. 그리고 disk encryption 메뉴는 디스크 전체 설치를 선택했을 때만 뜬다.

TrueOS Disk Wizard

TrueOS can encrypt your disks using the GELI framework. This is full-disk encryption, requiring a password at startup.

위와 같은 메시지가 뜬다. GELIMBR은 지원 안 하고 GPT만 지원하고, legacy BIOS에서는 오류 없이 작동하지만 UEFI에서는 오류가 나서 작동하지 않는데 아직도 이 오류는 고쳐지지 않았다.[12] [13] [14] 즉, 현재로서는 legacy BIOS에 GPT 조합이라는 상당히 특이한 조합일 경우에만 암호화가 가능한 반쪽짜리다.


  • FreeBSD: Full-Disk Encryption + UEFI

14 Dec 2017

https://www.c0ffee.net/blog/freebsd-full-disk-encryption-uefi/


GhostBSD는 UFS와 ZFS를 모두 지원하긴 하지만, ZFS는 디스크 전체 설치 옵션만 있고, 저장 공간의 일부분에만 설치를 하려면 UFS를 골라야 한다.


/home, /boot 등 유닠스디렠터리 구조를 의미하는 유닠스 파일시스템(Unix filesystem)과 NTFSext4에 대응하는 유닠스 파일 시스템(Unix File System, UFS)을 헷갈리면 안 된다.

같이 보기

참조

  1. MS, 핫메일 W2K로 이전 「유닉스 따라잡기」, 2000.08.03., http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000010006965
  2. Microsoft Hotmail still runs on U**x, (FreeBSD purge incomplete), 12 Dec 2001, https://www.theregister.co.uk/2001/12/12/microsoft_hotmail_still_runs/
  3. Interviews : Interview with Dennis M. Ritchie
  4. OSI Position Paper on the SCO-vs.-IBM Complaint
  5. https://wiki.freebsd.org/Graphics#Intel_Graphics
  6. https://www.dragonflybsd.org/docs/supportedhardware/#index3h2
  7. https://www.dragonflydigest.com/2018/01
  8. https://wiki.ghostbsd.org/index.php/Hardware_Requirements
  9. 당혹스러운 USB 디스크 쓰기금지 해제 방법 6가지 2017.05.01 http://modangs.tistory.com/995
  10. usb 쓰기금지 해제 1분해결 2018.01.10 https://gbworld.tistory.com/1124
  11. 윈도우10 디스크관리에서 삭제가 불가능한 파티션 지우는 방법 2016.08.22 http://siait.tistory.com/378
  12. Can UEFI and Geli be fixed now? 2017.03.09. https://discourse.trueos.org/t/can-uefi-and-geli-be-fixed-now/995
  13. GELI UEFI fix is still in the testing phase 2017.10.30. https://discourse.trueos.org/t/geli-uefi-fix-is-still-in-the-testing-phase/1948
  14. No GELI on installation process 2018.01.28. https://discourse.trueos.org/t/no-geli-on-installation-process/2411