목표 및 제약조건
2×2 행렬의 역행렬을 계산하기 위한 컴퓨팅 추상계층 조합
2×2 행렬 의 역행렬 을 계산.
(참고) Bare metal 방식
- [BIOS/UEFI] → [MBR or GRUB] → [NASM binary code] → [execution]
- 부트로더: GRUB 또는 hand-written MBR
- 언어: x86 Assembly (NASM) 혹은 C 코드
- 산출물:
.bin혹은.iso형태의 부팅 이미지
Windows 11 OS+ Edge Browser Console + JavaScript
Windows 11 OS 의 default browser인 Edge의 개발자 도구(DevTools) Console에서 JavaScript 언어를 이용해 2×2 역행렬 계산을 바로 실행
Edge Browser 실행 → F12 (메뉴 → 개발자 도구) → Console 탭 클릭
JavaScript 코드 복사/붙여넣기
javascript
function inverse2x2(a, b, c, d) {
let det = a * d - b * c;
if (det === 0) {
console.log("No inverse exists.");
return null;
}
return [
[d / det, -b / det],
[-c / det, a / det]
];
}
let A = [2, 1, 5, 3]; // a, b, c, d
let inv = inverse2x2(...A);
console.log("Inverse matrix:");
console.table(inv);
Windows 11 OS+WSL2+Ubuntu OS +TCC + C code
Windows 11에 내장된 WSL2 (Windows Subsystem for Linux 2)를 이용하여 최소한의 리눅스 배포판 + Tiny C Compiler(TCC)를 설치하고, CLI에서 직접 2×2 역행렬 계산 프로그램을 작성하고 실행.
WSL2 프로그램 활성화
powershell
# PowerShell (관리자 모드)
wsl --install- Windows 11에서는 자동으로 WSL2가 활성화됨
- 기본 설치 배포판: Ubuntu
Ubuntu OS 및 TCC 설치
powershell
# Ubuntu 설치
wsl --install -d Ubuntu
# TCC 설치
sudo apt update
sudo apt install tccC 코드 작성 (2×2 역행렬 계산)
shell
nano inverse.cc
#include <stdio.h>
int main() {
float a = 2, b = 1, c = 5, d = 3;
float det = a*d - b*c;
if (det == 0) {
printf("No inverse exists.\n");
return 1;
}
printf("Inverse matrix:\n");
printf("%f %f\n", d/det, -b/det);
printf("%f %f\n", -c/det, a/det);
return 0;
}C 코드 컴파일 및 실행
shell
tcc -o inverse inverse.c
./inverse