Boot & Shutdown inittab ( 부팅 레벨 다룸) -> rcS.conf(시스템 초기화) -> rc.conf (각 레벨별 진행 내용) -> rc.local(2,3,5번만 해당, 부팅) +추가 inittab의 수정을 통해 x-window와 텍스트모드 진입여부를 결정할 수 있다. id:5:initdefault = 런레벨 5번을 의미 // x-window로 진입 id:3:initdefault = 런레벨 3번을 의미 // 텍스트모드로 진입 리눅스 2022.07.15
LVM의 개요 LVM이란? Logical Volume Manager 의 약자로 예를 들어 물리적으로 두개의 하드디스크를 논리적으로 쪼개 3개로 만들수있다. 관련용어 PV : Physical Volume , 물리적 볼륨 VG : Volume Group, 볼륨 그룹 LV : Logical Volume, 논리적 볼륨 PE : Physical Extent, 물리적 확장 위 사진처럼 하드디스크가 1,2번이 물리적(PV)으로 있는데, 물리적 확장(PE)을 통해 볼륨 그룹(VG)를 이룸. 이 볼륨 그룹을 논리적 볼륨(LV) 1,2,3번으로 나눔. 쉽게 말해 컴퓨터에 하드 디스크를 설치할때. 파티션 분할을 하는데, 분할 하고 나면 용량 크기는 고정이 되어 변경하기 어려움. LVM을 통해 찰흙처럼 용량 증설 및 구조 변경 가능하다는 .. 리눅스 2022.07.15
RAID구성의 개념 및 종류 RAID는 Redundant Array of Independent Disks 의 약자. 여러개의 하드디스크가 있을 때, 동일한 데이터를 여러 곳에 중복해서 저장함. 운영체제에서는 논리적으로 하나의 저장소처럼 인식 but, 물리적으로는 여러개의 하드디스크. 가장 기본이 되는 기술 1) 스트라이핑 데이터를 중복이나 패리티 없이 디스크에 분산하여 기록함. 빠른 입출력 속도 제공. 패리티 코드가 없기 때문에 오류시 데이터 복구 불가능 하지만 요즘 하드디스크에서는 기본적으로 복구가능. 2) 미러링 두개의 디스크에 동일하게 기록. 하나의 디스크가 고장나도 복구 가능. 각 드라이브를 동시에 읽기때문에 읽기 성능은 향상 되지만, 쓰기성능은 양쪽 디스크에 써야하기때문에 속도가 느려진다. 복구가능성은 높다. 하지만 디스크.. 리눅스 2022.07.15
050_SnakeBite(C#) SnakeBite게임을 만들어보자. Random r = new Random(); Ellipse[] snake = new Ellipse[30]; Ellipse egg; int W = 10; // 뱀과 알의 크기 (Ellipse) int visibleCount =5; DispatcherTimer dt = new DispatcherTimer(); Stopwatch sw = new Stopwatch(); string move = ""; 랜덤 객체 생성 ( 알위치를 랜덤하게 정하기 위해서 이다.) Elipse snake는 뱀의 최대 크기를 30으로 정하는것 visibleCount = 5; 뱀의 최대크기는 30인데 처음 게임 시작하였을 때 보이는 알을 5개로 정하였음. public Game() { Initializ.. C# 2022.06.18
049_Rotation_Clock_C# 이전 게시물인 047_WinFormClock과 같은 맥락이다. 각각의 함수들만 약간씩 다름. 2022.06.09 - [C#] - 047_Form_Clock_C# using System.Windows; using System.Drawing; using System; using System.Windows.Threading; using System.Windows.Media; using System.Windows.Shapes; namespace _048_WPFClock { /// /// MainWindow.xaml에 대한 상호 작용 논리 /// public partial class MainWindow : Window { bool aClock_Flag = false; Point center; //중심점 doubl.. C# 2022.06.12
048_WPF_Clock_C# 사실 이전 게시물인 047_WinFormClock과 같은 맥락이다. 각각의 함수들만 약간씩 다름. 2022.06.09 - [C#] - 047_Form_Clock_C# using System.Windows; using System.Drawing; using System; using System.Windows.Threading; using System.Windows.Media; using System.Windows.Shapes; namespace _048_WPFClock { /// /// MainWindow.xaml에 대한 상호 작용 논리 /// public partial class MainWindow : Window { bool aClock_Flag = false; Point center; //중심점 do.. C# 2022.06.12
047_Form_Clock_C# C# WinForm으로 아날로그 시계와 디지털 시계를 만들어보자. WinForm은 GDI+를 사용합니다 -윈도우가 디바이스 드라이버에 독립적으로 프로그래밍할 수 있도록 그래픽을 제공해주는 모든 기능 -Visual C++ 환경에서 닷넷 환경으로 변경되면서 더 많은 장점과 사용의 편리함을 제공하는 것이 GDI+ public partial class Form1 : Form { //필드 , 속성 Graphics g; bool aClock_Flag = false; Point center; //중심점 double radius; //반지름 int hourHand; //시침의 길이 int minHand; //분침 int secHand; //초침 const int clientSize = 300; const int clo.. C# 2022.06.09
046_Matching Game(그림 맞추기 게임)_C# 그림맞추기 게임을 만들어보자! 알고리즘 1. 16개의 버튼을 만들어서, Board에 넣는다. 2. 랜덤하게 각 버튼에 숫자(0~7)을 배당한다. 3. 이 숫자를 Button.Tag에 저장한다. 4. 뒤집한 그림으로 표시한다. int[] rnd = new int[16]; // TagSet()에서 사용할 배열 DispatcherTimer myTimer = new DispatcherTimer(); 총 16개의 그림을 비교할 것이니 배열크기를 16으로 정한다. 그림 하나를 선택 후, 다음 그림이 열릴때 너무 빨리 닫히므로 두번째 그림을 확인할 수 없게된다. 그래서 WPF의 시간을 사용하는 클래스인 DispatcherTime 객체를 선언한다. public MainWindow() { InitializeCompone.. C# 2022.06.09
045_ECG,PPG(Gragh Control) Chart를 조작할수있게 만들어보자 ECG는 정해진 시간에 심장의 전기적 활동을 해석하는 것이다. (심전도) PPG는 맥파형은 피부표면 혈관의 미세혈관안의 혈류량의 변화상을 통해 혈관에 대한 임상 정보를 제공한다. double[] ecg = new double[100000]; double[] ppg = new double[100000]; private int ecgCount; private int ppgCount; Timer t = new Timer(); ecg / ppg 의 배열의 크기를 10만개 지정; 사실 데이터의 개수가 10만개 까지는 아님. Timer를 통해 AutoScroll 조작예정 InitializeComponent(); this.Text = "ECG/PPG"; this.WindowStat.. C# 2022.06.09
044_Graph Chart를 이용하여 sin, sin(x)/x, cos(x)/x 를 그려보자. 이전 게시물들과 마찬가지로 winform으로 프로젝트 생성해주고 chart component하나만 폼 위에 올려주자. chart1이라고 되어있는 이름을 편하게 쓰기위해 ch로 이름변경. 레이아웃의 Dock또한 Fill로 바꾸어주자. ch.ChartAreas[0].BackColor = Color.Black; // ch.ChartArea["ChartArea1"]도 가능 그래프의 배경를 검은색으로해야 멋있다. //x,y축 설정 ch.ChartAreas[0].AxisX.Minimum = -20; ch.ChartAreas[0].AxisX.Maximum = 20; ch.ChartAreas[0].AxisX.Interval = 2; // x.. C# 2022.06.09