Difference between revisions of "프리BSD"

Jump to navigation Jump to search
21,967 bytes added ,  02:20, 11 October 2018
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[include(틀:프로젝트 문서,프로젝트=나무위키 운영 체제 프로젝트)]
{{Template:바로 가기}}
[include(틀:운영 체제)]
<div style="float: right; margin-left: 12px">__TOC__</div>
||<table align=right> [[파일:external/assets.devx.com/26_freebsd.gif|width=100%]] ||
 
[목차]
= 개요 =
== 개요 ==
FreeBSD는 [[유닉스]] 계열 [[운영 체제]][* Unix-like OS]이며 [[리눅스]]처럼 서버용이든 데스크탑용이든 쓸 수 있는 범용적인 OS이다. 2017년 기준으로 [[BSD]] 계열 운영 체제 중 [[macOS]]를 제외하면 [[TrueOS]]에 이어 두번째로 많이 쓰이는 운영 체제이다. https://distrowatch.com/index.php?dataspan=2017
FreeBSD는 [[유닉스]] 계열 [[운영 체제]][* Unix-like OS]이며 [[리눅스]]처럼 서버용이든 데스크탑용이든 쓸 수 있는 범용적인 OS이다. ~~[[http://www.freebsd.org/copyright/daemon.html|붉은악마]]의 OS다.~~ 2017년 기준으로 [[BSD]] 계열 운영 체제 중 [[macOS]]를 제외하면 [[TrueOS]]에 이어 두번째로 많이 쓰이는 운영 체제이다. https://distrowatch.com/index.php?dataspan=2017




Line 16: Line 15:
[[윈도우]] 운영체제의 사례에서 볼 수 있듯이, OS에서 선점효과는 막대하다. OS를 교체하려면 새 OS에 대해 배워야 하며 기존의 OS로 구축한 것을 새로운 OS에서 다시 구축해야 하는 수고가 들어가기 때문에(그나마도 새 OS에서 구축이 가능하다는 보장이 없다) 쉽게 교체하기 어렵다. 그나마 리눅스와 FreeBSD는 구조가 상대적으로 비슷한 편이므로 이 문제는 좀 덜한 편이기는 하지만, 다른 걸림돌이 있으니 이 둘은 주로 서버 시장에서 활동한다는 점이다. 서버 시장은 안정성이 극도로 중요하기 때문에, 이미 시장을 선점하여 작동 시간으로나 사용자 기반으로나 상대적으로 더 많이 검증된 기존의 OS를 버리고 갈아타는 데에 훨씬 더 보수적일 수밖에 없다.(유명 포털 사이트나 온라인 게임 서버가 예고 없이 다운되면 어떤 일이 벌어질 지를 생각해 보자.) 때문에 그 새로운 OS가 기존 OS에 비해 얼마나 많은 것을 제공해 주는지는 둘째 문제이다. 그리고, 이렇게 점유율에서 한번 밀려 버리면 당연히 해당 OS를 개발하려 하는 개발자들의 유입 역시 적어지고, 차이는 점점 벌어지는 것이 일반적이다. ~~이렇게 FreeBSD는 마이너가 되었다. 지못미~~
[[윈도우]] 운영체제의 사례에서 볼 수 있듯이, OS에서 선점효과는 막대하다. OS를 교체하려면 새 OS에 대해 배워야 하며 기존의 OS로 구축한 것을 새로운 OS에서 다시 구축해야 하는 수고가 들어가기 때문에(그나마도 새 OS에서 구축이 가능하다는 보장이 없다) 쉽게 교체하기 어렵다. 그나마 리눅스와 FreeBSD는 구조가 상대적으로 비슷한 편이므로 이 문제는 좀 덜한 편이기는 하지만, 다른 걸림돌이 있으니 이 둘은 주로 서버 시장에서 활동한다는 점이다. 서버 시장은 안정성이 극도로 중요하기 때문에, 이미 시장을 선점하여 작동 시간으로나 사용자 기반으로나 상대적으로 더 많이 검증된 기존의 OS를 버리고 갈아타는 데에 훨씬 더 보수적일 수밖에 없다.(유명 포털 사이트나 온라인 게임 서버가 예고 없이 다운되면 어떤 일이 벌어질 지를 생각해 보자.) 때문에 그 새로운 OS가 기존 OS에 비해 얼마나 많은 것을 제공해 주는지는 둘째 문제이다. 그리고, 이렇게 점유율에서 한번 밀려 버리면 당연히 해당 OS를 개발하려 하는 개발자들의 유입 역시 적어지고, 차이는 점점 벌어지는 것이 일반적이다. ~~이렇게 FreeBSD는 마이너가 되었다. 지못미~~


참고로, "BSD가 조금만 더 일찍 나왔다면 나는 리눅스를 만들지 않았을 것이다."라는 [[리누스 토르발스]]의 이야기를 누설(?)한 사람이 바로 매큐직이다. 실제로, 과거엔 BSD가 리눅스에 비해 성능이나 안정성 측면에서 좋은 점수를 많이 받았지만, 아무래도 점유율이 리눅스가 높아 개발자들의 유입도 많고 해서 빠르게 발전한 결과, 현재는 오히려 리눅스가 BSD를 앞질렀다고 볼 수 있다.
참고로, "BSD가 조금만 더 일찍 나왔다면 나는 [[리눅스]]를 만들지 않았을 것이다."라는 [[리누스 토르발스]]의 이야기를 누설(?)한 사람이 바로 [[매큐직]]이다. 실제로, 과거엔 BSD가 리눅스에 비해 성능이나 안정성 측면에서 좋은 점수를 많이 받았지만, 아무래도 점유율이 리눅스가 높아 개발자들의 유입도 많고 해서 빠르게 발전한 결과, 현재는 오히려 리눅스가 BSD를 앞질렀다고 볼 수 있다.
 
 
[[마이크로소프트]]에서는 예전엔 [[핫메일]]([[Hotmail]]) 서버로 [[프리BSD]]([[FreeBSD]]) 쓰다가 [[윈도우즈 2000]] 서버로 넘어갔다.<ref>MS, 핫메일 W2K로 이전 「유닉스 따라잡기」, 2000.08.03., http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000010006965</ref> <ref>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/</ref>
 
= FreeBSD 설치 방법 =
[[유닠스 계열]] 문서와 [[트루OS]] 문서도 참조.
 
== 설치 USB 드라이브 제작 ==
https://www.freebsd.org/where.html 에 가서 최신 버전인 FreeBSD 11.2-RELEASE의 Installer Images의 64비트 버전인 amd64를 받는다. i386은 32비트 버전이다. 772 MB인 FreeBSD-11.2-RELEASE-amd64-memstick.img가 있고, 3.2 GB인 FreeBSD-11.2-RELEASE-amd64-dvd1.iso가 있는데 뭐를 다운로드 받아도 설치에는 문제없다. 그리고 어차피 둘 다 [[GUI]]는 안 뜬다. [[데스크탚 환경]]([[desktop environment]])을 직접 설치해줘야 GUI가 뜬다.
 
 
2017년에 나온 [[Intel]]의 [[Coffee Lake]]같은 최신 그래핔 칲셑(CPU 내장)을 사용하는 컴퓨터일 경우 FreeBSD 12.0-CURRENT에서 가장 최신 버전을 다운로드 받는다. 그럼 혹시 드라이버가 지원될 수도 있다. 972 MB인 FreeBSD-12.0-ALPHA8-amd64-20180928-r338991-memstick.img를 받으면 된다. 여기는 DVD용 iso 이미지는 아예 없다.
 
 
https://etcher.io/ 에 가서 Etcher의 portable 버전을 다운로드 받는다. img 파일이나 iso 파일을 [[USB 메모리]]에 구워준다.
 
 
iso 파일로 [[Etcher]]에서 구우려고 하면 It looks like this is not a bootable image. The image does not appear to contain a partition table, and might not be recognized or bootable by your device.라고 뜨는데 그냥 무시하고 Continue 눌러서 진행해도 프리BSD 설치에는 아무 문제 없다.
 
 
[[FreeBSD]] 웹싸이트에서 추천하는 [[Win32 Disk Imager]]로 구웠다가, USB 메모리의 파티션이 삭제가 안 되어 사용할 수 없게 됐을 경우에는 [[유닠스 계열]] 문서에 나온 방법을 참조하여 파티션을 삭제하면 된다.
 
== Secure Boot 끄기 ==
메인보드 설정에서 Secure Boot를 꺼야 부팅이 된다.
 
== 설치 과정 ==
부팅이 되면 Install 버튼을 누른다. Live CD 버튼을 눌러봤자 [[CLI]]의 [[터미널]]만 뜬다.
 
Keymap Selection에 Korean이 없으니까 그냥 엔터 눌러서 다음으로 넘긴다.
 
Distribution Select도 그냥 엔터 눌러서 넘긴다.
 
=== Partitioning ===
디스크 전체 암호화(full disk encryption)를 안 할 거면 Partitioning에서 Manual을 선택하고, 전체 암호화를 할거면 Shell에서 수동으로 만들어줘야 한다. Auto (UFS)나 Auto (ZFS)는 선택하지 않는다. [[SSD]]나 [[HDD]] 전체를 사용한다.
 
==== Manual 파티셔닝 ====
ada0과 da0이 보일텐데 ada0은 [[SSD]]나 [[HDD]]이고, da0은 설치용 USB 디스크이다.
 
 
키보드로 ada0의 파티션 중 하나에 커서를 갖다대고 Create를 선택한다. Type: efi에 Size 1MB로 하고, Options는 기본값인 FAT32 그대로 하면 된다. FAT16이나 FAT12로 바꿀 필요가 없다. 여기서는 좌우 화살표 키가 아니라 상하 화살표 키로 움직인다. Tab 키도 사용하여 움직여야 한다.
 
 
Type: freebsd-swap에 Size: 2GB 정도로 swap partition을 만들 수도 있지만, 작은 공간이 따로 떨어진 상태로 혼자만 많이 쓰여지기 때문에 [[SSD]]의 [[TRIM]]에 불리하고, 별도로 암호화를 안 하면 보안상 문제도 있으므로 swap partition은 만들지 않는다. 대신 나중에 필요하면 swap file을 만들 수 있다. SSD는 일정 이상 쓰면 망가지므로 전체 공간을 비슷하게 쓰도록 TRIM 기능이 작동하는데, 파티션 별로 작동하므로 swap partition처럼 혼자만 집중적으로 많이 쓰이는 공간이 있으면 SSD의 수명을 갉아먹는다.
 
 
Type: freebsd-ufs에 Size: 15 GB에 Mountpoint: /로 주 파티션을 만든다. 15 GB 이상은 할당하는 게 좋다. Options에서 TRIM (Enable SSD TRIM support)을 선택해준다.
 
 
df -h로 각 파티션 크기를 확인할 수 있고, free로 [[메모리]]와 swap 공간의 크기와 여유 공간을 확인할 수 있다.
 
 
Swap file 만드는 방법은 아래 링크 참조.
 
https://www.freebsd.org/doc/handbook/adding-swap-space.html
 
==== Shell 파티셔닝과 geli 암호화 ====
[[셸]]([[shell]], [[쉘]])은 [[GUI]]가 아닌 [[CLI]] 환경에서 사용하는 [[터미널]]([[terminal]])같은 걸 말한다.
 
 
[[프리BSD]]([[FreeBSD]])에서는 [[전체 디스크 암호화]]([[full disk encryption]])를 [[겔리]]([[geli]], [[젤리]])로 한다. geli는 [[FreeBSD]]의 [[GEOM]] 위에서 작동하기 때문에 [[오픈BSD]]([[OpenBSD]])나 [[넽BSD]]([[NetBSD]])에서는 쓸 수 없다.
 
 
[[리넠스]]([[Linux]])에서는 [[렄스]]([[LUKS]], [[Linux Unified Key Setup]])를 쓴다. 리넠스 [[커널]]([[kernel]])에서 지원하는 암호화가 [[dm-crypt]]이며, 그 [[front-end]]가 [[cryptsetup]]이고, cryptsetup에 [[쏠트]]([[salt]])를 넣는 등 개선한 것이 [[LUKS]]이다.
 
 
 
Use this shell to set up partitions for the new system. When finished, mount the system at /mnt and place an fstab file for the new system at /tmp/bsdinstall_etc/fstab. Then type 'exit'. You can also enter the partition editor at any time by entering 'bsdinstall partedit'.
 
위와 같은 메시지가 뜬다.
 
 
Manual 파티셔닝으로 들어가려면 bsdinstall partedit을 입력하면 되는데 다시 Shell 파티셔닝으로 돌아오지는 못 한다.
 
 
 
[[터미널]]에서 gpart show로 디스크와 파티션 목록을 확인한다. ada0은 [[SSD]]나 [[HDD]]이고, da0은 설치용 USB 드라이브이다.
 
 
gpart destroy -F ada0
 
위 명령어는 ada0 HDD에 있던 GPT 파티션 테이블을 지우는 명령어인데 특별히 문제가 없다면 지울 필요는 없다.
 
 
gpart create -s gpt ada0
 
위 명령어로 ada0 HDD에 GPT partition table을 만든다. 다른 [[운영 체제]]를 설치해서 이미 GPT partition table이 생성된 상태라면 이 명령어는 생략해도 된다.
 
 
지워야 할 파티션이 있으면 지운다. ada0의 9번 파티션은 gpart delete -i 9 ada0 과 같은 방식으로 삭제한다.
 
 
gpart add -t efi -s 800k ada0
 
800 kB 크기의 [[EFI]] 파티션은 ada0 디스크에 만든다. [[트루OS]]의 경우 800k 대신 200m을 써서 200 MB 크기로 만든다.
 
 
dd if=/boot/boot1.efifat of=/dev/ada0p9
 
위 명령어로 EFI 파티션을 사용 가능하게 만든다. p9의 숫자는 EFI 파티션의 숫자를 적어주면 된다.
 
 
gpart add -t freebsd-ufs -s 1g -l boot0 ada0
 
1 GB 크기의 파티션을 만든다. 이름표(label)를 boot0 이라고 붙인다. [[트루OS]]는 [[ZFS]]만 지원하여 [[UFS]]를 사용하면 설치시 [[오류]]가 나니, freebsd-ufs 대신에 freebsd-zfs라고 적어준다.
 
 
gpart add -t freebsd-ufs -l root0 ada0
 
나머지 공간 전체를 파티션으로 만들고, root0 이라는 이름을 붙인다. /에 배정할 공간은 15 GB 이상이면 된다. TrueOS의 경우 freebsd-zfs라고 적어준다.
 
 
newfs -L bootfs0 /dev/gpt/boot0
 
[[고스트BSD]]의 경우 위 명령어를 입력하면 newfs: /dev/gpt/boot0: failed to open disk for writing이라는 [[오류]] 메시지가 뜬다. su 명령어로 root 계정으로 바꾼 후 하면 된다.


== 특징 ==
 
geli init -b -B /var/tmp/system0 -e AES-XTS -l 256 -s 4096 /dev/gpt/root0
 
위와 같이 하고, [[GELI]]에서 사용할 암호를 넣어준다. 컴퓨터를 부팅할 때마다 이 암호를 넣지 않으면 디스크 전체 암호화(full disk encryption)가 풀리지 않는다. 오타 방지를 위해 Reenter new passphrase:에 한 번 더 입력한다.
 
 
geli attach /dev/gpt/root0
 
Enter passphrase:가 뜨면 아까 넣은 비번(passphrase)을 넣어준다.
 
 
newfs -U -L rootfs0 /dev/gpt/root0.eli
 
[[고스트BSD]]의 경우 위 [[명령어]]를 입력하면 newfs: /dev/gpt/root0.eli: could not find special device라는 [[에러]] 메시지가 뜬다. 이건 root 권한으로 해도 마찬가지 오류가 뜬다.
 
 
mount /dev/gpt/root0.eli /mnt
 
[[GhostBSD]]에서 위 명령어를 입력하면 mount /dev/gpt/root0.eli: No such file or directory라는 [[오류]] 메시지가 뜬다. root 권한으로 해도 마찬가지다.
 
 
mkdir -p /mnt/bootfs
 
mount /dev/gpt/boot0 /mnt/bootfs
 
cd /mnt
 
mkdir bootfs/boot
 
ln -s bootfs/boot
 
 
exit을 입력하여 나온다. 그럼 설치를 계속 진행한다.
 
 
 
설치 종료 직전에
 
Manual Configuration
 
The installation is now finished. Before exiting the installer, would you like to open a shell in the new system to make any final manual modifications?
 
라는 메시지가 뜬다. Yes를 입력한다.
 
 
그리고 [[터미널]]에 아래 내용을 입력한다.
 
echo 'geom_eli_load="YES"' >> /boot/loader.conf
 
echo 'vfs.root.mountfrom="ufs:ada0p11.eli"' >> /boot/loader.conf
 
트루OS의 경우, 위 내용 중 ufs:ada0p11을 zfs:ada0p11로 바꿔준다. p11의 숫자는 해당하는 파티션 번호를 적어준다. 그런데 사실 TrueOS에서는 오류가 나서 이 과정이 되지 않았다.
 
 
 
그리고 fstab 파일의 내용을 수정한다.
 
vi /etc/fstab
 
[[vi]] 텍스트 에디터는 i를 눌러 수정 모드로 들어간다. 아래 내용을 입력한다.
 
#Device Mountpoint FStype Options Dump Pass#
 
/dev/gpt/root0.eli / ufs rw 1 1
 
/dev/gpt/boot0 /bootfs ufs rw 0 0
 
간격은 Tap 키로 맞추면 된다. 사실 간격은 중요하지 않고, 순서만 중요하다.
 
Esc 키를 누르고 :wq 를 입력하여 저장 후 vi를 종료한다.
 
 
reboot을 눌러 컴퓨터를 다시 시작한다.
 
메인보드의 설정에 들어가보면 [[리넠스 민트]]는 ubuntu로 뜨고, [[윈도우즈]]는 Windows Boot Manager로 뜨는데, 프리BSD는 UEFI OS로 뜨는 것을 볼 수 있다.
 
 
 
* HOWTO - Encrypted FreeBSD
November 12, 2017
 
http://daemon-notes.com/articles/system/encryption
 
 
* Using a Solid State Drive with FreeBSD
2016-01-10
 
http://www.wonkity.com/~wblock/docs/html/ssd.html
 
 
위 링크의 글 두개는 gptboot를 사용하는데 gptboot는 [[BIOS]]-based computer에서 [[UFS]]를 위한 [[GPT]] bootcode이므로 [[UEFI]]에서는 필요없다.<ref>https://www.freebsd.org/cgi/man.cgi?gptboot</ref>
 
 
 
FreeBSD에서 [[EFI]] 파티션은 800 kB면 충분하다.<ref>https://wiki.freebsd.org/UEFI</ref> 다른 운영 체제에서의 EFI 파티션 크기는 아래 링크를 참조하기 바란다.
 
 
* EFI partition size
2016-03-03
 
https://www.reddit.com/r/archlinux/comments/48qtmj/
 
 
 
gpart 명령어 사용법은 아래 링크 참조.
 
http://www.wonkity.com/~wblock/docs/html/disksetup.html
 
 
 
* Gpart CheatSheet - wiping drives, partitioning, & formating
Mar 12, 2014
 
https://forums.freebsd.org/threads/gpart-cheatsheet-wiping-drives-partitioning-formating.45411/
 
=== 네트워크 설정 ===
Intel Wireless-AC 9462같은 최신 [[무선 랜]]([[wireless LAN]]) 하드웨어는 [[비에스디]]([[BSD]])에 드라이버가 없어서 못 잡는다. 그냥 설치시에 [[랜 케이블]]을 연결해놓고, 유선으로 쓰자. 랜 케이블을 연결해놓은 상태라면 [[DHCP]]로 자동으로 [[인터넷 공유기]]로부터 [[IP 주소]] 등을 받아올 것이다. 못 받아오면 수동으로 설정해주면 된다.
 
 
=== root 및 사용자 추가 ===
root 비번을 설정하라고 나온다. Enter password:라고 나오면 root 비번을 적당히 정해서 넣어준다.
 
 
사용자를 추가하라고 한다. Username과 password를 적당히 정해서 넣어준다. [[보안]]을 위해 root와는 다른 비번을 사용한다. Enter password again:이라고 나오면 오타 방지를 위해 한 번 더 비번을 적어준다.
 
 
= 재부팅 후 설정 =
== 그래핔 환경 설정 ==
[[vi]]는 쓰기 불편하니 우선 텍스트 편집기 [[nano]]를 설치한다. [[터미널]]에서 아래 [[명령어]]를 입력한다.
 
pkg install nano
 
 
그리고 [[GUI]] 환경을 위한 display server인 [[X]]([[Xorg]])를 설치한다.
 
pkg install xorg
 
 
https://www.freebsdfoundation.org/freebsd/how-to-guides/installing-a-desktop-environment-on-freebsd/
 
 
그리고 [[데스크탚 환경]]([[desktop environment]])인 [[그놈3]]([[Gnome3]])를 설치한다.
 
pkg install gnome3
 
 
그리고 nano로 rc.conf 파일을 수정한다.
 
nano /etc/rc.conf
 
 
아래 내용을 추가해주면 된다.
 
dbus_enable="YES"
 
hald_enable="YES"
 
gdm_enable="YES"
 
gnome_enable="YES"
 
 
Ctrl + x를 눌러 저장 및 종료한다. 그리고 reboot을 눌러 재부팅한다.
 
 
위 내용 중 gdm을 실행함으로써, startx나 gnome-session을 입력하지 않아도 자동으로 GUI 로그인 화면이 뜨게 된다.
 
https://unix.stackexchange.com/questions/7226/launch-a-gnome-session-from-terminal
 
https://unix.stackexchange.com/questions/83651/gnome-not-starting-in-freebsd
 
 
https://www.freebsd.org/doc/handbook/x-config.html
 
 
pkg install firefox libreoffice gimp rhythmbox vlc
 
를 해서 소프트웨어를 설치한다. Firefox는 웹 브라우저, LibreOffice는 문서 작성 프로그램, GIMP는 이미지 제작 프로그램, Rhythmbox는 음악 재생 프로그램, vlc는 동영상 재생 프로그램이다.
 
화면이 지저분하면 clear를 입력하여 지울 수 있다.
 
reboot을 입력하여 재부팅한다.
 
uname -a로는 설치된 운영 체제에 대한 자세한 내용을 알 수 있다.
 
halt를 입력해도 재부팅된다. shutdown -r now를 입력해도 리부팅된다. shutdown -p now의 경우 컴퓨터를 종료시킨다.
 
https://www.freebsd.org/doc/handbook/boot-shutdown.html
 
 
=== 그래핔이 뜨지 않을 경우 ===
2017년에 나온 [[Intel]]의 [[CPU]] [[Coffee Lake]] 내장 그래핔 칲셑처럼 최근 하드웨어의 경우, [[윈도우즈]]나 [[리넠스]]에서는 재빨리 지원하나, 개발자가 거의 없는 [[비에스디]]에서는 몇 년은 걸려야 지원한다. 그럴 경우에도 [[CLI]]로 쓸 수는 없으니 [[GUI]]를 쓰도록 다른 드라이버를 사용한다.
 
 
Coffee Lake의 경우 [[고스트BSD]]의 경우는 GUI가 뜨지 않아 설치조차 되지 않았다. [[TureOS]]는 다른 드라이버를 잡아줘서 화면은 좀 후졌어도 GUI 자체는 떴다. FreeBSD의 경우 그래핔 드라이버를 수동으로 다른 것으로 잡아줘야 한다. 그런데 그래도 TrueOS에서 잡아준 드라이버보다 느리고 오류도 많은 것 같다.
 
 
일단 아래 링크를 따라하면 Coffee Lake에서도 간신히 GUI가 작동은 한다.
 
https://wiki.freebsd.org/Graphics/SCFB
 
 
아래 링크를 보다시피 2016년도에 나온 Intel [[Kaby Lake]]까지 밖에 지원을 하지 않는다.
 
https://wiki.freebsd.org/Graphics/FAQ#Intel_Graphics
 
https://wiki.freebsd.org/Graphics#Intel_Graphics
 
 
 
* Intel HD Graphics 630
Mar 16, 2017
 
Intel [[Kaby Lake]] 사용자가 드라이버 문제로 그래핔 속도가 매우 느리다고 얘기하고 있다.
 
https://forums.freebsd.org/threads/intel-hd-graphics-630.60159/
 
 
 
* Installing a Graphics Drivers
Jul 4, 2017
 
https://forums.freebsd.org/threads/installing-a-graphics-drivers.61500/
 
 
 
* FreeBSD and Intel Video Cards
10/05/2018
 
http://www.srobb.net/freebsdintel.html
 
 
 
* i915 Coffee Lake · Issue #20 · FreeBSDDesktop/kms-drm · GitHub
2018/01/04 - 2018/05/27
 
Intel [[Coffee Lake]] 드라이버가 정식 버전은 아니지만, 테스트 버전은 있는 것 같다.
 
https://github.com/FreeBSDDesktop/kms-drm/issues/20
 
== 유선 랜 설정 ==
처음에 설치할 때 랜 케이블을 꽂지 않아 유선 랜 설정을 해두지 않았다면 나중에 수동으로 해줘야 한다. ifconfig로 랜 카드 번호를 알아낸다. re0이라고 가정한다. lo0은 루프 백이라 의미가 없다. 랜 카드가 하나 더 있다면 re1이라고 뜰 것이다.
 
vi /etc/rc.config
 
위 명령어로 rc.config 파일을 편집한다. [[vi]]는 쓰기 불편하지만 유선 랜이 연결이 안 되어 [[nano]] 설치를 아직은 할 수 없으니 이번엔 그냥 써야 한다.
 
i를 눌러 편집 모드로 들어간다.
 
ifconfig_re0="DHCP"
 
위 내용을 입력한 후 Esc 키를 누르고 :wq를 입력하여 저장 후 vi를 종료한다.
 
그리고 shutdown -r now를 [[터미널]]에 입력하여 리부팅한다.
 
만약 그래도 유선 랜 케이블로 인터넷이 안 된다면 [[DHCP]]로 정보를 자동으로 못 받아오는 것이므로 수동으로 rc.config 파일에 내용을 적어준다.
 
ifconfig_re0="inet 192.168.1.216 netmask 255.255.0.0"
 
defaultrouter="192.168.1.1"
 
위와 같은 설정보다는 아래와 같은 설정이 더 일반적일 것이다.
 
ifconfig_re0="inet 192.168.0.132 netmask 255.255.255.0"
 
defaultrouter="192.168.0.1"
 
어쨌든 자기 [[인터넷 공유기]]에 맞는 설정을 하고 저장해준다. 그리고 재부팅한다.
 
제대로 되면 ifconfig 했을 때 inet에 [[IP 주소]]가 떠야 한다.
 
https://www.freebsd.org/doc/en_US.ISO8859-1/articles/linux-users/network.html
 
 
 
== 무선 랜 설정 ==
ifconfig로 내 컴퓨터에 설치된 유선 랜 카드와 할당된 [[IP 주소]], netmask 등을 확인할 수 있다.
 
 
ifconfig | grep -B3 -i wireless 나 sysctl net.wlan.devices로 무선 랜 카드 정보를 확인할 수 있다.
 
https://www.freebsd.org/doc/handbook/network-wireless.html
 
 
pciconf -lv 나 pciconf -l 로도 무선 랜 카드 정보를 확인할 수 있다.
 
 
* Intel 8265 / 8275 driver
Oct 19, 2017
 
https://forums.freebsd.org/threads/intel-8265-8275-driver.62905/#js-post-363306
 
 
드라이버가 있는 경우, 아래 명령어를 쳐주고
 
kldload if_iwm
 
kldload iwm7260fw
 
 
아래 내용을 /boot/loader.conf 파일에 덧붙이는 것만으로 무선 랜 문제가 해결되는 경우도 있다.
 
if_iwm_load="YES"
 
iwm7260fw_load="YES"
 
 
* Intel 7260
Feb 9, 2016
 
https://forums.freebsd.org/threads/intel-7260.55061/
 
 
* FreeBSD and Intel Dual Band Wireless-AC 8260?
Mar 08 2017
 
https://www.reddit.com/r/freebsd/comments/5y6yhq/freebsd_and_intel_dual_band_wirelessac_8260/
 
 
 
하지만 안타깝게도 8265 시리즈까지만 드라이버가 있는 것 같다.
 
https://www.freebsd.org/cgi/man.cgi?query=iwm&sektion=4&manpath=freebsd-release-ports
 
 
 
Intel Wireless-AC 9462같은 최신 [[무선 랜]]([[wireless LAN]]) 하드웨어는 [[비에스디]]([[BSD]])에 드라이버가 없다. [[윈도우즈 XP]]의 드라이버를 FreeBSD용으로 바꿔주는 [[NDISGEN]]이라는 [[스크맆트]]가 있다.
 
https://www.freebsd.org/doc/handbook/config-network-setup.html
 
 
 
* Install Linux driver
Mar 22, 2015
 
https://forums.freebsd.org/threads/install-linux-driver.50963/
 
 
그래서 직접 해봤다.
 
https://downloadcenter.intel.com/product/125192/Intel-Wireless-AC-9462
 
위 링크에 들어가니 Wireless와 Bluetooth 드라이버가 같이 있었다. Intel Wireless-AC 9462는 [[블루투스]] 기능을 포함한 것 같다.
 
 
https://downloadcenter.intel.com/download/28147
 
위 링크에 가니, Windows 7, 8.1, 10에 대해 각각 32-bit와 64-bit 드라이버가 있었다. Windows XP에 그나마 가까운 Windows 7을 선택하고, 현재 설치된 FreeBSD의 bit 수인 64-bit를 고른다. WiFi_20.80.0_Driver32_Win7.zip를 다운로드 받는다.
 
압축을 풀어보면 10개의 파일이 보이는데 sys와 inf 파일만 필요하다.
 
ndisgen /root/Downloads/WiFi_20.80.0_Driver64_Win7/Netwsw02.INF /root/Downloads/WiFi_20.80.0_Driver64_Win7/NETwsw02.sys
 
위와 같이 입력하여 [[ndisgen]]을 실행시킨다.
 
 
우선 첫번째 [[오류]] 메시지가 뜬다.
 
Windows(r) driver converter
 
INF file validation
 
This .INF file appears to be Unicode.
 
Trying to convert to ASCII...
 
Done.
 
Press reture to continue...
 
 
그리고 두 번째 [[메시지]]가 뜬다.
 
Windows(r) driver converter
 
Driver file validation
 
This .SYS file appears to be in Windows(r) PE format.
 
Press return to continue...
 
 
그 다음 뜨는 창이다.
 
Windows(r) driver converter
 
Driver file validation
 
The script will now try to convert the .INF and .SYS files using the ndiscvt(1) utility. This utility can handle most .INF files; however, occasionally it can fail to parse some files due to subtle syntax issues: the .INF syntax is very complex, and the Windows(r) parser will sometimes allow files with small syntax errors to be processed correctly which ndiscvt(1) will not. If the conversion fails, you may have to edit the .INF file by hand to remove the offending lines.
 
Press enter to try converting the files now:
 
 
 
그 다음 뜨는 [[에러]] 창이다.
 
ndiscvt: line 9626:
 
: syntax error.
 
CONVERSION FAILED
 
 
역시 너무 예전 [[스크맆트]]라 제대로 작동하지 않는 것 같다.
 
 
그래도 Netwsw02.INF와 NETwsw02.sys 외에도 Netwsw04.INF와 NETwsw04.sys 파일도 있어서 얘네도 테스트해봤다.
 
ndisgen /root/Downloads/WiFi_20.80.0_Driver64_Win7/Netwsw04.INF /root/Downloads/WiFi_20.80.0_Driver64_Win7/NETwsw04.sys
 
[[터미널]]에서 위와 같이 실행했으나 역시 마찬가지 에러 메시지를 뿜으며 실패했다.
 
 
== 한글 설정 ==
Gnome 3를 설치했다면 우선 Settings의 Region & Language로 들어간다.
 
Language를 English (United States)에서 Korean으로 바꾼다.
 
Input Sources에 Korean이나 Korean (101/104 key compatible)을 추가한다. Input Sources에서 Korean을 English (US)보다 위로 올린다.
 
내장된 [[웹 브라우저]]는 [[한글]]이 깨져서 나왔고, [[파이어폭스]]는 한글이 제대로 나왔다.
 
한글 입력기 설치는 [[트루OS]] 문서를 참조하기 바란다.
 
= 사용 방법 =
[[톨]]([[Tor]]), [[크로미엄]]([[Chromium]]), [[베라크맆트]]([[VeraCrypt]]) 설치 및 사용 방법은 [[트루OS]]([[TrueOS]]) 문서 참조.
 
 
== 파이어폭스 설치 ==
웬 후지게 생긴 [[웹 브라우저]]가 기본으로 내장되어 있다. [[파이어폭스]]나 [[크로미엄]]을 깔아서 쓰자.
 
 
[[터미널]]에서 root 권한으로 pkg install firefox를 입력하면 된다.
 
== su 및 sudo 설정 ==
su를 쓰려면 내 사용자 계정이 wheel 그룹에 속해있어야 하고, sudo를 쓰려면 sudo 설치 후 wheel 그룹과 내 사용자 계정을 추가해야 한다.
 
 
* Cannot su or use sudo
Apr 14, 2015
 
https://forums.freebsd.org/threads/cannot-su-or-use-sudo.51267/
 
 
[[트루OS]]같은 경우는 sudo 설치와 이 설정이 미리 되어있다. 프리BSD는 자기가 직접 해야 한다. 그래서 그냥 귀찮아서 [[root]] 계정을 쓴다.
 
 
== 외장 HDD ==
일단 [[USB 메모리]]를 꽂으니까 자동으로 연결해준다.
 
 
[[윈도우즈]]에서 쓰던 [[외장 HDD]]를 꽂으니까 인식은 하는데 연결을 못 한다. [[리넠스 민트]]에서는 인식도 못 하던 거라 조금 더 나은 것 같다. 하지만 [[트루OS]]에서는 연결까지 자동으로 해줬다.
 
 
프리BSD의 경우 아래와 같은 [[에러]] 메시지가 뜬다.
 
Cannot mount volume.
 
Unable to mount the volume 'Volume Name'.
 
Details
 
mount: illegal option -- m usage: mount [-t fstype] [-o options] target_fs mount_point
 
 
수동으로 마운트 해주면 마운트가 가능할 것 같다.
 
 
 
* USB Storage Devices
https://www.freebsd.org/doc/handbook/usb-disks.html
 
= 특징 =
일반에 잘 알려지지 않은 BSD 계열이라 마이너하게 보이지만, 의외로 꽤 인기있는 OS이다. Distrowatch의 Page hit ranking에서도 리눅스 배포판들의 홍수속에 10위권을 오락가락하고 [[젠투 리눅스|젠투]]보다 높다.(...)[* [[http://distrowatch.com]]] 게다가, 소수지만 매우 활동적인 커뮤니티를 갖고있는지라, 질문에 대한 답변도 웬만한 인기 리눅스 배포판보다 훨씬 빠르게 답변이 달린다.
일반에 잘 알려지지 않은 BSD 계열이라 마이너하게 보이지만, 의외로 꽤 인기있는 OS이다. Distrowatch의 Page hit ranking에서도 리눅스 배포판들의 홍수속에 10위권을 오락가락하고 [[젠투 리눅스|젠투]]보다 높다.(...)[* [[http://distrowatch.com]]] 게다가, 소수지만 매우 활동적인 커뮤니티를 갖고있는지라, 질문에 대한 답변도 웬만한 인기 리눅스 배포판보다 훨씬 빠르게 답변이 달린다.


Line 41: Line 626:
더불어 리눅스 진영과의 마찰도 좀 있는 편인데, BSD 측이 니 맘대로 하세요 식의 완전한 자유를 추구하는 반면 [[GNU]] 측은 소스코드 공개 의무화 등의 공격적인 오픈소스 방식을 취하고 있기 때문에, GNU 소프트웨어를 가져다 쓰면서도 자신들에게 협조를 안 하는 BSD 진영이 밉보일 수밖에 없다. 그러나, BSD 진영에서는 이것을 리눅시즘(Linuxism)이라며 가볍게 무시한다.
더불어 리눅스 진영과의 마찰도 좀 있는 편인데, BSD 측이 니 맘대로 하세요 식의 완전한 자유를 추구하는 반면 [[GNU]] 측은 소스코드 공개 의무화 등의 공격적인 오픈소스 방식을 취하고 있기 때문에, GNU 소프트웨어를 가져다 쓰면서도 자신들에게 협조를 안 하는 BSD 진영이 밉보일 수밖에 없다. 그러나, BSD 진영에서는 이것을 리눅시즘(Linuxism)이라며 가볍게 무시한다.


=== 구형 [[GCC]] 문제 ===
== 구형 [[GCC]] 문제 ==
오픈소스 계의 표준 컴파일러라 볼 수 있는 [[GCC]]가 4.2.2 버전부터 [[BSD 라이선스]]와 호환되지 않는 [[GPL]]v3가 적용되었기 때문에, 기본 GCC 컴파일러가 상당히 오랜기간 4.2.1 버전이었다. (당시 대부분의 리눅스 배포판은 GCC 4.5+ 버전으로 컴파일된 바이너리를 제공하였다.) 물론 이것은 베이스 시스템 한정이고, 유저들이 자유롭게 GCC 최신 버전을 인스톨해서 사용하는 것은 가능했다.
오픈소스 계의 표준 컴파일러라 볼 수 있는 [[GCC]]가 4.2.2 버전부터 [[BSD 라이선스]]와 호환되지 않는 [[GPL]]v3가 적용되었기 때문에, 기본 GCC 컴파일러가 상당히 오랜기간 4.2.1 버전이었다. (당시 대부분의 리눅스 배포판은 GCC 4.5+ 버전으로 컴파일된 바이너리를 제공하였다.) 물론 이것은 베이스 시스템 한정이고, 유저들이 자유롭게 GCC 최신 버전을 인스톨해서 사용하는 것은 가능했다.


Line 48: Line 633:
애초에 BSD 커뮤니티에서는 GCC 컴파일러가 수십년간의 최적화로 런타임 속도에서는 강하지만, 기본적인 설계가 그리 깔끔하지 못하다는 점과 컴파일 속도가 매우 느리다는 점[* 일반적으로 이미 컴파일된 바이너리를 사용하는 리눅스 쪽에서는 별로 문제될 것이 없지만, *BSD처럼 프로그램을 설치할 때나 업데이트할 때마다 소스코드만 다운받아 사용자가 직접 컴파일하는 경우는 컴파일 속도도 매우 중요하다고 볼 수 있다.][* 2013년 이후 GCC의 코드 베이스는 C++로 교체되어 내부 설계 문제는 없어졌다.]을 문제삼아 비판하는 경우가 많았기 때문에, 사실 굳이 라이선스 문제가 없었어도 언젠가는 다른 컴파일러를 사용하려 했을 거라는 소리도 있긴 하다.
애초에 BSD 커뮤니티에서는 GCC 컴파일러가 수십년간의 최적화로 런타임 속도에서는 강하지만, 기본적인 설계가 그리 깔끔하지 못하다는 점과 컴파일 속도가 매우 느리다는 점[* 일반적으로 이미 컴파일된 바이너리를 사용하는 리눅스 쪽에서는 별로 문제될 것이 없지만, *BSD처럼 프로그램을 설치할 때나 업데이트할 때마다 소스코드만 다운받아 사용자가 직접 컴파일하는 경우는 컴파일 속도도 매우 중요하다고 볼 수 있다.][* 2013년 이후 GCC의 코드 베이스는 C++로 교체되어 내부 설계 문제는 없어졌다.]을 문제삼아 비판하는 경우가 많았기 때문에, 사실 굳이 라이선스 문제가 없었어도 언젠가는 다른 컴파일러를 사용하려 했을 거라는 소리도 있긴 하다.


=== [[ZFS]] ===
== [[ZFS]] ==
FreeBSD가 제공하는 것들은 여러 가지가 있겠지만, 개중에 눈여겨볼 만한 것은 [[ZFS]][* ZFS는 [[썬 마이크로시스템즈]]가 개발했으며, OpenSolaris와 FreeBSD로 공식적으로 포팅이 되어 있...었는데, [[오라클(기업)|오라클]]이 썬 마이크로시스템즈를 인수하면서 라이선스 정책을 바꿔 OpenSolaris가 사실상 죽어 버린 관계로(OpenIndiana 라는 포크가 새로 생기긴 했다.), FreeBSD는 현재 오픈소스계의 ZFS의 마지막 희망이라 할 수 있다.] 파일 시스템이다. ZFS는 현재 파일 시스템 중의 끝판왕이라고 봐도 될정도로 여러가지 기능을 간단한 커맨드라인 명령으로 다 지원하며, 데이터 안전성에 있어서도 모든 데이터를 Check-summing 하는 방식으로 기존 파일 시스템이 속수무책이던 Silent corruption을 방지해주기도 한다. NFS와 CIFS, iSCSI를 파일시스템 자체에서 지원하며[* FreeBSD에서는 NFS만 지원되고, CIFS, iSCSI 등은 파일시스템이 아닌 FreeBSD에서 수동으로 설정해야 한다.], 많은 메모리와 SSD를 캐시로 달아 주면 하드웨어 레이드 카드에 버금가는 속도를 보여주기도 한다.[* ZFS의 등장을 하드웨어 레이드 카드의 죽음으로 비유한 사람도 있었다.]
FreeBSD가 제공하는 것들은 여러 가지가 있겠지만, 개중에 눈여겨볼 만한 것은 [[ZFS]][* ZFS는 [[썬 마이크로시스템즈]]가 개발했으며, OpenSolaris와 FreeBSD로 공식적으로 포팅이 되어 있...었는데, [[오라클(기업)|오라클]]이 썬 마이크로시스템즈를 인수하면서 라이선스 정책을 바꿔 OpenSolaris가 사실상 죽어 버린 관계로(OpenIndiana 라는 포크가 새로 생기긴 했다.), FreeBSD는 현재 오픈소스계의 ZFS의 마지막 희망이라 할 수 있다.] 파일 시스템이다. ZFS는 현재 파일 시스템 중의 끝판왕이라고 봐도 될정도로 여러가지 기능을 간단한 커맨드라인 명령으로 다 지원하며, 데이터 안전성에 있어서도 모든 데이터를 Check-summing 하는 방식으로 기존 파일 시스템이 속수무책이던 Silent corruption을 방지해주기도 한다. NFS와 CIFS, iSCSI를 파일시스템 자체에서 지원하며[* FreeBSD에서는 NFS만 지원되고, CIFS, iSCSI 등은 파일시스템이 아닌 FreeBSD에서 수동으로 설정해야 한다.], 많은 메모리와 SSD를 캐시로 달아 주면 하드웨어 레이드 카드에 버금가는 속도를 보여주기도 한다.[* ZFS의 등장을 하드웨어 레이드 카드의 죽음으로 비유한 사람도 있었다.]


Line 55: Line 640:
리눅스 쪽에서는 라이선스 문제로 공식적으로 커널에 포함되지 못하고, 비공식적으로만 포팅되어 있다. FreeBSD에서는 리눅스와는 다르게 ZFS로 부팅도 되기 때문에 사실상, 모든 파일 시스템을 ZFS로 사용이 가능하다. 리눅스쪽에서는 ZFS의 대항마로 현재 개발중인 Btrfs를 밀고 있는데, 지금 꽤나 오랜기간 동안 베타 딱지를 달고 있어 모든 기능이 완성되는 버전까지는 시간이 꽤 걸릴듯 하며, 완성된다 해도 실사용시 안정성을 입증받기까지는 몇년이 더 소요될 것이다. 게다가, 완성된 이후를 가정했을 때의 기능면에서도 ZFS와 엇비슷한 정도이다.[* 그러나, 마이너에 속하는 솔라리스나 FreeBSD에서만 제대로 지원되는 ZFS에 비해 Btrfs는 리눅스 커널의 공식적인, 그리고 전폭적인 지원 버프를 받는다는 차이가 있다.] Btrfs 역시 [[오라클(기업)|오라클]]의 후원으로 개발되는 파일시스템이다.
리눅스 쪽에서는 라이선스 문제로 공식적으로 커널에 포함되지 못하고, 비공식적으로만 포팅되어 있다. FreeBSD에서는 리눅스와는 다르게 ZFS로 부팅도 되기 때문에 사실상, 모든 파일 시스템을 ZFS로 사용이 가능하다. 리눅스쪽에서는 ZFS의 대항마로 현재 개발중인 Btrfs를 밀고 있는데, 지금 꽤나 오랜기간 동안 베타 딱지를 달고 있어 모든 기능이 완성되는 버전까지는 시간이 꽤 걸릴듯 하며, 완성된다 해도 실사용시 안정성을 입증받기까지는 몇년이 더 소요될 것이다. 게다가, 완성된 이후를 가정했을 때의 기능면에서도 ZFS와 엇비슷한 정도이다.[* 그러나, 마이너에 속하는 솔라리스나 FreeBSD에서만 제대로 지원되는 ZFS에 비해 Btrfs는 리눅스 커널의 공식적인, 그리고 전폭적인 지원 버프를 받는다는 차이가 있다.] Btrfs 역시 [[오라클(기업)|오라클]]의 후원으로 개발되는 파일시스템이다.


=== 원시적 OS ===
== 원시적 OS ==
좋게 말하면 어떤 면에서는 웬만한 리눅스 배포판들보다 로우레벨 세팅을 모두 관리자의 손에 맡기는 투명한 운영체제이고, 나쁘게 말하면 편의성이나 자동완성이란 게 뭔지 모르는 원시적(?)인 운영체제인데, 아예 인스톨 시 현재 인스톨하는 것들의 모든 소스 코드를 같이 까는 게 가능하며 그 상태로 그 소스코드를 이리저리 변경해서[* 능력이 된다면 알고리즘을 바꾸거나 하는 식으로 거창하게 할 수도 있지만, 그냥 값만 변경하는 정도의 변경은 굳이 거창한 유닉스 운영체제 구조의 이해 따위 없어도 할 수 있는 간단한 것들이다.] 다시 OS 자체를 원하는 옵션 주면서 컴파일해서 사용하는 것도 가능하다. 당연히 커스텀 커널도 지원하는데, ~~지원 하드웨어가 적어서~~ 리눅스보다 훨씬 간단하고 빠르게 끝난다.
좋게 말하면 어떤 면에서는 웬만한 리눅스 배포판들보다 로우레벨 세팅을 모두 관리자의 손에 맡기는 투명한 운영체제이고, 나쁘게 말하면 편의성이나 자동완성이란 게 뭔지 모르는 원시적(?)인 운영체제인데, 아예 인스톨 시 현재 인스톨하는 것들의 모든 소스 코드를 같이 까는 게 가능하며 그 상태로 그 소스코드를 이리저리 변경해서[* 능력이 된다면 알고리즘을 바꾸거나 하는 식으로 거창하게 할 수도 있지만, 그냥 값만 변경하는 정도의 변경은 굳이 거창한 유닉스 운영체제 구조의 이해 따위 없어도 할 수 있는 간단한 것들이다.] 다시 OS 자체를 원하는 옵션 주면서 컴파일해서 사용하는 것도 가능하다. 당연히 커스텀 커널도 지원하는데, ~~지원 하드웨어가 적어서~~ 리눅스보다 훨씬 간단하고 빠르게 끝난다.


Line 62: Line 647:
거의 모든 게 사람 손을 거쳐야 하며, 그렇기에 초보자들에게 어려울 것 같지만, 문서화가 오픈소스 OS 중에 가장 잘 되어 있는 OS 중 하나이기 때문에 실제로 그렇게 어렵지는 않다. [[젠투 리눅스|젠투]]의 경우 초보자들이 잘 나가다가 USE flags의 벽에 가로막혀 좌절을 느끼는 경우가 많은 데 반해, FreeBSD의 Ports에는 그런 것 자체가 존재하지 않고 그냥 인스톨하다 보면 옵션 선택 창이 뜨며, 원하는 대로 선택하면 되기 때문에 처음 설치 시에 그런 데 골머리를 썩힐 일은 없다. 그리고, 옵션 선택 창에 이미 표준적으로 사용하는 디폴트 선택이 되어 있는 상태기 때문에 모르면 그냥 Next만 연타하는 윈도우처럼 인스톨해도 된다.
거의 모든 게 사람 손을 거쳐야 하며, 그렇기에 초보자들에게 어려울 것 같지만, 문서화가 오픈소스 OS 중에 가장 잘 되어 있는 OS 중 하나이기 때문에 실제로 그렇게 어렵지는 않다. [[젠투 리눅스|젠투]]의 경우 초보자들이 잘 나가다가 USE flags의 벽에 가로막혀 좌절을 느끼는 경우가 많은 데 반해, FreeBSD의 Ports에는 그런 것 자체가 존재하지 않고 그냥 인스톨하다 보면 옵션 선택 창이 뜨며, 원하는 대로 선택하면 되기 때문에 처음 설치 시에 그런 데 골머리를 썩힐 일은 없다. 그리고, 옵션 선택 창에 이미 표준적으로 사용하는 디폴트 선택이 되어 있는 상태기 때문에 모르면 그냥 Next만 연타하는 윈도우처럼 인스톨해도 된다.


=== 모듈형 디자인 ===
== 모듈형 디자인 ==
소프트웨어는 Ports라는 시스템을 이용하는데, ~~port라고 쓰고 귀차니즘 종결자라 읽는다~~ [[젠투 리눅스|젠투]]처럼 그냥 소스코드 다운받아 컴파일하는 방식이다. 특징이라면, 처음 인스톨하는 Base system과 새로 인스톨하는 Ports를 엄격하게 구분한다는 것이다. 덕분에 소프트웨어 인스톨/삭제로 개판을 만들어도 베이스 시스템에는 영향이 가지 않는다. 다만, 소프트웨어 인스톨 시 웬만한 리눅스 배포판들은 다 즉시 사용이 가능하게끔 자동으로 세팅을 끝내 주는 반면, FreeBSD는 전혀 안 건드린다. 완전히 수동이다. ~~이제 원시적이란 말을 이해하겠는가?~~ 그리고, 깔 때는 의존성을 찾아서 다 깔아 주지만, 지울 때는 수동이다.(...) 각각의 의존성을 모두 수동으로 찾아서 언인스톨하든가, 그냥 냅두든가 해야 한다. ~~들어올 땐 마음대로였어도 나갈 땐 아니란다~~ 10.0부터는 pkgng라는 바이너리 패키지 관리툴이 새로 들어가서, 굳이 컴파일 설치를 하지 않아도 되고, 기존에 불가능했거나 아주 어려웠던 여러가지 관리 기능이 추가될 것으로 생각된다.
소프트웨어는 Ports라는 시스템을 이용하는데, ~~port라고 쓰고 귀차니즘 종결자라 읽는다~~ [[젠투 리눅스|젠투]]처럼 그냥 소스코드 다운받아 컴파일하는 방식이다. 특징이라면, 처음 인스톨하는 Base system과 새로 인스톨하는 Ports를 엄격하게 구분한다는 것이다. 덕분에 소프트웨어 인스톨/삭제로 개판을 만들어도 베이스 시스템에는 영향이 가지 않는다. 다만, 소프트웨어 인스톨 시 웬만한 리눅스 배포판들은 다 즉시 사용이 가능하게끔 자동으로 세팅을 끝내 주는 반면, FreeBSD는 전혀 안 건드린다. 완전히 수동이다. ~~이제 원시적이란 말을 이해하겠는가?~~ 그리고, 깔 때는 의존성을 찾아서 다 깔아 주지만, 지울 때는 수동이다.(...) 각각의 의존성을 모두 수동으로 찾아서 언인스톨하든가, 그냥 냅두든가 해야 한다. ~~들어올 땐 마음대로였어도 나갈 땐 아니란다~~ 10.0부터는 pkgng라는 바이너리 패키지 관리툴이 새로 들어가서, 굳이 컴파일 설치를 하지 않아도 되고, 기존에 불가능했거나 아주 어려웠던 여러가지 관리 기능이 추가될 것으로 생각된다.


Line 73: Line 658:
위와 같은 엄격한 모듈형 디자인은 부트 매니저에도 적용되는데, FreeBSD의 부트 매니저인 Booteasy는 MBR 512Byte를 엄격하게 지키는 몇 안 되는 부트 매니저이다. 물론, 512Byte로는 죽도 밥도 안 되기 때문에 스테이지를 나눠서 차근차근 부팅 과정을 진행시킨다. 이런 덕분에, 기능 면에서는 [[grub]] 등에 비해 떨어질지 몰라도, 안정성 측면에서 FreeBSD 파티션이 개판 돼도 Booteasy를 이용한 다른 파티션으로의 부팅은 문제없이 가능한 장점이 있다.
위와 같은 엄격한 모듈형 디자인은 부트 매니저에도 적용되는데, FreeBSD의 부트 매니저인 Booteasy는 MBR 512Byte를 엄격하게 지키는 몇 안 되는 부트 매니저이다. 물론, 512Byte로는 죽도 밥도 안 되기 때문에 스테이지를 나눠서 차근차근 부팅 과정을 진행시킨다. 이런 덕분에, 기능 면에서는 [[grub]] 등에 비해 떨어질지 몰라도, 안정성 측면에서 FreeBSD 파티션이 개판 돼도 Booteasy를 이용한 다른 파티션으로의 부팅은 문제없이 가능한 장점이 있다.


== 다른 사용처 ==
= 다른 사용처 =
=== [[macOS]] ===
== [[macOS]] ==
[[애플(기업)|애플]]과의 관계도 눈여겨볼 만한데, FreeBSD는 위에서 말했듯이 완전히 자유로운 라이선스로 배포되는지라, 애플(정확히는 [[NeXT]]사)도 소스코드를 가져다가 [[OS X]]을 만드는 데 사용하였다. 애플은 소스코드를 가져다 사용하기만 한 것이 아니라, 도로 돌아와 FreeBSD 개발팀에 Mac OS X 소스를 완전히(그러니까 오픈소스 부분만 완전히...) 공개하며 신기술을 알려주기까지 하여 친구를 먹었다.[* 그런데, FreeBSD 원년멤버이자 Ports 시스템 창시자인 코어개발자 한 명을 빼갔다. MacPorts도 이 사람이 애플로 가서 만든 작품이다. ] 이 이후부터 FreeBSD 커뮤니티는 애플 쪽과 밀월관계를 구축하였고, 애플도 이를 기점으로 CUPS라든가 KHTML을 포크한 [[WebKit]] 프로젝트 등 다양한 오픈소스 프로젝트를 [[BSD 라이선스]]로 공개 진행하며 오픈소스 커뮤니티와 진한 관계를 맺어갔다. 그리고, FreeBSD의 버전업 속도도 애플과의 밀월관계 이후로 상당히 가속을 받게 되었다. ~~그러나 안정성 역시 애플 따라 망해가는 느낌이...~~[* 이번 10.1-RELEASE 버전만 해도 프비의 '''공식''' 시스템 업데이트 도구인 freebsd-update의 오류로 인해 업데이트 도중에 /(루트 디렉토리)를 날려버리려 시도하는, 그야말로 초대형 사고를 일으킬 뻔했다. 다행히 rm 명령 자체가 아무 옵션이 없으면 디렉토리 삭제를 거부하기에 망정이지, 만약 지웠다면 그야말로 [[하트블리드]]를 뛰어넘는 참사를 일으킬 뻔한 것이다. ~~괜찮아, 쓰는 곳 별로 없으니까. 아 눈에서 땀이...~~ 윈도우로 치면 시스템 업데이트를 돌렸더니 C: 드라이브가 포맷될 뻔한 것과 같다.]
[[애플(기업)|애플]]과의 관계도 눈여겨볼 만한데, FreeBSD는 위에서 말했듯이 완전히 자유로운 라이선스로 배포되는지라, 애플(정확히는 [[NeXT]]사)도 소스코드를 가져다가 [[OS X]]을 만드는 데 사용하였다. 애플은 소스코드를 가져다 사용하기만 한 것이 아니라, 도로 돌아와 FreeBSD 개발팀에 Mac OS X 소스를 완전히(그러니까 오픈소스 부분만 완전히...) 공개하며 신기술을 알려주기까지 하여 친구를 먹었다.[* 그런데, FreeBSD 원년멤버이자 Ports 시스템 창시자인 코어개발자 한 명을 빼갔다. MacPorts도 이 사람이 애플로 가서 만든 작품이다. ] 이 이후부터 FreeBSD 커뮤니티는 애플 쪽과 밀월관계를 구축하였고, 애플도 이를 기점으로 CUPS라든가 KHTML을 포크한 [[WebKit]] 프로젝트 등 다양한 오픈소스 프로젝트를 [[BSD 라이선스]]로 공개 진행하며 오픈소스 커뮤니티와 진한 관계를 맺어갔다. 그리고, FreeBSD의 버전업 속도도 애플과의 밀월관계 이후로 상당히 가속을 받게 되었다. ~~그러나 안정성 역시 애플 따라 망해가는 느낌이...~~[* 이번 10.1-RELEASE 버전만 해도 프비의 '''공식''' 시스템 업데이트 도구인 freebsd-update의 오류로 인해 업데이트 도중에 /(루트 디렉토리)를 날려버리려 시도하는, 그야말로 초대형 사고를 일으킬 뻔했다. 다행히 rm 명령 자체가 아무 옵션이 없으면 디렉토리 삭제를 거부하기에 망정이지, 만약 지웠다면 그야말로 [[하트블리드]]를 뛰어넘는 참사를 일으킬 뻔한 것이다. ~~괜찮아, 쓰는 곳 별로 없으니까. 아 눈에서 땀이...~~ 윈도우로 치면 시스템 업데이트를 돌렸더니 C: 드라이브가 포맷될 뻔한 것과 같다.]


=== [[TrueOS]] (구 PC-BSD) ===
[[https://www.trueos.org/|TrueOS]]. 2006년 4월 iX시스템즈에서 개발된 FreeBSD 기반의 [[오픈소스]] [[OS]]로, 기존의 상용 OS인 [[Windows]] 또는 [[Mac OS X]]의 사용성과 FreeBSD의 안정성 및 보안성이라는 장점을 절충한 덕분에, 일반 가정용 뿐만 아니라 기업용 및 서버용으로도 사용 가능한 범용성을 가지고 있다.
=== Debian GNU/kFreeBSD ===
[[https://www.debian.org/ports/kfreebsd-gnu/|Debian GNU/kFreeBSD]]. FreeBSD 커널에 유저랜드는 데비안을 사용하는 프로젝트. 데비안 쓰는 감각으로 대부분을 사용 가능하다고 하니 관심 있는 사람은 도전해보자.
=== ubuntuBSD ===
[[https://sourceforge.net/projects/ubuntubsd/|ubuntuBSD(소스포지)]]. FreeBSD 커널에 [[우분투]] 유저랜드를 사용하는 것으로[* 다만 기본 데스크톱 환경은 우분투의 XFCE 공식 변형판인 Xubuntu 환경을 쓴다.] 소스포지 게시일 기준 [[2016년]] [[3월 20일]] 베타2까지 공개되었다.


2018년 2월 기준 공식 사이트 및 패키지 저장소 서버가 닫혀있어 설치는 가능하나 보안 업데이트 등은 받을 수 없다.


=== [[플레이스테이션 시리즈]] ===
== [[플레이스테이션 시리즈]] ==
[[플레이스테이션 3]] 및 [[PS Vita]]도 FreeBSD를 사용하였고, [[플레이스테이션 4]]의 Orbis OS 역시 FreeBSD의 커스터마이징 버전이다.
[[플레이스테이션 3]] 및 [[PS Vita]]도 FreeBSD를 사용하였고, [[플레이스테이션 4]]의 Orbis OS 역시 FreeBSD의 커스터마이징 버전이다.


=== [[TmaxOS]] ===
== [[TmaxOS]] ==
[[파일:tmaxbsd.jpg |width=450]]
[[파일:tmaxbsd.jpg |width=450]]


티맥스에서 개발한 국산 OS. [[리눅스]] 커널 기반일 줄 알았는데, FreeBSD 기반이었다.(...) 소스 코드를 가져와도 FreeBSD의 방침상 아무 문제가 없기 때문. ~~안정성이 뛰어난 FreeBSD의 장점을 다 말아먹는 것도 [[반어법|참 대단한 능력]]이긴 하다.~~ ~~FreeBSD의 흑역사~~
티맥스에서 개발한 국산 OS. [[리눅스]] 커널 기반일 줄 알았는데, FreeBSD 기반이었다.(...) 소스 코드를 가져와도 FreeBSD의 방침상 아무 문제가 없기 때문. ~~안정성이 뛰어난 FreeBSD의 장점을 다 말아먹는 것도 [[반어법|참 대단한 능력]]이긴 하다.~~ ~~FreeBSD의 흑역사~~


=== Junos OS ===
== Junos OS ==
컴퓨터 네트워크 관련 기기 제조회사인 주니퍼 네트웍스에서 만들어진 자사의 라우터, 스위치 전용 네트워크 운영체제로서 [[시스코]]에서 만든 라우터와 스위치에 들어가는 운영체제인 시스코 IOS랑은 다르게 FreeBSD를 기반으로 커스터마이징되어 있다.
컴퓨터 네트워크 관련 기기 제조회사인 주니퍼 네트웍스에서 만들어진 자사의 라우터, 스위치 전용 네트워크 운영체제로서 [[시스코]]에서 만든 라우터와 스위치에 들어가는 운영체제인 시스코 IOS랑은 다르게 FreeBSD를 기반으로 커스터마이징되어 있다.


=== [[닌텐도 스위치]] ===
== [[닌텐도 스위치]] ==
FreeBSD 기반의 운영체제를 사용한다는 것이 레딧의 유저에 의해 [[https://www.reddit.com/r/NintendoSwitch/comments/5xbe5a/the_switch_runs_freebsd_making_it_nintendos_first/|확인되었다]].
FreeBSD 기반의 운영체제를 사용한다는 것이 레딧의 유저에 의해 [[https://www.reddit.com/r/NintendoSwitch/comments/5xbe5a/the_switch_runs_freebsd_making_it_nintendos_first/|확인되었다]].


[[Category:비에스디]]
[[Category:비에스디]]
[[Category:프리BSD]]
[[Category:프리BSD]]
301

edits

Navigation menu