본문 바로가기

전체 글105

소프트웨어 종류 및 동작 원리, 운영체제, 커널, 프로세스와 스레드 ■ 소프트웨어(Software)소프트웨어란 컴퓨터를 비롯한 시스템에서 특정 작업을 수행하게 하는 프로그램의 집합으로 그 수행에 필요한 절차, 규칙, 문서 등의 총칭을 말한다.출처 : 한국정보통신기술협회소프트웨어는 하드웨어에서 구동되는 논리적인 무형물로, 사용자의 명령을 하드웨어에게 전달해주는 시스템 구성 요소 중 하나이다.​하드웨어가 없으면 애초에 소프트웨어를 설치할 수 없고, 소프트웨어가 없는 하드웨어는 빈 껍데기나 다름없다. 서로 반대되는 개념보다는 각자 역할을 갖고 시스템을 이루는 상호 보완적 관계라고 보면 된다.​하드웨어가 쇠붙이, 전자공학적인 부품 그리고 회로 등으로 구성되어 있다면, 소프트웨어는 프로그램으로 구성되어 있다. 프로그램이란 큰 의미에서 소프트웨어가 수행하는 모든 일들을 통칭하는데,.. 2024. 6. 23.
펌웨어(Firmware) ■ 펌웨어펌웨어는 컴퓨팅과 공학 분야에서 특정 하드웨어 장치에 포함된 소프트웨어로, 소프트웨어를 읽어 실행하거나 수정하는 것도 가능한 영구적 소프트웨어를 뜻한다.출처 : 위키백과 펌웨어는 하드웨어의 기본적인 구동 및 제어를 담당하는 특수 용도의 소프트웨어를 말한다. 소프트웨어라고 하지만 보통 하드웨어 엔지니어가 도맡아 지원한다.​■ 펌웨어와 소프트웨어위키백과에서 펌웨어는 소프트웨어라고 정의했다. 여기서 처음 들었던 의문점은 "소프트웨어면 소프트웨어지 왜 굳이 펌웨어라는 명칭을 사용할까" 였다.일반적인 소프트웨어(OS, Application 등)는 RAM에서 구동된다.펌웨어는 영구적인 명령어와 데이터로 이루어져 있으므로, 제조단계에서 ROM(혹은 PROM)에 기록된다.즉, 내용이 날아가면 안되고 사용자가 .. 2024. 6. 23.
[개발용어] C, C++, C# 언어의 차이점 언어유형개발연도주요용도특징C절차 지향 언어1972시스템 프로그래밍, 임베디드 시스템저수준 메모리 조작, 속도, 효율성C++객체 지향 언어1983게임 과학 시뮬레이션, 운영체제, 블록체인클래스, 상속, 다형성, 탬플릿C#객체 지향 언어2000Windows 데스크톱 애플리케이션, 게임, 웹 애플리케이션가비지 수집, 유형 안전성, 사용하기 쉬운 구문■ C언어C언어는 위 세가지 언어 중 가장 기본이 되는 언어이다. 가장 오래되고, 가장 널리 사용되고 있으며, 운영체제나 언어 처리계 등의 시스템 기술에 적합한 프로그래밍 언어이다.​C언어는 절차 지향 언어(procedure oriented language)이다. 즉, 함수를 이용해서 프로그램을 만들어 순차적으로 실행되는 언어라고 할 수 있다. 코드를 짠 순서대로 .. 2024. 6. 23.
[개발용어] 컴파일, 디버깅, 빌드, 배포 ■ 컴파일컴파일 언어는 코드가 실행되기 전 컴파일러를 거쳐 기계어로 모두 변환되어 실행되는 프로그래밍 언어이다.출처 : 위키백과 쉽게 말해서 컴파일(compile)이란 개발자들이 특정한 프로그래밍 언어(C, C++, Java, Python 등)을 사용해서 컴퓨터가 이해할 수 있는 기계어 코드로 변환하는 작업을 일컫는다. 즉, 컴퓨터와 그 컴퓨터에 설치된 운영체제가 이해할 수 있는 기계어 코드로 변환하는 과정 또는 일이다.■ 링크컴파일이 끝나면 나눠져 있는 Object 파일들이나 다른 파일들을 엮어주는 작업이 필요한데, 이 작업을 링킹이라고 한다.​사실 우리가 일반적으로 프로그래밍을 하면서 모든 작업들을 프로그래밍하지는 않는다. 예를 들어 키보드 입력에 대한 Scanner를 쓰지만 어떻게 키보드가 입력되고.. 2024. 6. 23.