분류 전체보기(576)
-
[1000줄 OS 구현하기] Boot
Boot | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1. Booting 보통 컴퓨터를 부팅하면 BIOS나 UEFI가 하드웨어를 초기화하고 OS를 로드한다. QEME virt machine에서는 OpenSBI가 BIOS나 UEFI 역할을 수행한다. 종류long form설명특징BIOSBasic Input/Output System컴퓨터 부팅 시 가장 먼저 실행되는 펌웨어하드웨어 초기화, 운영체제 로드, 오래된 PC에서 주로 사용UEFIUnified Extensible Firmware InterfaceBIOS를 대체하는 현대적인 펌웨어 인터페이스빠른 부팅 속도, 더 많은 기능 제공, 현대 PC에서 주로 사용OpenSBIOpen Supervis..
2025.01.21 -
[1000줄 OS 구현하기] RISC-V Assembly
RISC-V 101 | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1. RISC-V RISC-V는 (”리스크 파이브"로 발음한다.) 축소 명령어 집합 컴퓨터 즉, RISC(Reduced Instruction Set Computer) 기반의 개발형 명령어 집합(ISA)이다. 대부분의 ISA와 달리 RISC-V ISA는 일부 목적으로는 자유로이 사용할 수 있으며, 누구든지 RISC-V 칩과 소프트웨어를 설계, 제조, 판매할 수 있게 허가되어 있다. 저자는 RISC-V를 CPU로 선택한 이유가 명세가 간단하고 초보자에게 적합하며, x86과 Arm과 함께 최근 주목받는 ISA이기 때문이라 한다. RISC-V Ratified Specificatio..
2025.01.17 -
[1000줄 OS 구현하기] 시작하기
1. 출처 Intro | OS in 1,000 Lines operating-system-in-1000-lines.vercel.app 1000줄로 운영체제를 직접 구현할 수 있다고 한다. 운영체제를 공부할 겸 한번 만들어 보자. 실제로 Linux의 0.01 version이 8413 줄에 불과했다고 하니 충분히 가능할 것 같다. 글에 따르면 완성된 OS에선 기본적인 context switching, paging, user mode, a command shell, disk device driver, file read/write operations in C 등을 할 수 있다고 한다. 이 과정에서 가장 어려운 부분은 ‘디버깅’이라고 한다. 구현되지 않은 printf 없이 디버깅하는 방법을 배워야 한다. 충분히 ..
2025.01.17 -
[홈서버] DDNS
1. DDNS란? DDNS(Dynamic DNS)는 동적으로 변하는 IP 주소를 도메인 이름에 실시간으로 연결해 주는 서비스이다. 일반적으로 가정이나 소규모 사무실에서는 ISP로부터 유동 IP를 할당받는데, 이 IP는 주기적으로 변경된다. ISP도 DHCP를 통해 각 가정이나 사무실에 유동 IP를 할당한다. 이는 한정된 네트워크 자원을 효율적으로 관리하기 위함이다. 아무튼 실제로 public ip가 변동되는 경험을 겪고 나서 DDNS의 필요성을 알게 되었다. DDNS는 이러한 IP 주소가 변경될 때마다 자동으로 도메인 네임 서버의 설정을 업데이트하여, 항상 동일한 도메인 이름으로 서버에 접속할 수 있게 해 준다. 고정된 public ip를 할당받지 못하는 홈 서버나 NAS 같은 개인 서버를 운영할 때 D..
2024.12.17 -
[홈서버] 네트워크 2 - 희망편
1. Unifi Cloud Gateway Ultra생각보다도 더 무겁고 야무지다. 스위치랑 AP도 사고 싶다… unifi 너무 비싼 것... 2. VLAN 보안을 위해서 VLAN을 사용하여 네트워크를 분리UCG에서 VLAN 생성 후Proxmox Linux Bridge의 VLAN 옵션 활성화VM에서 VLAN tag를 추가💡 라우터에서 DHCP로 할당받은 IP 대신에 정적 IP를 새로 부여했음. 아직 예전 IP 그대로인데 이를 새로 부여한 정적 IP로 갱신하는 법.그냥 인터넷 끊고 다시 연결하면 됨. 3. 방화벽 규칙 가. 요구사항VLAN에서 라우터에 접근할 수 없도록 차단cloudflare에서 요청은 허용필요시 NPM을 통한 reverse proxy는 허용NPM → VLAN의 특정 포트로 요청 허용NPM..
2024.12.17 -
[홈서버] 네트워크 1 - 절망편
0. 네트워크 요구사항 각 인스턴스는 사설 IP를 부여받는다.하나의 인스턴스가 해킹되어도 다른 인스턴스에 접근할 수 없도록 설정한다.각 인스턴스는 외부에서 안전하게 접근할 수 있어야 한다.하이퍼바이저 자체는 내부망을 통해서만 접근할 수 있도록 설정한다.브루트포스 공격을 막을 수 있어야 한다.SSH는 key 사용과 OTP 인증을 강제한다. 혹은 그에 준하는 보안 조치가 필요하다.홈서버의 공인 IP를 노출하지 않는다.IDS/IPS 활성화.DDNS 지원. 1. 네트워크 장비 가. 일반적인 네트워크 장치 배치 순서 ISP → 모뎀ISP로부터 인터넷 신호를 받아 모뎀에 연결합니다.모뎀 → 라우터모뎀의 LAN 포트에서 라우터의 WAN 포트로 연결합니다.pfSense나 OPNsense가 설치된 서버가 있다면, 이 ..
2024.12.17 -
[홈서버] 보안
홈서버를 지키기 위한 최소한의 보안설정을 조사해본다.이어지는 네트워크1, 2에서 보안설정을 실제 적용한다. 1. 요구사항 홈서버의 기본적인 보안 요구사항을 정리해 보았다.기본적인 보안특정 IP 차단특정 IP 허용국내 IP만 허용 → 일부 서비스 이용에 지장이 발생, IP 우회로 실효성도 떨어짐특정 국가 IP 차단비정상적인 접속을 시도하는 IP 차단침입 탐지안전한 외부 접속 2. 기본 보안 설정 중요한 포인트Network SegmentationFirewall & PortforwardingCloudflare (Reverse Proxy)Cloudflare Settings & StatsCloudflare Conditional PortforwardingCloudflare Firewall RulesIDS and ..
2024.12.15 -
[홈서버] 하이퍼바이저
1. 참고자료 홈서버 구축하기 – 1. 가상화 기술 조사 - Taeinsoft현재 개인적으로 집에서 시놀로지(Synology) NAS를 사용하고 있다. 누군가는 헤놀로지(XPEnology)를 사용하기도 하지만 정식으로 비용을 지불하면 시행착오를 겪지 않고 바로 사용할 수 있는 장점이taeinsoft.com 나만의 홈서버 구축하기 - 1개발에 입문하고 나만의 홈서버를 만들고 싶다는 생각이 들었다. 기존에 사용하던 컴퓨터를 이용해 하이퍼바이저를 구성하고 여러 서비스를 동작시켜볼 것이다. 기존에 있던 자작 NAS를 이용해velog.io Proxmox 설치법은 검색하면 많이 나오는 관계로 따로 정리하진 않겠다. Rufus 설치Proxmox ISO 이미지 다운로드설치 Proxmox Host의 IP 변경 시 ..
2024.12.10