kdb set user/tests/hello world
#> Create a new key user/tests/hello with string "world"
kdb export user/tests/hello mmapstorage > test.mmap
test.mmap
ãšãããã¡ã€ã«ãäœæããã kdb import
ã§åã€ã³ããŒãã§ããŸãã
test.mmap
ãšããååã®ç©ºã®ãã¡ã€ã«ãäœæããã次ã®ã¡ãã»ãŒãžãåºåãããŸãïŒ ENABLE_LOGGER
ããã®ãã°ãå«ãŸããŸãïŒã
src/plugins/mmapstorage/mmapstorage.c:944:libelektra_mmapstorage_LTX_elektraPluginset: could not unlink
src/plugins/mmapstorage/mmapstorage.c:1003:libelektra_mmapstorage_LTX_elektraPluginset: strerror: Permission denied
Sorry, the error (#9) occurred ;(
Description: Insufficient permissions to open configuration file for writing. You might want to retry as root.
Reason: Permission denied
Ingroup: kdb
Module:
At: /home/klemens/data/bsc/libelektra/src/plugins/mmapstorage/mmapstorage.c:1004
Mountpoint: user
Configfile: /dev/stdout
ã kdb export
ãrootãšããŠåŒã³åºããããšãã«æ©èœããŸãããïŒç·šéïŒä»¥äžã®ã³ã¡ã³ããåç
§ïŒ kdb export user/tests/hello mmapstorage test.mmap
ãæ©èœããŸããã kdb export
å®å
šã«ææžåãããŠããªãæ©èœã§ãã ãããã£ãŠãããè¯ããšã©ãŒã¡ãã»ãŒãžãšæŽæ°ãããããã¥ã¡ã³ãã ãã§ååãããããŸããã
ãããè©ŠããŠããã ãããã®è©³çŽ°ãªã¬ããŒããããããšãããããŸãïŒ
ãããã£ãŠãããè¯ããšã©ãŒã¡ãã»ãŒãžãšæŽæ°ãããããã¥ã¡ã³ãã ãã§ååãããããŸããã
ã¯ããç§ã¯å®å šã«åæããŸãã
ãã¶ããinfos / statusïŒ666ã«serializable
ãããããã¡ã€ã«ã/ dev / stdoutã®å Žåãæ瀺çã«å€±æããå¿
èŠããããŸããïŒ ïŒ @mpranjãŸãã¯ããã¡ã€ã«ãmmapã§ããªããã©ãããæ€åºããæ¹æ³ã¯ãããŸããïŒããã¯ãæåŠãããã¢ã¯ã»ã¹èš±å¯ãšæ¬åœã«åãã§ããïŒïŒ
ã³ãŒãïŒããã³ãšã©ãŒã¡ãã»ãŒãžïŒãèŠããšãçŸåšã®åé¡ã¯ãã«ãŒãã¢ã¯ã»ã¹ãªãã§stdout
unlink
ãåŒã³åºãããšãã§ããªãããšã ãšæããŸãã ãŸãã stdout
ã¯ãã§ã«éãããŠããããã open
ã倱æããå¯èœæ§ããããŸãã ãããŠã stdout
ãmmapableã§ãããã©ããã¯ã stdout
ãæ¥ç¶ãããŠãããã®ã«äŸåãããšæããŸãã
fstat(fileno(stdout), &stat)
ã䜿çšããŠããããéåžžã®ãã¡ã€ã«ã§ãããã©ããã確èªãããšãæ©èœããå¯èœæ§ããããŸãã ãã¶ãisatty(3)
ãæ©èœããŸãã
ãããã«ãããæã
ã¯ãåã«åºåãã¡ã€ã«ããããã©ããããã§ãã¯ããããšãã§ã/dev/stdout
ïŒãŸãã¯CON
ã«ã€ããŠ_WIN32
ïŒãšmmapã§äœ¿çšããããã«äžæãã¡ã€ã«ãäœæãããã®åŸãåçŽã«ãã®ã³ããŒstdout
ã ãã¡ããé
ããªããŸããã kdb export
åºåããã€ãã³ã°ããå¯èœæ§ã¯ä¿æãããŸãã
ãã¶ããinfos / statusïŒ666ã«
serializable
ãããããã¡ã€ã«ã/ dev / stdoutã®å Žåãæ瀺çã«å€±æããå¿ èŠããããŸããïŒ
ã©ã¡ãããšããã°ãç§ã¯ã¹ããŒã¿ã¹humanreadable
æã¡ããã©ãŒãããã人éãèªãã圢åŒã§ãªãå Žåãttystdoutãžã®ãšã¯ã¹ããŒããæåŠããŸãã
kdb export
ãrootãšããŠåŒã³åºããããšãã«æ©èœããŸãã
ç§ã¯ãããåãæ»ããŸã...ãããè©Šããªãã§ãã ããïŒ rootãŠãŒã¶ãŒãšããŠkdb export <something> mmapstorage
ãåŒã³åºããšïŒstdoutããªãã€ã¬ã¯ããããŠããå Žåã§ãïŒã /dev/stdout
ç Žæ£ãããŸãã 䜿çšããŠ/dev/stdout
ïŒäŸãã°çµç±fopen
ããªããããã©ã«ãã®ã·ã³ããªãã¯ãªã³ã¯ãåäœæãããŸã§ãããªãã®ã·ã¹ãã äžã®äœæ¥ã¯ããŸããïŒ sudo rm /dev/stdout && sudo ln -s /dev/stdout /proc/self/fd/1
ã
æåã®è§£æ±ºçã¯ã kdb export
ãškdb import
åžžã«äžæãã¡ã€ã«ã§æ©èœããããšã ãšæããŸãã ãããããšã kdb export
ã¯KDBãè¡ãããšãšãã䌌ããã®ã«ãªããŸãã ããã«ããããªã³ã¯è§£é€ã®åé¡ïŒmmapããããã¡ã€ã«ã«å¿
èŠïŒã解決ãããŸããæ¬ ç¹ã¯ãããã©ãŒãã³ã¹ã®äœäžïŒå¿
èŠãªã³ã³ãã³ãå
šäœã®ã³ããŒïŒã®ã¿ã§ãããã€ã³ããŒã/ãšã¯ã¹ããŒãã¯ãã¹ãŠã®ã¹ãã¬ãŒãžãã©ã°ã€ã³ã§æ©èœããŸããããã¯éåžžã«éèŠã§ãã
æåã®è§£æ±ºçã¯ã
kdb export
ãškdb import
åžžã«äžæãã¡ã€ã«ã§æ©èœããããšã ãšæããŸãã
ãã©ã°ã€ã³ã¯ãå¿
èŠã«å¿ããŠãèªåã§äžæãã¡ã€ã«ãäœæããå¿
èŠããããšæããŸãã ããããããšã§ãTTYã«çŽæ¥åºåã§ãããã©ã°ã€ã³ã®ããã©ãŒãã³ã¹ã®äœäžãåé¿ã§ããŸãã AFAIK mmapstorage
ã¯çŸåšãTTYã§åäœããªãå¯äžã®ãã©ã°ã€ã³ã§ãã kdb export /some/key plugin > export.file
ä»ããŠãã¹ãŠã®ã¹ãã¬ãŒãžãã©ã°ã€ã³ãåŒã³åºãããšãã§ããããšã確èªããç°¡åãªã·ã§ã«ãã¹ããè¿œå ããããšãã§ããŸãã æåŸ
ãããåºåãçæããæ¹æ³ãç¥ãã®ã¯ãã©ã°ã€ã³ã®è²¬ä»»ã§ãããããããžãã¯ãããèªå·±å®çµåã§ãã
ãŸãã kdb import
å ŽåãTTYã®å Žåã§ãããã¡ã€ã«ã®èªã¿åãã¯åžžã«æ©èœããã¯ããªã®ã§ãäžæãã¡ã€ã«ã¯äžèŠã§ãïŒé©åãªã¢ã¯ã»ã¹èš±å¯ãããå ŽåïŒã
ãã©ã°ã€ã³ã¯ãå¿ èŠã«å¿ããŠãèªåã§äžæãã¡ã€ã«ãäœæããå¿ èŠããããšæããŸãã
次ã«ããã©ã°ã€ã³ïŒãŸãã¯ããå
·äœçã«ã¯mmapïŒã¯ãKDBå
ã§äœ¿çšãããŠããã®ãkdb export
å
ã§äœ¿çšãããŠããã®ããç¥ãå¿
èŠããããŸãã
@mpranjããªãã®æèŠã¯äœã§ããïŒ ããã¯mmapãã©ã°ã€ã³å ã§ä¿®æ£ã§ããŸããïŒ
ããããããšã§ãTTYã«çŽæ¥åºåã§ãããã©ã°ã€ã³ã®ããã©ãŒãã³ã¹ã®äœäžãåé¿ã§ããŸãã
ãã®ããã©ãŒãã³ã¹ããã«ãã£ãåé¡ã«ãªãã®ã¯ã©ã®å Žåã§ããïŒ ãã¶ãããã¹ãŠã®ãã¹ãã±ãŒã¹ã®ããã¯ã¢ãã/埩å ã«ãããŸããïŒ
AFAIK mmapstorageã¯çŸåšãTTYã§æ©èœããªãå¯äžã®ãã©ã°ã€ã³ã§ãã
茞åºçšã¯ãã ããããã€ã³ããŒãã«ã¯ãæ©èœããªããã©ã°ã€ã³ãããã€ããããŸããã ãã©ã°ã€ã³ãfseekãŸãã¯åæ§ã®ãã®ã䜿çšããŠããå Žåãcsvstorageãmozprefsãªã©ã¯æããã«æ©èœããŸããã ïŒãã³ãã¯ä¿®æ£ãããŠããã¯ãã§ãïŒ
kdb export / some / key plugin> export.fileãä»ããŠãã¹ãŠã®ã¹ãã¬ãŒãžãã©ã°ã€ã³ãåŒã³åºãããšãã§ããããšã確èªããç°¡åãªã·ã§ã«ãã¹ããè¿œå ããããšãã§ããŸãã
ããªãã¯tests / shell / check_export.sh 46è¡ç®ãæå³ããŸããïŒ
ãã®ããã©ãŒãã³ã¹ããã«ãã£ãåé¡ã«ãªãã®ã¯ã©ã®å Žåã§ããïŒ
å®éããããã決ããŠãªãã§ãããã ãã€ãã³ã°ã®ä»£ããã«ãšã¯ã¹ããŒã/ã€ã³ããŒãã®3ã€ã®åŒæ°ããŒãžã§ã³ã䜿çšããéãã 以äžã®ææ¡ãåç §ããŠãã ããã
ããªãã¯tests / shell / check_export.sh 46è¡ç®ãæå³ããŸããïŒ
ã¯ãããããis_not_rw_storage
ãæ©èœããªããããããã¯å£ããŠããŸãã dump
ã§ããã¹ãã¬ãŒãžãã©ã°ã€ã³ãšããŠèªèãããŸããã
ããããã°ããç°¡åã«è§£æ±ºããã«ã¯ã次ã®ããã«ããå¿ èŠããããŸãã
include_common.sh.in
tests/shell/check_export.sh
is_not_rw_storage
ãä¿®æ£ããŠãå°æ¥ãã®ãããªåé¡ãæ€åºã§ããããã«ããŸããkdb export
ã3çªç®ã®åŒæ°ãæå®ãããŠããªãå Žåã«ã®ã¿ãäžæãã¡ã€ã«ãäœæããŸãã ãã®ãã¡ã€ã«ãkdbSet
åŒã³åºãã§äœ¿çšãããã®åŸããã®å
容ãstdoutã«ã³ããŒå°å·ããŸãïŒC ++ã§ã¯1è¡ãŸãã¯2è¡ãè¶
ããŠã¯ãªããŸããïŒãkdb import
å Žåãstdinã䜿çšããå Žåã¯äžæãã¡ã€ã«ãäœæããŸãã ãã¹ãŠã®stdinãäžæãã¡ã€ã«ã«ã³ããŒãããã®ãã¡ã€ã«ã䜿çšããŠkdbGet
ãåŒã³åºããŸããkdb import
ãškdb export
ã®ããã¥ã¡ã³ããæŽæ°ããŠã3çªç®ã®åŒæ°ãååšããããšã瀺ããŸãã ãŸãã2ã€ã®åŒæ°ã®ããŒãžã§ã³ã䜿çšããå Žåã¯ãäžæãã¡ã€ã«ãäœæããããšãè¿°ã¹ãŠãã ãããPSã ããã¯good first issue
ãããããŸãã
is_not_rw_storageãå£ããŠãããšå ±åããŠããã ããããããšãããããŸããïŒ2423ãéããŸãã
ç³ãèš³ãããŸããããç§ã¯1é±éäžåšã ã£ãããã調æ»ã§ããŸããã§ããã
mmapãšã©ãŒã¡ãã»ãŒãžã¯èª€è§£ãæãå¯èœæ§ããããŸãã éæ£èŠãã¡ã€ã«ããããããããšãããšã mmap()
ãEACCES
mmap()
倱æããŸãã ç§ã®ç¥ãéããstdoutã§ã¯æ©èœããŸããã ãŸããïŒ2209ã§èª¬æãããŠããããã«ããã€ãã§ã¯æ©èœããŸããã
POSIXããïŒ
mmapïŒïŒé¢æ°ã¯ã次ã®ã¡ã¢ãªãªããžã§ã¯ãã§ãµããŒããããŸãã
- éåžžã®ãã¡ã€ã«
- [SHM]å ±æã¡ã¢ãªãªããžã§ã¯ã
- [TYM]åä»ãã¡ã¢ãªãªããžã§ã¯ã
mmapstorageå
ã®ãœãªã¥ãŒã·ã§ã³ã«ã€ããŠã¯ããããstat
éåžžã®ãã¡ã€ã«ã§ãããã©ããã確èªããŠããã次ã®ããã«ããŸãã
ç§ã¯ä»ã®è§£æ±ºçã«ããªãŒãã³ã§ãã äžèšã®ãœãªã¥ãŒã·ã§ã³ã¯ãmmapstorageããžãã¯ã®å€ããå€æŽããŸããã ãã€ããŸãã¯stdoutãçŽæ¥æäœããããã«mmapstorageãäœãçŽãããšã¯ãç§ã«ã¯ããŸãæå³ããããŸããã
ãè¿äºããããšãããããŸãïŒ
mmapãšã©ãŒã¡ãã»ãŒãžã¯èª€è§£ãæãå¯èœæ§ããããŸãã
ãšã©ãŒã¡ãã»ãŒãžãæ¹åããŠãã ããã
ç§ã®ç¥ãéããstdoutã§ã¯æ©èœããŸããã ãŸãããã€ãã§ã¯æ©èœããŸãã
ãã®æ å ±ããšã©ãŒã¡ãã»ãŒãžã«è¿œå ããŠãã ããã
äžèšã®ãœãªã¥ãŒã·ã§ã³ã¯ãmmapstorageããžãã¯ã®å€ããå€æŽããŸããã
çŸåšã圱é¿ãåãããã©ã°ã€ã³ã¯ãã©ã°ã€ã³ã ããªã®ã§ãçµ±èšãå®è¡ããå¿ èŠã«å¿ããŠãã¹ãŠãã³ããŒããããšã¯çã«ããªã£ãŠããŸãã ãã®åŸããã¬ãŒã ã¯ãŒã¯ãå€§å¹ ã«å€æŽããããšãªãããã®åé¡ã解決ã§ããŸãã
ãã®åŸããã¬ãŒã ã¯ãŒã¯ãå€§å¹ ã«å€æŽããããšãªãããã®åé¡ã解決ã§ããŸãã
kdb import
ãškdb export
ã®ããã¥ã¢ã«ããŒãžãæŽæ°ããå¿
èŠããããŸãã çŸåšãstdin / stdoutã«äŸåããªã3ã€ã®åŒæ°ããŒãžã§ã³ã«ã€ããŠã¯èšåãããŠããŸããã
åé¡ã®å ±åãšå ¥åã®äž¡æ¹ã«æè¬ããŸãïŒ
æ®å¿µãªããã strerror
ã¯ãããã®èª€è§£ãæããšã©ãŒã¡ãã»ãŒãžãåºåããŸãã ãã®å Žåããã³ããè¿œå ã§ããŸãã
ä»é±ã¯PRã§ãªã¯ãšã¹ããããå€æŽãè¡ããŸãã
kdbã€ã³ããŒããškdbãšã¯ã¹ããŒãã®ããã¥ã¢ã«ããŒãžãæŽæ°ããå¿ èŠããããŸãã çŸåšãstdin / stdoutã«äŸåããªã3ã€ã®åŒæ°ããŒãžã§ã³ã«ã€ããŠã¯èšåãããŠããŸããã
ãã¶ãããã¡ã€ã«ãæå®ããããã«åŒæ°ã¯å¿
èŠãããŸãããïŒ kdb import/export
ãè€æ°ã®ãã©ã°ã€ã³ããµããŒããããšãåŒæ°ã競åããŸãã
ä»é±ã¯PRã§ãªã¯ãšã¹ããããå€æŽãè¡ããŸãã
ããããšãããããŸããïŒ
ãã¶ãããã¡ã€ã«ãæå®ããããã«åŒæ°ã¯å¿ èŠãããŸãããïŒ
次ã«ããã¹ãŠã®ãã©ã°ã€ã³ã§stdin
ãšstdout
ïŒéåžžã®ãã¡ã€ã«ã«ãªãã€ã¬ã¯ããããïŒããµããŒãããå¿
èŠããããŸãã ããããªããšã kdb import/export
ãšäžç·ã«äœ¿çšã§ããŸããã 移æ€æ§ããªãããã mmapstorage
ã¯æå³ããããŸããã移æ€æ§ã®ããä»ã®ãã©ã°ã€ã³ïŒãããã人éãèªãã圢åŒã§ãïŒã«ã¯éåžžã®ãã¡ã€ã«ãå¿
èŠã«ãªãå ŽåããããŸãïŒããšãã°ã fseek
ã䜿çšããå ŽåïŒã
kdb import/export
ãè€æ°ã®ãã©ã°ã€ã³ããµããŒããããšãåŒæ°ã競åããŸãã
elektraGetOpts
䜿çšã«åãæ¿ãããšããªãã·ã§ã³-i FILE, --input=FILE
ã -o FILE, --ouput=FILE
䜿çšã«ç°¡åã«ç§»è¡ã§ããŸãã
ã¯ãã-iã-oãªãã·ã§ã³ãè¿œå ã§ããŸãã ãã ãããã©ã°ã€ã³ïŒãŸãã¯ã€ã³ããŒã/ãšã¯ã¹ããŒããã¬ãŒã ã¯ãŒã¯ïŒãä¿®æ£ããŠãstdin / stdoutãæ©èœããããã«ãããšã©ã®ãããªå Žåã§ã䟿å©ã§ãã
kdb export
ã§ãã®åé¡ãä¿®æ£ããã«ã¯ãplugin-> kdbSetïŒïŒé¢æ°ã§åé¿çãå®è£
ããã ãã§ååã§ãã ç§ã¯ãã§ã«ãããå®è£
ããŠããŸããPRã¯ããããã§ãã
ããã¯çŸåšæ©èœããŸãïŒ kdb import user/tests/ mmapstorage < test.mmap
ã
ããããããã¯ããŸããïŒ cat test.mmap | kdb import user/tests/ mmapstorage
ããããmmapã¯ãããåŠçã§ããªãããã§ãã
ãœãªã¥ãŒã·ã§ã³ã®äžè²«æ§ãä¿ã€ã«ã¯ïŒãããã£ãŠãéæ£èŠãã¡ã€ã«ãšå®å šã«äºææ§ããããŸãïŒãkdbGetïŒïŒé¢æ°ã§ããœãªã¥ãŒã·ã§ã³ã解決ããå¿ èŠããããŸãã ããã«ã¯ããããã3ã€ã®è§£æ±ºçããããŸãã
ããã¯æãŸãããã®ã§ããããããšãç¡èŠããŸããïŒ
ãã§ã«ã¯ã€ãã¯ãã³ããããã®ã§ãä»ã®ãšããç¡èŠã§ãããšæããŸãã ã·ãªã¢ã«åã«é©ããŠããªãããšãææžåããã ãã§ãã ãšã«ããã€ã³ããŒã/ãšã¯ã¹ããŒããã¬ãŒã ã¯ãŒã¯ãäœãçŽããŠãé©åãªè§£æ±ºçãèŠã€ããŸãã @mpranjä»ã®ãšããå²ãåœãŠã
å®éãïŒ2639ã§ãã®åé¡ã解決ãã cat ...
åé¡ã®æ°ããåé¡ãäœæããæ¹ã
ç§ã¯æ¬åœã«çŽ æŽããã解決çãæã£ãŠããŸããïŒ realpath
ãšstat
ïŒããæ®å¿µãªããBSDã§ã¯æ©èœããŸããã ããã«ãã£ãšå€ãã®æéãæè³ããããšã¯æå³ããããŸããã
ç§ã¯ãããæšãŠãããšã«æ±ºããã®ã§ãmmapstorageãéæ£èŠãã¡ã€ã«ãšå®å
šã«äºææ§ã®ãããã®ã«ããŸããã kdbã®ã€ã³ããŒã/ãšã¯ã¹ããŒãã§ã®ã¿æ©èœããŸãã æ°ãããœãªã¥ãŒã·ã§ã³ã¯ããã¡ã€ã«ãã /dev/stdin
ããŸãã¯ã /dev/stdout
ãã§ãããã©ããã確èªããããšã«ãããkdbã€ã³ããŒã/ãšã¯ã¹ããŒãã䜿çšãããŠãããã©ããã確èªããã ãã§ãã quickdump
ã§ãåæ§ã«è¡ãããŸãã
ç§ã¯ïŒrealpathãšstatã䜿çšããŠïŒæ¬åœã«çŽ æŽããã解決çãæã£ãŠããŸããããæ®å¿µãªããBSDã§ã¯æ©èœããŸããã
ããã¯ã³ã¡ã³ãã¢ãŠãããã解決çã§ããïŒ
ããã«ãã£ãšå€ãã®æéãæè³ããããšã¯æå³ããããŸããã
ããã§ãããã¬ãŒã ã¯ãŒã¯ããããåŠçããå¿ èŠããããŸãã ïŒ2640ãäœæããŸããã
kdbã®ã€ã³ããŒã/ãšã¯ã¹ããŒãã§ã®ã¿æ©èœããŸã
cat | kdb import
ããªã¢ã³ãããããŸããïŒ
ã¯ã€ãã¯ãã³ãã§ãåæ§ã«è¡ãããŸãã
éãã¯ã©ãã«ãããŸããïŒ
ãã®ã³ãŒããã€ã³ããŒã/ãšã¯ã¹ããŒããã¬ãŒã ã¯ãŒã¯ã«ç§»åã§ããŸããïŒ
ããã¯ã³ã¡ã³ãã¢ãŠãããã解決çã§ããïŒ
ç§ã¯ãããæŽå²ã«æ®ããŸããããåŸã§è¡ãåé€ããŸããã ç§èŠããè¯ã解決çã¯https://github.com/ElektraInitiative/libelektra/pull/2639/commits/a523f9b38b56687d532f5101c7ef44c078e2308dãŸã§ã§ãã
ç§ãééããåé¡ã®1ã€ã¯ãBSDã§stdin / stdoutãopenïŒïŒã§ããªãããšã§ãã ãã1ã€ã¯ãå®éã«realpathã䜿çšããŠãã¡ã€ã«ãstatïŒïŒãããããéåžžã®ãã¡ã€ã«ã§ãããã©ãããå€æããå¿ èŠãããããšã§ãã ãã以å€ã®å Žåãstatã¯1ã¬ãã«ã®ã·ã³ããªãã¯ãªã³ã¯ã®ã¿ã解決ããŸããã ãã®ã¢ãããŒãã¯ãç§ã«ãšã£ãŠBSDã§ã¯å€±æããŸãããããã¯ãrealpathãäœããã®åœ¢ã§ååšããªããã¡ã€ã«ã«è§£æ±ºãããããã§ãã
ç«ãšã| kdbã€ã³ããŒãããªã¢ã³ãïŒ
ã¯ãïŒ
éãã¯ã©ãã«ãããŸããïŒ
é¢é£ããéšåã¯åãã§ããæ··ä¹±ããŠãã¿ãŸããã ç§ãæå³ããã®ã¯ããããéåžžã®ãã¡ã€ã«ã§ãããã©ãããå€æããããã«statã䜿çšãã代ããã«ã/ dev / stdinã«å¯ŸããŠstrcmpãå®è¡ããããšã§ãã ããã¯ã/ dev / fd /ã䜿çšããŠã倱æããããšãæå³ããŸã
ç·šéïŒ
ãã®ã³ãŒããã€ã³ããŒã/ãšã¯ã¹ããŒããã¬ãŒã ã¯ãŒã¯ã«ç§»åã§ããŸããïŒ
ã¯ããã³ãŒãã¯ã»ãŒå®å šã«ããã«ãã£ããšæããŸãããBSDã®åé¡ãé©åã«ä¿®æ£ããæéããããŸããã§ããã
æãåèã«ãªãã³ã¡ã³ã
ãè¿äºããããšãããããŸãïŒ
ãšã©ãŒã¡ãã»ãŒãžãæ¹åããŠãã ããã
ãã®æ å ±ããšã©ãŒã¡ãã»ãŒãžã«è¿œå ããŠãã ããã
çŸåšã圱é¿ãåãããã©ã°ã€ã³ã¯ãã©ã°ã€ã³ã ããªã®ã§ãçµ±èšãå®è¡ããå¿ èŠã«å¿ããŠãã¹ãŠãã³ããŒããããšã¯çã«ããªã£ãŠããŸãã ãã®åŸããã¬ãŒã ã¯ãŒã¯ãå€§å¹ ã«å€æŽããããšãªãããã®åé¡ã解決ã§ããŸãã