반응형
sudo halt : 전원 종료
그냥 전원을 뽑아버리면 메모리의 버퍼에 내용이 HardWare와 동기화가 되지 않기 때문에 전원을 종료할 때는 반드시 정상적으로 종료해야함.
#실행되고 있는 process를 list up 해주는 정보 아래의 상태는 bash만 process로 할당되어 있는 상태
pi@pi08:~/gpio.d $ ps
PID TTY TIME CMD
3252 pts/1 00:00:00 bash
3482 pts/1 00:00:00 ps
#잘못된 명령을 입력해서 return -1을 했을 때 echo $? 를 쳐서 return 값을 확인 할 수 있음.
#gpio가 자식 프로세스가 되는거고 종료되면서 자식 프로세스의 return 값을 bash에게 전달해준거임.
#그걸 bash에게 echo명령을 통해 보여달라고 하는거고
pi@pi08:~/gpio.d $ ./gpio
usage: ./gpio GPIO_NO
pi@pi08:~/gpio.d $ echo $?
255
#아래는 정상적으로 명령을 입력해준 후 ctrl C로 프로그램 종료 후 echo명령어를 통해 return 값을 확인한거
pi@pi08:~/gpio.d $ ./gpio 7
^C
pi@pi08:~/gpio.d $ echo $?
130
pi@pi08:~/gpio.d $ echo $?
0
시스템 콜 함수는 HW를 접근하기 위해 KERNEL에서 제공하는 기능이고,
시스템을 제어하기 위한 프로그램이므로 시스템 프로그래밍이라고도 함.
device를 운영하는 sw가 device driver이고 그 driver는 kernel에 적재되어 있음.
lsmod를 치면 driver들과 상태를 볼 수 있음.
사용중이지 않은 친구들은 삭제도 가능함.
ubuntu@ubuntu8:~$ lsmod
Module Size Used by
uas 28672 0
usb_storage 77824 1 uas
nls_iso8859_1 16384 1
binfmt_misc 24576 1
snd_intel8x0 49152 2
snd_ac97_codec 155648 1 snd_intel8x0
ac97_bus 16384 1 snd_ac97_codec
snd_pcm 135168 2 snd_intel8x0,snd_ac97_codec
intel_rapl_msr 20480 0
snd_seq_midi 20480 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 49152 1 snd_seq_midi
joydev 32768 0
vboxvideo 28672 1
drm_vram_helper 24576 1 vboxvideo
drm_ttm_helper 16384 2 drm_vram_helper,vboxvideo
intel_rapl_common 40960 1 intel_rapl_msr
ttm 86016 2 drm_vram_helper,drm_ttm_helper
snd_seq 77824 2 snd_seq_midi,snd_seq_midi_event
drm_kms_helper 307200 4 drm_vram_helper,vboxvideo
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
cec 61440 1 drm_kms_helper
crct10dif_pclmul 16384 1
input_leds 16384 0
snd_timer 40960 2 snd_seq,snd_pcm
ghash_clmulni_intel 16384 0
snd 106496 11 snd_seq,snd_seq_device,snd_intel8x0,snd_timer,s nd_ac97_codec,snd_pcm,snd_rawmidi
soundcore 16384 1 snd
aesni_intel 376832 0
crypto_simd 16384 1 aesni_intel
rc_core 61440 1 cec
fb_sys_fops 16384 1 drm_kms_helper
syscopyarea 16384 1 drm_kms_helper
sysfillrect 20480 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
mac_hid 16384 0
vboxguest 45056 0
serio_raw 20480 0
cryptd 24576 2 crypto_simd,ghash_clmulni_intel
sch_fq_codel 24576 2
nfsd 561152 13
msr 16384 0
auth_rpcgss 139264 1 nfsd
nfs_acl 16384 1 nfsd
parport_pc 53248 0
lockd 110592 1 nfsd
ppdev 24576 0
grace 16384 2 nfsd,lockd
lp 28672 0
parport 69632 3 parport_pc,lp,ppdev
sunrpc 585728 18 nfsd,auth_rpcgss,lockd,nfs_acl
ramoops 28672 0
drm 618496 7 drm_kms_helper,drm_vram_helper,vboxvideo,drm_ttm _helper,ttm
reed_solomon 28672 1 ramoops
pstore_blk 16384 0
efi_pstore 16384 0
pstore_zone 32768 1 pstore_blk
ip_tables 32768 0
x_tables 53248 1 ip_tables
autofs4 49152 2
hid_generic 16384 0
usbhid 65536 0
hid 147456 2 usbhid,hid_generic
psmouse 176128 0
crc32_pclmul 16384 0
xhci_pci 24576 0
ahci 45056 2
pata_acpi 16384 0
video 61440 0
i2c_piix4 28672 0
libahci 45056 1 ahci
e1000 155648 0
xhci_pci_renesas 20480 1 xhci_pci
network device
저장장치를 처리해주는 device가 1. block 디바이스(1K,2K,4K,8K~등의 블록단위로 접근) 2. 논 블락 디바이스는 바이트 단위로 접근
ubuntu@ubuntu8:~/linuxC$ ls
copy copy.c copy1.c 창민이니
ubuntu@ubuntu8:~/linuxC$ !!
ls
copy copy.c copy1.c 창민이니
!!를 쳐주면 직전에 실행한 명령어 다시 실행임.
chmod
아래의 명령어는 읽기 전용으로 바꿔주는 명령어
vi copy.txt
chmod u-r copy.txt
vi copy.txt
열고 수정해보려고 하면 아래 사진처럼 안된다.
C 코드 상에서 파일 권한을 설정해주는 값들도 있음. S_IRUSR, S_IWUSR이 그건데 ctrl+] 를 통해 타고 들어가서 보면 각각 0x0400 0200 0100 으로 값이 define 되어 있음.
반응형
'Linux BSP' 카테고리의 다른 글
[LINUX] LINUX 기초 상식 (0) | 2024.02.02 |
---|---|
[Ubuntu] Ctag 사용 (0) | 2024.02.02 |
[Linux BSP] Linux 교차 개발 환경 세팅하기 (1) | 2024.01.31 |
[Linux BSP] NFS 서버 설치해서 우분투-라즈베리파이 공유폴더 사용하기 (0) | 2024.01.31 |
[Linux BSP] VI, VIM 단축키 정리 (1) | 2024.01.31 |