آکادمی علوم شقایق رحمانی
Kanalga Telegram’da o‘tish
آموزش علوم شیمی، فیزیک و کامپیوتر Admin: @melanee_teacher Mentor Bot: @MelaneeMentorbot
Ko'proq ko'rsatish791
Obunachilar
Ma'lumot yo'q24 soatlar
-67 kun
-2130 kun
Postlar arxiv
فکر میکنم یکی از ویژگی هایی که افراد Senior و باتجربه دارند همین تعداد ارورها و باگ هاییه که بهش برخورد کردند و برطرفش کردند، که مسلما تعدادشون خیلی خیلی بیشتر از مال ماست.
یه دفتری دارم به اسم Daily Report. داخلش تمام کارهایی که هر روز با سیستمم انجام میدم رو یادداشت میکنم و تاریخ میزنم. یکی از چیزهایی که همیشه داخلش مینویسم ارورها و باگ هایی که تو اون روز گرفتم و راه حل هایی که برای برطرف کردن اون ارور انجام دادم.
درسته استک اورفلو همیشه هست ولی تجربه بهم ثابت کرده اگه بعد از برطرف شدن ارور راه حل هام رو مکتوب کنم خیلی به نفعم هست تا اینکه رهاش کنم و بسپارم به حافظه ام! اسکرین شات تمام ارور و باگ هامو هم میگیرم که داشته باشم چون در آینده احتمالش زیاده باز یه جایی به اون ارورها برخورد کنم. مثلا من اولین بار که میخواستم Tensorflow رو روی سیستم خودم نصب کنم یادمه به مشکل خوردم و سیستم ارور میداد ولی برطرفش کردم و تمام راه حل هامو مکتوب در دفترم نوشتم. دو ماه بعد اومدم تنسورفلو رو روی سیستم شرکت نصب کنم باز به خطا خوردم اون روز تو شرکت هرکاری کردم یادم نیومد چطوری آخرش تونسته بودم روی سیستم خودم نصبش کنم ولی شب اومدم خونه و دفترم رو خوندم و یادم اومد که چی کار کردم.
از سال ۹۹ تا حالا چهار تا ازین دفترها نوشتم، این پنجمیه😎.
Viel Glück und viel Segen auf allen Wegen, Gesundheit und Fröhlichkeit im neuen Jahr.
Frohes neues Jahr 🇩🇪🎅🎄😍🎊
#Deutsch
Viel Glück und viel Segen auf allen Wegen, Gesundheit und Fröhlichkeit im neuen Jahr.
Frohes neues Jahr 🇩🇪🎅🎄😍🎊
#Deutsch
Viel Glück und viel Segen auf allen Wegen, Gesundheit und Fröhlichkeit im neuen Jahr🇩🇪🎅🎄😍🎊
#Deutsch
این عکس جلد روی کتاب شبکه های کامپیوتری هست و یکی از رفرنس هایی هست که در دانشگاه ها تدریس میشه.
کتاب رفرنسی که من برای شبکه های کامپبوتری خوندم:
Computer networking, A top down approach
Authores: Kurose and Rose
Pages: 889
C
#define pr_fmt(fmt) "TCP: " fmt
#include <crypto/hash.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/poll.h>
#include <linux/inet_diag.h>
#include <linux/init.h>
#include <linux/fs.h>
#include <linux/skbuff.h>
#include <linux/scatterlist.h>
#include <linux/splice.h>
#include <linux/net.h>
#include <linux/socket.h>
#include <linux/random.h>
#include <linux/memblock.h>
#include <linux/highmem.h>
#include <linux/cache.h>
#include <linux/err.h>
#include <linux/time.h>
#include <linux/slab.h>
#include <linux/errqueue.h>
#include <linux/static_key.h>
#include <linux/btf.h>
#include <net/icmp.h>
#include <net/inet_common.h>
#include <net/tcp.h>
#include <net/mptcp.h>
#include <net/xfrm.h>
#include <net/ip.h>
#include <net/sock.h>
#include <linux/uaccess.h>
#include <asm/ioctls.h>
#include <net/busy_poll.h>
/* Track pending CMSGs. */
enum {
TCP_CMSG_INQ = 1,
TCP_CMSG_TS = 2
};
DEFINE_PER_CPU(unsigned int, tcp_orphan_count);
EXPORT_PER_CPU_SYMBOL_GPL(tcp_orphan_count);
long sysctl_tcp_mem[3] __read_mostly;
EXPORT_SYMBOL(sysctl_tcp_mem);
atomic_long_t tcp_memory_allocated ____cacheline_aligned_in_smp; /* Current allocated memory. */
EXPORT_SYMBOL(tcp_memory_allocated);
DEFINE_PER_CPU(int, tcp_memory_per_cpu_fw_alloc);
EXPORT_PER_CPU_SYMBOL_GPL(tcp_memory_per_cpu_fw_alloc);
#if IS_ENABLED(CONFIG_SMC)
DEFINE_STATIC_KEY_FALSE(tcp_have_smc);
EXPORT_SYMBOL(tcp_have_smc);
#endif
/*
* Current number of TCP sockets.
*/
struct percpu_counter tcp_sockets_allocated ____cacheline_aligned_in_smp;
EXPORT_SYMBOL(tcp_sockets_allocated);
/*
* TCP splice context
*/
struct tcp_splice_state {
struct pipe_inode_info *pipe;
size_t len;
unsigned int flags;
};
/*
* Pressure flag: try to collapse.
* Technical note: it is used by multiple contexts non atomically.
* All the __sk_mem_schedule() is of this nature: accounting
* is strict, actions are advisory and have some latency.
*/
unsigned long tcp_memory_pressure __read_mostly;
EXPORT_SYMBOL_GPL(tcp_memory_pressure);
void tcp_enter_memory_pressure(struct sock *sk)
{
unsigned long val;
if (READ_ONCE(tcp_memory_pressure))
return;
val = jiffies;
if (!val)
val--;
if (!cmpxchg(&tcp_memory_pressure, 0, val))
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPMEMORYPRESSURES);
}
EXPORT_SYMBOL_GPL(tcp_enter_memory_pressure);
void tcp_leave_memory_pressure(struct sock *sk)
{
unsigned long val;
if (!READ_ONCE(tcp_memory_pressure))
return;
val = xchg(&tcp_memory_pressure, 0);
if (val)
NET_ADD_STATS(sock_net(sk), LINUX_MIB_TCPMEMORYPRESSURESCHRONO,
jiffies_to_msecs(jiffies - val));
}
EXPORT_SYMBOL_GPL(tcp_leave_memory_pressure)میدونستید این پروتکل های اصلی که در شبکه های کامپیوتری ازشون استفاده میکنید کدشون تو کرنل سیستم عامل تون قرار گرفته؟! اصلا تا به حال دیدیشون؟
اصلا این پروتکل ها چطوری ساخته میشن؟ یکی از کارهایی که میکنند اینه برای هر پروتکلی برنامه مینویسند و اونو در کرنل سیستم عامل میزارند. مثلا واسه پروتکل TCP میتونید سورس کدش رو در گیت هاب آقای Linus Torvals تو ریپازیتوری Linux که سورس کد کرنل لینوکس هست ببینید، برنانه اشو با زبان C هم نوشتند.
بقیه پروتکل هارو هم از تغییرات روی پروتکل TCP ساختند مثل L2TP و ... .
نکته جالب تر اینه که هرکی میتونه پروتکل مخصوص خودش رو بنویسه! فقط پروتکل باید هم تو سیستم عامل فرستنده و هم گیرنده قرار بگیره تا از طریق یه پورتی بتونند بهم وصل بشن.
اینم سورس کد پروتکل TCP:
https://github.com/torvalds/linux/blob/master/net/ipv4/tcp.c
میخوام یه کدی بهتون نشون میدم که کمتر کسی در طول تاریخ بشریت دیدش! منتظر بمونید.😎
بچه ها یه سوال❤
شما روی سیستم عامل لینوکستون برای tunnel زدن با چه vpn server یا پروتکل هایی کار میکنید؟ ممنون میشم کامنت کنید🙏🌸.
همراه من باز نمیشه. بسته های طولانی مدت هم از دسترس خارج شدند به خاطر گرون شدن اینترنت😒.
یک نمونه دیپلوی کردن پروژه روی سرور:
تو این پروژه مهندس حسینخانی اومدند یه مدل ریکامندر سیستم رو روی سرورشون دیپلوی کردند. روش انتقال پروژه روی سرور یا دیپلوی کردن برای انواع پروژه ها(دیتاساینس، فلاتر، اندروید، ری اکت، وب و ...) تقریبا یه متد کلی داره.
https://www.aparat.com/v/1zems?playlist=5220444
جدیدا وقتی میخوام یه پروژه ای رو از یه سرور به سرور دیگه دیپلوی کنم استرس خلبانی رو دارم که داره با هواپیماش یه جمعیتی رو جابه جا میکنه. فقط فرقمون اینه خلبان یه چیز فیزیکی رو جابه جا میکنه ولی من پروسس ها رو تو پکت و با سرعت نور یا امواج الکترومغناطیس جا به جا میکنم که با چشم دیده نمیشن. هر دومون خدایی کارمون سخته😒.
