আমি আমার নিজস্ব মজাদার জন্য কার্নেল ইন্টারনালগুলি সংশোধন করতে, প্যাচ প্রয়োগ করতে, ডিভাইস ড্রাইভার এবং মডিউলগুলি পরিচালনা করতে আগ্রহী।
কার্নেল হ্যাকিংয়ের জন্য কি কোনও বিস্তৃত সংস্থান রয়েছে, যা অভিজ্ঞ প্রোগ্রামারদের জন্য তৈরি?
আমি আমার নিজস্ব মজাদার জন্য কার্নেল ইন্টারনালগুলি সংশোধন করতে, প্যাচ প্রয়োগ করতে, ডিভাইস ড্রাইভার এবং মডিউলগুলি পরিচালনা করতে আগ্রহী।
কার্নেল হ্যাকিংয়ের জন্য কি কোনও বিস্তৃত সংস্থান রয়েছে, যা অভিজ্ঞ প্রোগ্রামারদের জন্য তৈরি?
উত্তর:
**TODO** +editPic: Linux Kernel Developer -> (Ring Layer 0)
+addSection: Kernel Virtualization Engine
KERN_WARN_CODING_STYLE: Do not Loop unless you absolutely have to.
একীকরণের জন্য প্রস্তাবিত বই
void *i
"পুরুষরা নির্দিষ্ট পরিমাণে জীবন না পাওয়া পর্যন্ত বই বুঝতে পারে না বা কোনও হারে কোনও গভীর বই বুঝতে পারে না, যতক্ষণ না সে তার সামগ্রীর কিছু অংশ না দেখে এবং বেঁচে থাকে না"। ইজরা পাউন্ড
এক হাজার পদক্ষেপ নিয়ে হাজার কোড-মাইল যাত্রা শুরু করতে হবে। নিম্নলিখিত বইগুলির মধ্যে যেটি শুরু করবেন সে সম্পর্কে আপনি যদি বিভ্রান্তিতে থাকেন তবে চিন্তা করবেন না, আপনার পছন্দের যেকোন একটি বেছে নিন। যারা ঘুরে বেড়ায় তারা সবাই হারিয়ে যায় না। হিসাবে সমস্ত রাস্তা পরিণামে হাইওয়ে সাথে সংযোগ , আপনি পৃষ্ঠাগুলি কোনো মৃত শেষ সাক্ষাৎ ছাড়া অগ্রগতি হিসাবে আপনার কার্নেল যাত্রা নতুন জিনিস অন্বেষণ করবে, এবং পরিণামে সাথে সংযোগ code-set
। সতর্ক মন দিয়ে পড়ুন এবং মনে রাখবেন: কোড সাহিত্য নয় ।
যা বাকী রয়েছে তা কোনও জিনিস বা আবেগ, চিত্র বা মানসিক চিত্র বা স্মৃতি বা এমনকি কোনও ধারণা নয়। এটি একটি ফাংশন। কিছু প্রকারের একটি প্রক্রিয়া। জীবনের একটি দিক যা "বৃহত্তর" কোনও কিছুর ফাংশন হিসাবে বর্ণনা করা যেতে পারে। এবং সুতরাং, এটি প্রদর্শিত হয় যে এটি অন্য কিছু থেকে সত্যই "পৃথক" নয়। একটি ছুরি এর কাজ মত - কিছু কাটা - আসলে, ছুরি থেকে নিজেই পৃথক নয়। এই মুহুর্তে ফাংশনটি ব্যবহৃত হতে পারে বা নাও হতে পারে, তবে এটি সম্ভবত আলাদা নয়।
সলোভে স্ট্র্যাসেন ডেরানডমাইজড অ্যালগরিদম আদিমতার পরীক্ষার জন্য :
বিবাদ এবং বিভ্রান্ত না পড়ুন; বিশ্বাস করা ও হালকা করাও নয়; বা আলাপ এবং বক্তৃতা খুঁজে না; কিন্তু ওজন এবং বিবেচনা। কিছু বই স্বাদ গ্রহণ করতে হবে, অন্যগুলি গিলে ফেলতে হবে এবং কয়েকটিকে চিবানো এবং হজম করতে হবে: এটি হ'ল কিছু বই কেবল কিছু অংশে পড়তে হবে, অন্যগুলি পড়তে হবে, তবে কৌতূহলবশত নয়, এবং কয়েকটি কয়েকটি পুরোপুরি পড়তে হবে , এবং যত্ন এবং মনোযোগ সহ।
static void tasklet_hi_action(struct softirq_action *a)
{
struct tasklet_struct *list;
local_irq_disable();
list = __this_cpu_read(tasklet_hi_vec.head);
__this_cpu_write(tasklet_hi_vec.head, NULL);
__this_cpu_write(tasklet_hi_vec.tail, this_cpu_ptr(&tasklet_hi_vec.head));
local_irq_enable();
while (list) {
struct tasklet_struct *t = list;
list = list->next;
if (tasklet_trylock(t)) {
if (!atomic_read(&t->count)) {
if (!test_and_clear_bit(TASKLET_STATE_SCHED,
&t->state))
BUG();
t->func(t->data);
tasklet_unlock(t);
continue;
}
tasklet_unlock(t);
}
local_irq_disable();
t->next = NULL;
*__this_cpu_read(tasklet_hi_vec.tail) = t;
__this_cpu_write(tasklet_hi_vec.tail, &(t->next));
__raise_softirq_irqoff(HI_SOFTIRQ);
local_irq_enable();
}
}
কোর লিনাক্স (5 -> 1 -> 3 -> 2 -> 7 -> 4 -> 6)
“প্রকৃতির কার্নেল বা শেল নেই; তিনি একসাথে সব কিছু "- জোহান ওল্ফগ্যাং ভন গ্যাথে
অপারেটিং সিস্টেমের ধারণাগুলির সাথে পাঠকের ভাল পারদর্শী হওয়া উচিত ; দীর্ঘ চলমান প্রক্রিয়াগুলির একটি যথাযথ বোঝাপড়া এবং সম্পাদনের সংক্ষিপ্ত বিস্ফোরণগুলির সাথে প্রক্রিয়াগুলির সাথে এর পার্থক্যগুলি; নরম এবং কঠিন বাস্তব সময়ের সীমাবদ্ধতাগুলি পূরণ করার সময় দোষ সহনশীলতা। পড়ার সময়, এটি বুঝতে গুরুত্বপূর্ণ এবং n/ack
মূল সাবসিস্টিমে লিনাক্স কার্নেল উত্স দ্বারা তৈরি নকশা পছন্দগুলি।
থ্রেডস [এবং] সংকেতগুলি [] হ'ল দুর্দশা, হতাশা, ভয়াবহতা ও উন্মাদনার এক প্ল্যাটফর্ম নির্ভর ট্রেইল (~ অ্যান্টনি বাক্সে)। এটি বলা হচ্ছে যে কার্নেলটিতে ডুব দেওয়ার আগে আপনার একটি স্ব-মূল্যায়ন করা সি বিশেষজ্ঞ হওয়া উচিত। লিঙ্কযুক্ত তালিকাগুলি, স্ট্যাকস, ক্যুইস, রেড ব্ল্যাকস ট্রি, হ্যাশ ফাংশনস, ইত্যাদি সহ আপনার ভাল অভিজ্ঞতা থাকা উচিত।
volatile int i;
int main(void)
{
int c;
for (i=0; i<3; i++) {
c = i&&&i;
printf("%d\n", c); /* find c */
}
return 0;
}
লিনাক্স কার্নেল উত্সটির সৌন্দর্য এবং শিল্পটি ইচ্ছাকৃত কোড বদ্ধমূলতার সাথে ব্যবহৃত হয়। এটি প্রায়শই একটি পরিষ্কার এবং মার্জিত উপায়ে দুই বা ততোধিক ক্রিয়াকলাপ জড়িত গণ্য অর্থ বোঝাতে প্রয়োজন। মাল্টি-কোর আর্কিটেকচারের জন্য কোড লেখার সময় এটি বিশেষত সত্য।
রিয়েল-টাইম সিস্টেমগুলি , টাস্ক শিডিং , মেমরি সংক্ষেপণ , মেমরি বাধা , এসএমপি সম্পর্কিত ভিডিও বক্তৃতা
#ifdef __compiler_offsetof
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
#else
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif
লিনাক্স ডিভাইস ড্রাইভার (1 -> 2 -> 4 -> 3 -> 8 -> ...)
"সংগীত আপনাকে সাথে রাখে না really অনুভূতি বা গল্পের ছোট্ট ছোট্ট কার্নেলটির উপরে কেবলমাত্র মনোনিবেশ করার দক্ষতার দ্বারা আপনাকে এটিকে কঠোরভাবে বয়ে বেড়াতে হবে"। - ডেবি হ্যারি
আপনার কাজটি মূলত হার্ডওয়্যার ডিভাইস এবং সফ্টওয়্যার কার্নেলের মধ্যে একটি উচ্চ গতির যোগাযোগ ইন্টারফেস স্থাপন করা। ডিভাইসের আচরণ এবং এটি নিয়ন্ত্রণ এবং ডেটা স্টেটস এবং প্রদত্ত শারীরিক চ্যানেলগুলি বোঝার জন্য আপনাকে হার্ডওয়্যার রেফারেন্স ডেটাশিট / ম্যানুয়াল পড়তে হবে। আপনার নির্দিষ্ট আর্কিটেকচারের জন্য সমাবেশের জ্ঞান এবং ভিএইচডিএল বা ভেরিলোগের মতো ভিএলএসআই হার্ডওয়্যার বিবরণ ভাষাগুলির ন্যায্য জ্ঞান আপনাকে দীর্ঘমেয়াদে সহায়তা করবে।
প্রশ্ন : তবে, আমাকে হার্ডওয়্যার চশমা পড়তে হবে কেন?
উত্তর : কারণ, "কার্বন ও সিলিকনের একটি অস্তিত্ব রয়েছে যা সফ্টওয়্যারটি ব্রিজ করতে পারে না" - রাহুল সোন্নাদ
তবে উপরের অংশটি গণ্য অ্যালগরিদমগুলির জন্য সমস্যা তৈরি করে না ( ড্রাইভার কোড - নীচের অর্ধেক প্রক্রিয়াকরণ ), কারণ এটি ইউনিভার্সাল ট্যুরিং মেশিনে সম্পূর্ণরূপে সিমুলেটেড করা যায় । যদি গণিত ফলাফল গাণিতিক ডোমেইনে সত্য ধারণ করে তবে এটি নিশ্চিত যে এটি শারীরিক ডোমেনেও সত্য ।
লিনাক্স ডিভাইস ড্রাইভারগুলিতে ভিডিও লেকচার (লে। 17 এবং 18), এমবেডড কেএমএস ড্রাইভারের এনাটমি , পিন কন্ট্রোল এবং জিপিআইও আপডেট , সাধারণ ঘড়ি ফ্রেমওয়ার্ক , একটি রিয়েল লিনাক্স ড্রাইভার লিখুন - গ্রেগ কেএইচ
static irqreturn_t phy_interrupt(int irq, void *phy_dat)
{
struct phy_device *phydev = phy_dat;
if (PHY_HALTED == phydev->state)
return IRQ_NONE; /* It can't be ours. */
/* The MDIO bus is not allowed to be written in interrupt
* context, so we need to disable the irq here. A work
* queue will write the PHY to disable and clear the
* interrupt, and then reenable the irq line.
*/
disable_irq_nosync(irq);
atomic_inc(&phydev->irq_disable);
queue_work(system_power_efficient_wq, &phydev->phy_queue);
return IRQ_HANDLED;
}
কার্নেল নেটওয়ার্কিং (1 -> 2 -> 3 -> ...)
"এটিকে একটি গোষ্ঠী বলুন, এটিকে একটি নেটওয়ার্ক বলুন, একে একটি উপজাতি বলুন, একটি পরিবার বলুন: আপনি যেটাকেই বলুন, আপনি যেই হোন, আপনার একটি প্রয়োজন।" - জেন হাওয়ার্ড
কার্নেলের মধ্যে প্যাকেট ওয়াক-থ্রো বোঝা কর্নেল নেটওয়ার্কিং বোঝার জন্য একটি চাবিকাঠি। আমরা যদি নেটফিল্টার বা আইপিসেক ইন্টার্নাল এবং আরও অনেক কিছু বুঝতে চাই তবে এটি বুঝতে হবে। লিনাক্স কার্নেল নেটওয়ার্ক স্তরটির দুটি গুরুত্বপূর্ণ কাঠামো হ'ল: struct sk_buff
এবংstruct net_device
static inline int sk_hashed(const struct sock *sk)
{
return !sk_unhashed(sk);
}
কার্নেল ডিবাগিং (1 -> 4 -> 9 -> ...)
এটির সাথে যোগাযোগ না করা অবধি একজনের অর্থ হ'ল ঠিক কী, সমস্যার ফলস্বরূপ আবদ্ধ। Lan অ্যালান টুরিং, কম্পিউটার সম্পর্কে
ব্রায়ান ডাব্লু কার্নিগান, ইউনিক্স ফর বিগেনার্স (১৯ 1979৯) পত্রিকায় বলেছিলেন, "সবচেয়ে কার্যকর ডিবাগিংয়ের সরঞ্জামটি এখনও সাবধানতার সাথে চিন্তাভাবনা এবং বিচারবুদ্ধিযুক্ত মুদ্রণ বিবৃতি সহ"। কী সংগ্রহ করবেন তা জানা আপনাকে দ্রুত নির্ণয়ের জন্য দ্রুত সঠিক ডেটা পেতে সহায়তা করবে। মহান কম্পিউটার বিজ্ঞানী এডগার ডিজকস্ট্রা একবার বলেছিলেন যে পরীক্ষাগুলি বাগের উপস্থিতি প্রদর্শন করতে পারে তবে তাদের অনুপস্থিতি নয়। ভাল তদন্ত অনুশীলনগুলির দ্রুত সমস্যার সমাধান করার প্রয়োজনীয়তা, আপনার দক্ষতা তৈরির প্রয়োজনীয়তা এবং বিষয় বিশেষজ্ঞের কার্যকর ব্যবহারের ভারসাম্য বজায় রাখা উচিত।
এমন সময় আছে যখন আপনি রক-নীচে আঘাত করেন, কিছুই কাজ করে না বলে মনে হয় এবং আপনার সমস্ত বিকল্প শেষ হয়ে যায়। এরপরেই আসল ডিবাগিং শুরু হয়। একটি ত্রুটি অকার্যকর সমাধানের স্থিরকরণ থেকে আপনার বিরতি দেওয়ার প্রয়োজন হতে পারে।
ভিডিও লেকচার কার্নেল ডিবাগ এবং প্রোফাইলিং উপর , কোর বিশ্লেষণ ডাম্প , GDB সঙ্গে মাল্টিকোর ডিবাগ , নিয়ন্ত্রণ মাল্টি কোর রেস অবস্থা , ডিবাগ ইলেক্ট্রনিক্স
/* Buggy Code -- Stack frame problem
* If you require information, do not free memory containing the information
*/
char *initialize() {
char string[80];
char* ptr = string;
return ptr;
}
int main() {
char *myval = initialize();
do_something_with(myval);
}
/* “When debugging, novices insert corrective code; experts remove defective code.”
* – Richard Pattis
#if DEBUG
printk("The above can be considered as Development and Review in Industrial Practises");
#endif
*/
ফাইল সিস্টেম (1 -> 2 -> 6 -> ...)
"আমি ভার্চুয়াল মেমরিটি রাখতে চাইছিলাম, কমপক্ষে এটি ফাইল সিস্টেমের সাথে মিলিত হওয়ার কারণে"। - কেন থম্পসন
ইউনিক্স সিস্টেমে, সমস্ত কিছুই একটি ফাইল; যদি কিছু ফাইল না হয় তবে এটি নামক পাইপ এবং সকেট ব্যতীত প্রক্রিয়া। একটি ফাইল সিস্টেমে ফাইলকে একটি দ্বারা প্রতিনিধিত্ব করা হয় inode
, এক ধরণের সিরিয়াল নম্বর যা প্রকৃত ডেটা সম্পর্কে তথ্য ধারণ করে যা ফাইল তৈরি করে। লিনাক্স ভার্চুয়াল ফাইল সিস্টেম VFS
প্রতিটি ফাইল সিস্টেম থেকে মাউন্ট করা এবং ব্যবহৃত হওয়ার সাথে সাথে মেমরির তথ্য ক্যাশে করে। ফাইল এবং ডিরেক্টরি তৈরি, লিখিত এবং মুছে ফেলা হিসাবে এই ক্যাশেগুলির মধ্যে ডেটা সংশোধন করা হওয়ায় ফাইল সিস্টেমটি সঠিকভাবে আপডেট করার জন্য অনেক যত্ন নেওয়া উচিত। এই ক্যাশেগুলির মধ্যে সর্বাধিক গুরুত্বপূর্ণ হ'ল বাফার ক্যাশে, যা পৃথক ফাইল সিস্টেমগুলি তাদের অন্তর্নিহিত ব্লক স্টোরেজ ডিভাইসগুলিতে অ্যাক্সেসের সাথে একত্রিত হয়।
স্টোরেজ সিস্টেমগুলি , ফ্ল্যাশ ফ্রেন্ডলি ফাইল সিস্টেম সম্পর্কিত ভিডিও লেকচার
long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
{
struct open_flags op;
int fd = build_open_flags(flags, mode, &op);
struct filename *tmp;
if (fd)
return fd;
tmp = getname(filename);
if (IS_ERR(tmp))
return PTR_ERR(tmp);
fd = get_unused_fd_flags(flags);
if (fd >= 0) {
struct file *f = do_filp_open(dfd, tmp, &op);
if (IS_ERR(f)) {
put_unused_fd(fd);
fd = PTR_ERR(f);
} else {
fsnotify_open(f);
fd_install(fd, f);
}
}
putname(tmp);
return fd;
}
SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, umode_t, mode)
{
if (force_o_largefile())
flags |= O_LARGEFILE;
return do_sys_open(AT_FDCWD, filename, flags, mode);
}
সুরক্ষা (1 -> 2 -> 8 -> 4 -> 3 -> ...)
"ইউএনআইএক্স এর ব্যবহারকারীদের বোকা কাজ করা থেকে বিরত করার জন্য ডিজাইন করা হয়নি, কারণ এটি তাদের চালাক জিনিসগুলি থেকে বিরত রাখতে পারে"। - ডগ গুইন
কোনও কৌশল ব্যবহার না করা হলে কাজ করে না। প্রযুক্তি নিয়ে নীতি পরিবর্তন হয়।
" এফ × এস = কে " স্বাধীনতা এবং সুরক্ষার পণ্য একটি ধ্রুবক। - নিভেনসের আইন
ক্রিপ্টোগ্রাফি অনলাইন আস্থার ভিত্তি তৈরি করে। হ্যাকিং কোনও প্রযুক্তিগত, শারীরিক বা মানব-ভিত্তিক উপাদানগুলির মধ্যে সুরক্ষা নিয়ন্ত্রণগুলি ব্যবহার করছে। অন্যান্য চলমান প্রোগ্রামগুলি থেকে কার্নেলকে রক্ষা করা একটি সুরক্ষিত এবং স্থিতিশীল সিস্টেমের দিকে প্রথম পদক্ষেপ, তবে এটি অবশ্যই যথেষ্ট নয়: বিভিন্ন ব্যবহারকারী-ভূমি অ্যাপ্লিকেশনের মধ্যেও কিছুটা সুরক্ষা থাকতে হবে। শোষণগুলি স্থানীয় বা দূরবর্তী পরিষেবাগুলিকে লক্ষ্য করতে পারে।
"আপনি আপনার ভাগ্য, হিংস্র শক্তি হ্যাক করতে পারবেন না ... আপনার পিছনের দরজা দরকার, লাইফের জন্য একটি পাশের চ্যানেল" " - ক্লাইড ডিসুজা
কম্পিউটার সমস্যা সমাধান করে না, তারা সমাধানগুলি কার্যকর করে। প্রতিটি অ-সংজ্ঞা অ্যালগরিদমিক কোডের পিছনে একটি স্থির মন থাকে। - / ভার / লগ / ডেমেস
ভিডিও লেকচার ক্রিপ্টোগ্রাফি এবং নেটওয়ার্ক নিরাপত্তা উপর , সিকিউরিটি জন্য নামস্থান , সুরক্ষা রিমোট আক্রমন , সিকিউর এমবেডেড লিনাক্স
env x='() { :;}; echo vulnerable' bash -c "echo this is a test for Shellsock"
কার্নেলের উত্স (0.11 -> 2.4 -> 2.6 -> 3.18)
"ওয়াইনের মতো, কার্নেল প্রোগ্রামিংয়ের দক্ষতা সময়ের সাথে পরিপক্ক হয় But তবে, ওয়াইনের বিপরীতে, এটি প্রক্রিয়াটি আরও মধুর হয়ে যায়"। --লরেন্স মুচেকা
আপনি হয়ত ভাববেন না যে প্রোগ্রামাররা শিল্পী, তবে প্রোগ্রামিং একটি অত্যন্ত সৃজনশীল পেশা। এটি যুক্তি ভিত্তিক সৃজনশীলতা। কম্পিউটার সায়েন্স এডুকেশন কাউকে বিশেষজ্ঞ প্রোগ্রামার করে তুলতে পারে না ব্রাশ এবং পিগমেন্টের অধ্যয়নের চেয়ে কাউকে বিশেষজ্ঞ চিত্রশিল্পী করতে পারে। আপনি ইতিমধ্যে জানেন যে, পথ জানা এবং পথ চলার মধ্যে একটি পার্থক্য রয়েছে; আপনার আস্তিনগুলি রোল করা এবং কার্নেল উত্স কোড সহ আপনার হাতগুলিকে নোংরা করা অত্যন্ত গুরুত্বপূর্ণ। অবশেষে, আপনার যেমন অর্জিত কর্নেল জ্ঞানের সাথে আপনি যেখানেই যান, আপনি চকচকে করবেন ।
অপরিণত কোডারদের অনুকরণ; পরিপক্ক কোডার চুরি; খারাপ কোডারগুলি তারা যা নেয় তা অকার্যকর করে দেয় এবং ভাল কোডারগুলি এটিকে আরও ভাল কিছুতে তৈরি করে বা কমপক্ষে কিছু আলাদা করে তোলে। ভাল কোডার তার চুরিটিকে পুরো অনুভূতিতে ldালু করে তোলে যা অনন্য, এটি ছিঁড়ে যাওয়া থেকে সম্পূর্ণ আলাদা different
কার্নেল রেসিপিগুলিতে ভিডিও লেকচারগুলি
linux-0.11
├── boot
│ ├── bootsect.s head.s setup.s
├── fs
│ ├── bitmap.c block_dev.c buffer.c char_dev.c exec.c
│ ├── fcntl.c file_dev.c file_table.c inode.c ioctl.c
│ ├── namei.c open.c pipe.c read_write.c
│ ├── stat.c super.c truncate.c
├── include
│ ├── a.out.h const.h ctype.h errno.h fcntl.h
│ ├── signal.h stdarg.h stddef.h string.h termios.h
│ ├── time.h unistd.h utime.h
│ ├── asm
│ │ ├── io.h memory.h segment.h system.h
│ ├── linux
│ │ ├── config.h fdreg.h fs.h hdreg.h head.h
│ │ ├── kernel.h mm.h sched.h sys.h tty.h
│ ├── sys
│ │ ├── stat.h times.h types.h utsname.h wait.h
├── init
│ └── main.c
├── kernel
│ ├── asm.s exit.c fork.c mktime.c panic.c
│ ├── printk.c sched.c signal.c sys.c system_calls.s
│ ├── traps.c vsprintf.c
│ ├── blk_drv
│ │ ├── blk.h floppy.c hd.c ll_rw_blk.c ramdisk.c
│ ├── chr_drv
│ │ ├── console.c keyboard.S rs_io.s
│ │ ├── serial.c tty_io.c tty_ioctl.c
│ ├── math
│ │ ├── math_emulate.c
├── lib
│ ├── close.c ctype.c dup.c errno.c execve.c _exit.c
│ ├── malloc.c open.c setsid.c string.c wait.c write.c
├── Makefile
├── mm
│ ├── memory.c page.s
└── tools
└── build.c
Linux_source_dir/Documentation/*
লিনাক্স কার্নেল নিউবিজ একটি দুর্দান্ত সংস্থান।
আমি আপনাকে গ্রেগ ক্রোয়া-হার্টম্যান এবং রবার্ট লাভের " লিনাক্স কার্নেলকে বোঝার ", " সংক্ষেপে লিনাক্স কার্নেল " পড়ার পরামর্শ দিচ্ছি । অবশ্যই পড়বেন :)
লিনাক্স ডিভাইস ড্রাইভাররা অন্য একটি ভাল সংস্থান। এটি আপনাকে অভ্যন্তরীণ কাজের মধ্যে যাওয়ার আরও একটি উপায় দেয়। উপস্থাপনা থেকে:
এটি পৃষ্ঠতলে, লিনাক্স সিস্টেমের জন্য ডিভাইস ড্রাইভার লেখার বই book অবশ্যই এটি একটি উপযুক্ত লক্ষ্য; নতুন হার্ডওয়্যার পণ্যগুলির প্রবাহ শীঘ্রই খুব শীঘ্রই যে কোনও সময় হ্রাস পাবে না এবং কারও কারও কাছে নতুন সমস্ত গ্যাজেটগুলি লিনাক্সের সাথে কাজ করতে হবে। তবে এই বইটি লিনাক্স কার্নেল কীভাবে কাজ করে এবং এর কাজগুলি কীভাবে আপনার প্রয়োজন বা আগ্রহের সাথে খাপ খায় সে সম্পর্কেও রয়েছে। লিনাক্স একটি ওপেন সিস্টেম; এই বইটি সহ, আমরা আশা করি, এটি আরও উন্মুক্ত এবং বিকাশকারীদের বৃহত সম্প্রদায়ের কাছে অ্যাক্সেসযোগ্য।
দেখুন লিনাক্স ডকুমেন্টেশন প্রজেক্ট । বিশেষত "লিনাক্স কার্নেল মডিউল গাইড"।
লিনাক্স কার্নেল ২.৪ ইন্টার্নালগুলি দেখার জন্য অন্য একটি অনলাইন সংস্থান। এটি বুট করা শুরু করে একটি দুর্দান্ত 'গ্রাউন্ড আপ' পদ্ধতির গ্রহণ করে। এখানে টিওসি:
এবং এটিকে আরও মধুরতর করে তুলতে রবার্ট লাভের একটি নতুন লিনাক্স কার্নেল বিকাশ তৃতীয় সংস্করণ রয়েছে এবং স্ল্যাশডটের একটি পর্যালোচনা রয়েছে।
ক্লডিয়া সালজবার্গ এবং অন্যান্য দ্বারা লিনাক্স কার্নেল প্রাইমার দিয়ে শুরু করুন। নতুনদের সাথে শুরু করার জন্য ভাল। রবার্ট লাভের বইটি অবশ্যই গ্রন্থ নয় যা শুরু করা উচিত। ল্যাটার বইটি মধ্যবর্তী স্তরের উপরে।