نمیدانم
#dual_boot #arch #archlinux #windows #grub توزیع های لینوکسی که از ۰ دست خودتونه مثل آرچ در حالت عادی توی پنجره گرابشون ویندوزو نمیارن. برای حل این مشکل میتونید کارای این پایینو انجام بدید : paru -S os-prober بعدش با ادیتور دلخواهتون فایل /etc/default/grub…
#archlinux #arch #pacman #paru
در ضمن توی کامند بالا میبینید که من از پارو برای نصب os-prober استفاده کردم به جای پکمن!
نکته اینه که پارو یه ابزاریه که میاد به pacman یه تعداد خوبی قابلیت اضافه میکنه و از همه مهمتر پشتیبانی AUR داره.
برای نصبش میتونید کامندای زیرو بزنید :
برای استفاده مفید ازش برید تنظیمات زیرو انجام بدید :
اول برید توی فایل
حالا برید توی فایل
حالا میتونید اینطوری از paru استفاده کنید
اگه میخواید چنتا بسته رو نصب کنید اسمشو دقیق میدونید
اگه دقیق نمیدونید میتونید اینطوری جست و جو کنید
به این شکل گزینه هایی که براتون میاره که همه اون کلماتو توی توضیحاتشون داشته باشن
اگرم میخویاد یه بسته رو حذف کنید
اگرم میخواید بسته هایی که دیگه بهشون نیاز نیست رو هم همزمان باش حذف کنید
در ضمن توی کامند بالا میبینید که من از پارو برای نصب os-prober استفاده کردم به جای پکمن!
نکته اینه که پارو یه ابزاریه که میاد به pacman یه تعداد خوبی قابلیت اضافه میکنه و از همه مهمتر پشتیبانی AUR داره.
برای نصبش میتونید کامندای زیرو بزنید :
mkdir -p ~/Apps
cd ~/Apps
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
برای استفاده مفید ازش برید تنظیمات زیرو انجام بدید :
اول برید توی فایل
/etc/pacman.conf و اونجا گزینه های Color و ParallelDownloads رو از کامنت خارج کنید و یه مقدار معقول مثلا ۸ برای دانلود موازی در نظر بگیرید.حالا برید توی فایل
etc/paru.conf و اونجا گزینه های BottomUp و SudoLoop رو از کامنت خارج کنیدحالا میتونید اینطوری از paru استفاده کنید
اگه میخواید چنتا بسته رو نصب کنید اسمشو دقیق میدونید
paru -S name1 name2 ...
اگه دقیق نمیدونید میتونید اینطوری جست و جو کنید
paru search1 search2 ...
به این شکل گزینه هایی که براتون میاره که همه اون کلماتو توی توضیحاتشون داشته باشن
اگرم میخویاد یه بسته رو حذف کنید
paru -R name1 name2 ...
اگرم میخواید بسته هایی که دیگه بهشون نیاز نیست رو هم همزمان باش حذف کنید
paru -Runcs name1 name2 ...
🔥2
نمیدانم
#dual_boot #arch #archlinux #windows #grub توزیع های لینوکسی که از ۰ دست خودتونه مثل آرچ در حالت عادی توی پنجره گرابشون ویندوزو نمیارن. برای حل این مشکل میتونید کارای این پایینو انجام بدید : paru -S os-prober بعدش با ادیتور دلخواهتون فایل /etc/default/grub…
#arch #archlinux #font #gui
همچنین اینا یکم ممکنه تنظیمات خاصشون سر جاش نباشه. مثلا فونت فارسی پیشفرض سمیه خلاصه
برای حل این مشکل میتونید برید یه فونت فارسی که دوست دارید رو نصب کنید اول (برای نصب صرفا کافیه کپی کنید توی
یا این که میتونید مثل اینجا noto بریزید :
حالا باید اولویتشو بالا ببریم که هر برنامه ای فونت فارسی خواست به طور خودکار همین فونت خودمونو مثلا noto بیاره
برای این کار باید برید توی
همچنین اینا یکم ممکنه تنظیمات خاصشون سر جاش نباشه. مثلا فونت فارسی پیشفرض سمیه خلاصه
برای حل این مشکل میتونید برید یه فونت فارسی که دوست دارید رو نصب کنید اول (برای نصب صرفا کافیه کپی کنید توی
~/.local/share/fonts یا این که از ابزارای گرافیکی خودتون استفاده بکنید) یا این که میتونید مثل اینجا noto بریزید :
paru -S noto-fonts-extra noto-fonts
حالا باید اولویتشو بالا ببریم که هر برنامه ای فونت فارسی خواست به طور خودکار همین فونت خودمونو مثلا noto بیاره
برای این کار باید برید توی
/etc/fonts/conf.d/65-nonlatin.conf حالا اینجا اولین خط بعد هر <prefer> توی خانواده فونت های معقول مثل serif و sans-serif اینا <family>Noto Sans Arabic UI</family> اضافه بکنید تا بالاترین اولویتو بگیره
نمیدانم
# install fish e.g. sudo apt install fish | sudo pacman -S fish chsh # then select /bin/fish as your shell همین! حالا شما تقریبا هرچی میخواستید رو دارید. یه سری ابزار دیگه که من رو هر شلی سوار میکنم رو اوردم توش برای تنظیم کردن fish باید برید فایل ~/.conf…
#shell #sh #bash #zsh #fish #starship
یه سوالی که ازم میشه اینه که چطوری نوار خط فرمانت اینشکلیه
و خب جوابش starship عه
برای نصبش اگه arch دارید کافیه دستور زیر رو بزنید :
یا اگه توی توزیعای دیگه ای هستید که استارشیپ رو توی مخازن اصلیشون ندارن میتونید برید توی سایتشون : https://starship.rs/ و از اونجا نصبش کنید
بعدش دیگه کار تمومه تقریبا
تنها چیزی که میمونه اینه که به خطای اول تنظیمات شلتون اضافش کنید.
توضیح کاری که این کامنده میکنه :
eval توی شل ها اینطوریه که یه چیزی که جلوش دادید رو میگیره به عنوان یه اسکریپت اجراش میکنه و این کامند استارشیپی که میزنید میاد یه مشت کامند شل درست میکنه خروجی میده
پس در نهایت اون کامندارو اول کار اجرا میکنید
یه سوالی که ازم میشه اینه که چطوری نوار خط فرمانت اینشکلیه
و خب جوابش starship عه
برای نصبش اگه arch دارید کافیه دستور زیر رو بزنید :
paru -S starship
یا اگه توی توزیعای دیگه ای هستید که استارشیپ رو توی مخازن اصلیشون ندارن میتونید برید توی سایتشون : https://starship.rs/ و از اونجا نصبش کنید
بعدش دیگه کار تمومه تقریبا
تنها چیزی که میمونه اینه که به خطای اول تنظیمات شلتون اضافش کنید.
eval "$(starship init bash)"
eval "$(starship init zsh)"
eval "$(starship init fish)"
توضیح کاری که این کامنده میکنه :
eval توی شل ها اینطوریه که یه چیزی که جلوش دادید رو میگیره به عنوان یه اسکریپت اجراش میکنه و این کامند استارشیپی که میزنید میاد یه مشت کامند شل درست میکنه خروجی میده
پس در نهایت اون کامندارو اول کار اجرا میکنید
🔥2
نمیدانم
#shell #sh #bash #zsh #fish #starship یه سوالی که ازم میشه اینه که چطوری نوار خط فرمانت اینشکلیه و خب جوابش starship عه برای نصبش اگه arch دارید کافیه دستور زیر رو بزنید : paru -S starship یا اگه توی توزیعای دیگه ای هستید که استارشیپ رو توی مخازن اصلیشون…
توجه کنید که گزینه های دیگه هم وجود دارن مثلا powerlevel10k و چیزای دیگه ولی من خودم با این حال کردم و موندم باش. با راست هم توسعه دادنش و سریعه!
کانفیگ خودمم اینه
~/.config/starship.toml
کانفیگ خودمم اینه
~/.config/starship.toml
#prev git color : #FCA17D
# $git_status\
format = """
[](#9A348E)\
${custom.virtenv}\
$os\
$username\
[](bg:#DA627D fg:#9A348E)\
$directory\
[](fg:#DA627D bg:#FF815D)\
${custom.reponame}\
$git_branch\
[](fg:#FF815D bg:#86BBD8)\
$c\
$cmake\
$elixir\
$elm\
$golang\
$haskell\
$java\
$julia\
$nodejs\
$nim\
$rust\
$zig\
$scala\
$python\
[](fg:#86BBD8 bg:#06969A)\
$docker_context\
[](fg:#06969A bg:#33658A)\
$time\
[ ](fg:#33658A)
"""
command_timeout = 5000
# Disable the blank line at the start of the prompt
#add_newline = false
[custom.virtenv]
command = "echo $(basename $VIRTUAL_ENV)"
style = "bg:#9A348E"
format = '[\($output\)]($style)'
when = "[ ! -z $VIRTUAL_ENV ]"
# You can also replace your username with a neat symbol like to save some space
[username]
show_always = false
style_user = "bg:#9A348E"
style_root = "bg:#9A348E"
format = '[$user ]($style)'
[directory]
style = "bg:#DA627D"
format = "[ $path ]($style)"
truncation_length = 10
truncation_symbol = "…/"
# Here is how you can shorten some long paths by text replacement
# similar to mapped_locations in Oh My Posh:
[directory.substitutions]
"Documents" = " "
"Downloads" = " "
"Music" = " "
"Pictures" = " "
# Keep in mind that the order matters. For example:
# "Important Documents" = " "
# will not be replaced, because "Documents" was already substituted before.
# So either put "Important Documents" before "Documents" or use the substituted version:
# "Important " = " "
[c]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
detect_extensions = ['c' , 'h' , 'cpp' , 'hpp']
[cmake]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[docker_context]
symbol = " "
style = "bg:#06969A"
format = '[ $symbol $context ]($style) $path'
[elixir]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[elm]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[custom.reponame]
command = "basename $(git rev-parse --show-toplevel)"
style = "bg:#FF815D"
format = '[ $output]($style)'
when = "[ 1 -ne 0 ]"
[git_branch]
symbol = " "
style = "bg:#FF815D"
format = '[ $symbol $branch ]($style)'
[git_status]
style = "bg:#FF815D"
format = '[$all_status$ahead_behind ]($style)'
[golang]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[haskell]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[java]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[julia]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[nodejs]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[nim]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[rust]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[zig]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[python]
symbol = " "
style = "bg:#86BBD8 fg:#003050"
format = '[ $symbol ($version) ]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#33658A"
format = '[ $time ]($style)'
🔥2❤🔥1❤1
#archlinux #arch #ibm #s390x #cross_compile #qemu #asm_masters
برای کامپایل و اجرای کد هاتون از ماشین عادی x86 تون برای ماشین ibm میتونید از دستورات زیر استفاده کنید :
بعد از این برای کامپایل کافیه
برای اجرا توی شبیهساز qemu کافیه
همچنین برای مسابقه asm پس فردا میتونید از دستور زیر استفاده بکنید که همه کارو یه جا بکنه :
در ضمن میتونید همین کامند بالارو بریزید توی یه فایل دلخواه مثلا ibm به جای اون
برای کامپایل و اجرای کد هاتون از ماشین عادی x86 تون برای ماشین ibm میتونید از دستورات زیر استفاده کنید :
paru -S s390x-z13-glibc-bleeding-edge-toolchain
بعد از این برای کامپایل کافیه
s390x-linux-gcc -lm <FILE_NAME> -o <EXEC_NAME>
برای اجرا توی شبیهساز qemu کافیه
QEMU_LD_PREFIX=/opt/s390x-z13-glibc-bleeding-edge/s390x-buildroot-linux-gnu/sysroot qemu-s390x <EXEC_NAME>
همچنین برای مسابقه asm پس فردا میتونید از دستور زیر استفاده بکنید که همه کارو یه جا بکنه :
s390x-linux-gcc <FILE_NAME> -o exec -no-pie -fno-pie -lm && QEMU_LD_PREFIX=/opt/s390x-z13-glibc-bleeding-edge/s390x-buildroot-linux-gnu/sysroot qemu-s390x exec
در ضمن میتونید همین کامند بالارو بریزید توی یه فایل دلخواه مثلا ibm به جای اون
<FILE_NAME> هم بذارید $1 که آرگومان اول رو بخونه و بعدشم با دستور زیر کداتونو اجرا کنید :./ibm <FILE_NAME>
🔥1
#خفن #باحال
#architecture #quartus
https://github.com/ymmcake/SHDL
یه پروژه خیلی خفن و جالب از آقام پردلی @graphite8086
بهتون اجازه میده بدون نیاز به کار با محیط کوارتوس براش کد بزنید (کوارتوس یه ابزاره که توی درس معماری باش مدار پردازنده میکشید
البته فعلا داکیومنتش کامل نیست (رسما چیزی وجود نداره 😂) ولی خب شاید در اینده کاملش بکنیم
خلاصه که بریزید ستاره بدید
#architecture #quartus
https://github.com/ymmcake/SHDL
یه پروژه خیلی خفن و جالب از آقام پردلی @graphite8086
بهتون اجازه میده بدون نیاز به کار با محیط کوارتوس براش کد بزنید (کوارتوس یه ابزاره که توی درس معماری باش مدار پردازنده میکشید
البته فعلا داکیومنتش کامل نیست (رسما چیزی وجود نداره 😂) ولی خب شاید در اینده کاملش بکنیم
خلاصه که بریزید ستاره بدید
GitHub
GitHub - ymmcake/SHDL
Contribute to ymmcake/SHDL development by creating an account on GitHub.
🔥6👀1
#خفن #باحال
#c
https://github.com/h0mbre/Learning-C
اینم مخزن باحالی بود یه نگاه بهش انداختم خیلی چیزای پیشرفته ای رو شامل میشه. منطقا یه پیشوندیشو بلد هستیم ولی نه بیشتر!
من که خودم توی برنامم گذاشتمش یه نگاه دقیقتر بهش بندازم.
#c
https://github.com/h0mbre/Learning-C
اینم مخزن باحالی بود یه نگاه بهش انداختم خیلی چیزای پیشرفته ای رو شامل میشه. منطقا یه پیشوندیشو بلد هستیم ولی نه بیشتر!
من که خودم توی برنامم گذاشتمش یه نگاه دقیقتر بهش بندازم.
GitHub
GitHub - h0mbre/Learning-C: A series of mini-projects used to learn C for beginners
A series of mini-projects used to learn C for beginners - h0mbre/Learning-C
🔥9🍌1
نمیدانم
#meme #file_system #ext2 یک پوشه معمولی در لینوکس
شاید سوالتون باشه چرا
جوابش هم اینه که من ls رو با lsd الیاس کردم و lsd پوشه . و .. رو حالت خاص در نظر میگیره و بقیشونو با این که وجود دارن نشون نمیداد 😂
/bin/ls زدم و خود ls چش بودجوابش هم اینه که من ls رو با lsd الیاس کردم و lsd پوشه . و .. رو حالت خاص در نظر میگیره و بقیشونو با این که وجود دارن نشون نمیداد 😂
😁5🔥1
#file_system #ext2
حالا سوال بعدی که به وجود میاد اینه که اصن این چطوری ممکنه 😂
جوابش اینطوریه :
توی خانواده فایل سیستم های ext مثل ext2 و ext3 و ext4 نام فایل ها توی پوشه ها نگهداری میشن (فکر کنم توی اکثر فایل سیستم های ادمیزادی همینطوری باشه). حالا اگه شما بیاید برید محتوی که اون پوشه رو توصیف میکنه عوض کنید میتونید از این کارای عجیب بکنید 😂
حالا سوال بعدی که به وجود میاد اینه که اصن این چطوری ممکنه 😂
جوابش اینطوریه :
توی خانواده فایل سیستم های ext مثل ext2 و ext3 و ext4 نام فایل ها توی پوشه ها نگهداری میشن (فکر کنم توی اکثر فایل سیستم های ادمیزادی همینطوری باشه). حالا اگه شما بیاید برید محتوی که اون پوشه رو توصیف میکنه عوض کنید میتونید از این کارای عجیب بکنید 😂
🔥4❤1👀1
نمیدانم
#file_system #ext2 حالا سوال بعدی که به وجود میاد اینه که اصن این چطوری ممکنه 😂 جوابش اینطوریه : توی خانواده فایل سیستم های ext مثل ext2 و ext3 و ext4 نام فایل ها توی پوشه ها نگهداری میشن (فکر کنم توی اکثر فایل سیستم های ادمیزادی همینطوری باشه). حالا اگه…
#file_system #ext2
حالا بریم کامندشو بگم. شمام بتونید اوتیسم خودتونو به اشتراک بذارید 😂
برای این کار ما میخوایم دسترسی خام داشته باشیم که محتوی یه دایرکتوری رو بنویسیم که لینوکس در حالت عادی به ما اجازشو نمیده برای همین ما یه fs.img درست میکنیم که فایل سیستمشو خودمون دستی مدیریت کنیم. به علت سادگی و اشنایی هم ext2 در نظر میگیرم فایل سیستمشو.
حالا برای اصلاح (اوباش) خودمون کد سی زیرو میزنیم :
حالا بریم کامندشو بگم. شمام بتونید اوتیسم خودتونو به اشتراک بذارید 😂
برای این کار ما میخوایم دسترسی خام داشته باشیم که محتوی یه دایرکتوری رو بنویسیم که لینوکس در حالت عادی به ما اجازشو نمیده برای همین ما یه fs.img درست میکنیم که فایل سیستمشو خودمون دستی مدیریت کنیم. به علت سادگی و اشنایی هم ext2 در نظر میگیرم فایل سیستمشو.
truncate -s 2M fs.img
mkfs.ext2 fs.img
mkdir ./tmpdir
sudo mount -o loop fs.img ./tmpdir/
sudo touch ./tmpdir/a # add your desired number of files
sudo umount ./tmpdir
حالا برای اصلاح (اوباش) خودمون کد سی زیرو میزنیم :
#include <cstdint>
#include <fcntl.h>
#include <linux/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#define EXT2_NDIR_BLOCKS 12
#define EXT2_IND_BLOCK EXT2_NDIR_BLOCKS
#define EXT2_DIND_BLOCK (EXT2_IND_BLOCK + 1)
#define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1)
#define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1)
struct ext2_inode {
__le16 i_mode; /* File mode */
__le16 i_uid; /* Low 16 bits of Owner Uid */
__le32 i_size; /* Size in bytes */
__le32 i_atime; /* Access time */
__le32 i_ctime; /* Creation time */
__le32 i_mtime; /* Modification time */
__le32 i_dtime; /* Deletion Time */
__le16 i_gid; /* Low 16 bits of Group Id */
__le16 i_links_count; /* Links count */
__le32 i_blocks; /* Blocks count */
__le32 i_flags; /* File flags */
union {
struct {
__le32 l_i_reserved1;
} linux1;
struct {
__le32 h_i_translator;
} hurd1;
struct {
__le32 m_i_reserved1;
} masix1;
} osd1; /* OS dependent 1 */
__le32 i_block[EXT2_N_BLOCKS]; /* Pointers to blocks */
__le32 i_generation; /* File version (for NFS) */
__le32 i_file_acl; /* File ACL */
__le32 i_dir_acl; /* Directory ACL */
__le32 i_faddr; /* Fragment address */
union {
struct {
__u8 l_i_frag; /* Fragment number */
__u8 l_i_fsize; /* Fragment size */
__u16 i_pad1;
__le16 l_i_uid_high; /* these 2 fields */
__le16 l_i_gid_high; /* were reserved2[0] */
__u32 l_i_reserved2;
} linux2;
struct {
__u8 h_i_frag; /* Fragment number */
__u8 h_i_fsize; /* Fragment size */
__le16 h_i_mode_high;
__le16 h_i_uid_high;
__le16 h_i_gid_high;
__le32 h_i_author;
} hurd2;
struct {
__u8 m_i_frag; /* Fragment number */
__u8 m_i_fsize; /* Fragment size */
__u16 m_pad1;
__u32 m_i_reserved2[2];
} masix2;
} osd2; /* OS dependent 2 */
};
struct ext2_dirent {
__u32 inode;
__u16 rlen;
__u8 nlen;
__u8 ttype;
};
int main(int argc, char *argv[]) {
FILE *fs = fopen("fs.img", "r+");
#define ROOT_INODE_BLK 12
#define BSIZE 1024
#define ROOT_INODE_IDX 2
#define INODE_SIZE 256
#define BPTR(id) ((id) * BSIZE)
#define INODE_PTR(id) (BPTR(ROOT_INODE_BLK) + (id) * INODE_SIZE)
// #define
// printf("x %lu\n", sizeof(struct ext2_inode));
//
struct ext2_inode nd;
fseek(fs, INODE_PTR(1), SEEK_SET);
fread(&nd, sizeof(nd), 1, fs);
__u8 dat[BSIZE];
__u32 blkptr = BPTR(nd.i_block[0]);
fseek(fs, blkptr, SEEK_SET);
fread(dat, sizeof(dat), 1, fs);
// printf("%x\n", nd.i_mode);
__u8 *ptr = dat;
struct ext2_dirent dirent;
int i = 0;
do {
memcpy(&dirent, ptr, sizeof(dirent));
if (i++ > 0) {
dirent.nlen = 1;
memcpy(ptr, &dirent, sizeof(dirent));
memcpy(ptr + sizeof(dirent), "..", 1);
}
printf("%u %u %u %u %.*s\n", dirent.inode, dirent.rlen, dirent.nlen,
dirent.ttype, dirent.nlen, (char *)(ptr + sizeof(dirent)));
ptr += dirent.rlen;
} while (ptr < dat + BSIZE);
fseek(fs, blkptr, SEEK_SET);
fwrite(dat, sizeof(dat), 1, fs);
}
🔥7
نمیدانم
#file_system #ext2 حالا سوال بعدی که به وجود میاد اینه که اصن این چطوری ممکنه 😂 جوابش اینطوریه : توی خانواده فایل سیستم های ext مثل ext2 و ext3 و ext4 نام فایل ها توی پوشه ها نگهداری میشن (فکر کنم توی اکثر فایل سیستم های ادمیزادی همینطوری باشه). حالا اگه…
این کد میاد پوشه / رو میگیره تمام بچه هاشو "." میکنه.
حالا کافیه کامپایل کنیم و اجرا کنیم :
حالا کافیه کامپایل کنیم و اجرا کنیم :
g++ wtf.c && ./a.out
sudo mount -o loop fs.img ./tmpdir/
/bin/ls ./tmpdir
🔥3
#ssd #tech
قابل توجه دوستان عزیزو و فنیم یه چیزایی رو توضیح بدم بهتون جالبه.
حافظه های ssd طبق نرخ تحملشون قیمتگذاری میشن و عملا بعد یه مدتی خورده میشه خونه های حافظشون! (حالا توی درس معماری دکتر اسدی یه سر کوچیکی میزنید به این داستان) . ssd ها بر مبنای تعداد بیت نگهداری شده در هر خونه شون دسته بندی میشن.
SLC : Single Layer Cell
DLC : Double Layer Cell
TLC : Triple Layer Cell
QLC : Quad Level Cell
این ها انواع این نوع حافظه ها هستن که به ترتیب از اولی تا پایینی اینشکلیه که ۱ بیت به ازای هر خونه، دو بیت، سه بیت و چهار بیت داده رو توی هر خونش نگهداری میکنه. با توجه به همین مساله از بالا به پایین ارزونتر و با توجه به مداراتش و نرخ نویز افزوده برای تمایز بیت ها، از پایین به بالا کارایی و سرعت بالا و دوام خونه ها افزایش پیدا میکنه (این افزایش ها گاها نمودار های نمایی داره).
حافظه های عادی که دست من و شماست معمولا اینطوریه که خوباش از نوع TLC و معمولیاش QLC هستن.
قابل توجه دوستان عزیزو و فنیم یه چیزایی رو توضیح بدم بهتون جالبه.
حافظه های ssd طبق نرخ تحملشون قیمتگذاری میشن و عملا بعد یه مدتی خورده میشه خونه های حافظشون! (حالا توی درس معماری دکتر اسدی یه سر کوچیکی میزنید به این داستان) . ssd ها بر مبنای تعداد بیت نگهداری شده در هر خونه شون دسته بندی میشن.
SLC : Single Layer Cell
DLC : Double Layer Cell
TLC : Triple Layer Cell
QLC : Quad Level Cell
این ها انواع این نوع حافظه ها هستن که به ترتیب از اولی تا پایینی اینشکلیه که ۱ بیت به ازای هر خونه، دو بیت، سه بیت و چهار بیت داده رو توی هر خونش نگهداری میکنه. با توجه به همین مساله از بالا به پایین ارزونتر و با توجه به مداراتش و نرخ نویز افزوده برای تمایز بیت ها، از پایین به بالا کارایی و سرعت بالا و دوام خونه ها افزایش پیدا میکنه (این افزایش ها گاها نمودار های نمایی داره).
حافظه های عادی که دست من و شماست معمولا اینطوریه که خوباش از نوع TLC و معمولیاش QLC هستن.
👍5👏1
نمیدانم
#ssd #tech قابل توجه دوستان عزیزو و فنیم یه چیزایی رو توضیح بدم بهتون جالبه. حافظه های ssd طبق نرخ تحملشون قیمتگذاری میشن و عملا بعد یه مدتی خورده میشه خونه های حافظشون! (حالا توی درس معماری دکتر اسدی یه سر کوچیکی میزنید به این داستان) . ssd ها بر مبنای تعداد…
#ssd #tech
حالا برای این که همه این مطالبو جمع کنم. کلا اینطوریه که کارخونه ها برای این که دوام حافظشونو با یه عدد بتونن بیان کنن میان میگن به این حافظه کلا در مجموع چقد میتونی بنویسی و همونطوری که مشاهده میکنید، من در طی ۵ سالی که این لپتاپ رو دارم تقریبا ۳۷ ترابایت بهش نوشتم (احتمالا ۲ ۳ ترابایتش به خاطر OS و چند هسته ای باشه :))) )
و همینطور این خونه ها وقتی خراب میشن، خود حافظه یه سری خونه رو دست نخورده نگهمیداره تا موقعی که یه خونه خراب میشه ازش استفاده بکنه.
اون ۱۰ درصد و ۷ درصد که اون بالا میبینید هم نشون دهنده همین مسالست و خب نکته اینجاست که وقتی این درصده از ۱ و ۲ رد میشه میره بالا کارایی ssd تون هم شروع به افت شدید میکنه!
حالا برای این که همه این مطالبو جمع کنم. کلا اینطوریه که کارخونه ها برای این که دوام حافظشونو با یه عدد بتونن بیان کنن میان میگن به این حافظه کلا در مجموع چقد میتونی بنویسی و همونطوری که مشاهده میکنید، من در طی ۵ سالی که این لپتاپ رو دارم تقریبا ۳۷ ترابایت بهش نوشتم (احتمالا ۲ ۳ ترابایتش به خاطر OS و چند هسته ای باشه :))) )
و همینطور این خونه ها وقتی خراب میشن، خود حافظه یه سری خونه رو دست نخورده نگهمیداره تا موقعی که یه خونه خراب میشه ازش استفاده بکنه.
اون ۱۰ درصد و ۷ درصد که اون بالا میبینید هم نشون دهنده همین مسالست و خب نکته اینجاست که وقتی این درصده از ۱ و ۲ رد میشه میره بالا کارایی ssd تون هم شروع به افت شدید میکنه!
👍1👏1
#arch #archlinux #daily_drive
خب بریم برای نصب آرچ
به نظرم وقت مناسبیه که ستاپ کامل ارچمو توضیح بدم.
اول از همه چی که خب اینترنت میخوایم که یه
بعدش میریم فایل
کافیه کامنت رو از خط های
خب بریم برای نصب آرچ
به نظرم وقت مناسبیه که ستاپ کامل ارچمو توضیح بدم.
اول از همه چی که خب اینترنت میخوایم که یه
iwctl میزنیم و وصل میشیمبعدش میریم فایل
/etc/pacman.conf رو اصلاح میکنیم : کافیه کامنت رو از خط های
Color و ParallelDownloads بردارید و دانلود موازی رو به اندازه دلخواهتون وابسته به تعداد هسته های پردازندتون (که با استفاده از lscpu میتونید کل اطلاعات پردازندتون از جمله همین موضوع رو ببینید) بذارید به عنوان مثال من 8 میذارمش.❤🔥1