Linux 커널의 감독하에 변수를 두는 것이 가능합니까?
예를 들어 증가만 가능한 카운터, 쓸 수 있지만 인증 후에만 읽을 수 있는 변수 등이 있습니다.
이상적으로는 재부팅 후에도 지속되며 실행 간에는 변경할 수 없습니다.
/proc 파일 시스템을 통해 변수에 액세스하고 커널 키링에 값을 저장할 수 있는 커널 모듈을 생각할 수 있습니다.
하지만 해결책을 찾을 수 없습니다.
사용 사례는 예를 들어 소프트웨어 eFuse입니다.https://en.wikipedia.org/wiki/EFUSE사용자 공간 변수를 안전하게 저장하는 기능.
답변1
서비스가 종료될 때 캐시를 저장하므로 Redis를 사용하여 데이터 구조를 저장하고 다시 시작한 후 검색할 수 있습니다.
Redis는 proc을 사용하지 않고 사용자 도메인 수준에서 실행되며 기본적으로 6379/TCP에서 통신합니다.
Python 및 PHP를 포함한 여러 언어에 대한 API/확장도 있습니다.
wget
또한 몇 가지 진단을 수행하고 telnet // 을 통해 몇 가지 명령을 보낼 수도 있습니다 curl
.
비밀번호로 보호할 수 있습니다.
데비안에 설치하세요
sudo apt-get install redis-server
.
Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스(BSD 라이선스) 인메모리 데이터 구조 저장소입니다. 문자열, 해시, 목록, 집합, 범위 쿼리가 포함된 정렬된 집합, 비트맵, 하이퍼로그 및 반경 쿼리가 포함된 지리공간 인덱스와 같은 데이터 구조를 지원합니다. Redis에는 복제, Lua 스크립팅, LRU 제거, 트랜잭션 및 다양한 수준의 디스크 지속성이 내장되어 있습니다.
따라서Redis 빠른 가이드
Redis는 오픈 소스 고급 키-값 저장소이며 확장 가능한 고성능 웹 애플리케이션을 구축하는 데 적합한 솔루션입니다.
Redis에는 고유한 세 가지 주요 기능이 있습니다.
Redis는 데이터베이스 전체를 메모리에 유지하고 지속성을 위해 디스크만 사용합니다.
많은 키-값 데이터 저장소에 비해 Redis는 상대적으로 풍부한 데이터 유형 세트를 가지고 있습니다.
Redis는 원하는 수의 슬레이브에 데이터를 복제할 수 있습니다.
답변2
원래 질문과 후속 의견을 고려하면 대답은 '아니오'입니다.
Linux 커널의 감독하에 변수를 두는 것이 가능합니까?
이상적으로는 재부팅 후에도 지속되며 실행 간에는 변경할 수 없습니다.
/proc 파일 시스템을 통해 변수에 액세스하고 커널 키링에 값을 저장할 수 있는 커널 모듈을 생각할 수 있습니다.
데이터를 안전하게 저장하는 방법을 찾고 있다면 일종의 데이터베이스와 저장되는 데이터의 무결성을 보장하는 방법이 필요합니다. 여기에는 일반적으로 암호화가 포함됩니다. 이는 그 자체로 키 관리, 스토리지 암호화 등과 같이 신중하게 해결해야 하는 여러 문제를 야기합니다.
커널은 영구 데이터 저장 옵션을 거의 제공하지 않습니다. 앞서 언급한 키링은 도움이 될 수 있지만 약간 다른 용도로 사용됩니다. 나는 그러한 하위 시스템의 보안을 연구한 적이 없으므로 귀하의 사용 사례에 대한 그 강점에 대해 언급할 수 없습니다.
답변3
Redis를 사용하여 데이터 구조를 저장하고 재부팅 후 검색할 수 있습니다. 시스템이 다운되어도 스토리지가 유지되기 때문입니다. 아래 링크로 이동하시면 도움을 받으실 수 있습니다.