Computer Science6 [Linux] Flex와 Bison 이 글은 flex & bison 책의 예제코드를 실행하는데 도움이 되기 위해 작성했습니다. Flex와 Bison의 문법에 대한 설명이 없으므로 예제코드를 이해하기 위해서 원문을 먼저 읽어보는 것을 권장드립니다. 이 글의 예제코드는 다음 출처에서 가져왔습니다. Chapter 1. Introducing Flex and Bison Flex Flex는 토큰을 저장해서 알맞는 enum 타입으로 변환하는 어휘 분석(Lexer)을 위한 도구입니다. Bison을 사용하면 헤더파일에 %token으로 등록한 토큰들이 enum으로 자동 생성됩니다. %{ #include "fb1-5.tab.h" %} %% "+" { return ADD; } "-" { return SUB; } "*" { return MUL; } "/" { r.. 2024. 2. 28. [Linux] 쉘 변수와 환경변수 이 글은 shell에서 환경 변수를 참조하는 방법과 env에서 쉘 변수를 어떻게 지정하는지에 대해 다루고 있습니다. env 명령어 minishell 과제에서 built-in 명령어들은 모두 환경변수와 관련된 명령어 입니다. env 명령어는 옵션을 제외하고 다음과 같이 3가지 방식으로 사용할 수 있습니다. 1. 환경변수 목록 출력 # 입력 env # 출력 TERM_SESSION_ID=w0t0p0:4A2AC993-C7C8-4745-9387-F181921C1CC8 SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.bGePyIUzEC/Listeners LC_TERMINAL_VERSION=3.4.23 # ... 2. 하나 이상의 쉘 변수를 포함한 환경변수 목록을 출력 # 입력 env.. 2024. 2. 27. [Linux] SSH가 무엇인가요? shell 쉘(shell)은 kernel을 제어하기 위한 인터페이스이다. kernel을 마치 껍데기처럼 감싸고 있다는 의미에서 shell이라는 이름이 붙었다. 커널(Kernel)은 쉘로부터 명령(cat, ls 등)을 받아 CPU, I/O, 메모리 등 다양한 리소스에 접근한다. 쉘은 bash, zsh 등 여러가지 종류가 있다. bash는 기존의 Bourne Shell을 대체하기 위해 만들어진 Unix용 쉘이다. 대부분의 리눅스 운영체제에서 기본으로 채택하고 있다. zsh은 bash, ksh, tcsh의 기능을 결합하여 만든 쉘로 bash보다 다양한 기능을 지원한다. 현재 macOS에서 기본으로 채택하고 있다. ssh ssh(Secure Shell)는 네트워크 상의 다른 컴퓨터에 원격으로 시스템에서 명령을 .. 2023. 11. 28. [Linux] 접근 통제 방법 DAC와 MAC 접근통제(Access Control) 접근 통제란 디렉터리나 파일, 네트워크 소켓 같은 시스템 자원을 적절한 권한을 가진 사용자나 그룹이 접근하고 사용할 수 있게 통제하는 것이다. 시스템 자원은 객체(Object), 자원에 접근하는 사용자나 프로세스는 주체(Subject)라고 부른다. DAC(Discretionary Access Control) 임의 접근 통제(DAC)는 시스템 객체에 대한 접근을 사용자나 또는 그룹의 신분을 기준으로 제한하는 방법. 즉, 자원의 소유자가 자원에 대한 다른 사람들의 권한을 직접 제어하는 방법이다. 객체에 적용된 DAC 접근 통제는 퍼미션 정보를 통해 확인할 수 있다. 권한을 저장하는 방법에는 대표적으로 ACL(Access Control List), CL(Capability.. 2023. 11. 28. [Linux] Debian과 Rocky Linux Debian데비안(Debian)은 Ian Murdock와 당시 그의 여자 친구 Debra가 만든 GNU/Linux 기반 운영체제이다. 데비안은 리눅스에서 파생된 것이 아니며, KFreeBSD이나 NetBSD 등 다른 커널을 탑재한 데비안도 존재한다. 가장 많이 사용되는 서버용 OS인 우분투도 데비안을 기반으로 만들어졌다.지난 12개월 동안의 Google Trend 결과 우분투가 압도적으로 많다.Rocky Linux데비안과 함께 대표적인 리눅스 배포판으로 레드햇(Red Hat) 리눅스 혹은 레드헷 엔터프라이즈 리눅스(RHEL, Red Hat Enterprise Linux)가 있다. RHEL는 2003년 이후 유료화되어 판매되고 있다. Fedora 리눅스 또한 레드헷에서 후원하는 레드헷 계열 리눅스이다. R.. 2023. 11. 28. CPU 명령어 파이프라인 위험과 분기문 명령어 파이프라인 (Instruction Pipeline) 명령어 파이프라인이란 CPU 성능향상을 위해 명령어를 여러 단계로 나누어 동시에 실행하는 병렬 처리 기법이다. 명령어 처리 과정을 클럭 단위로 나누어보면 일반적으로 명령어 인출(IF, Instruction Fetch), 명령어 해석(ID, Instruction Decode), 명령어 실행(EX, Execute Instruction), 메모리 인출(MEM, Memory Fetch) 그리고 결과 저장(WB, Write Back)으로 나눌 수 있다. CPU 명령어 파이프라인은 아래 그림과 같이 각 단계를 동시에 실행한다. 파이프라인 위험(Pipeline Hazard) 파이프라이닝이 높은 성능을 가져오지만, 성능 향상에 실패하거나 오히려 성능이 저하되는.. 2023. 11. 23. 이전 1 다음